[INFO] updating cached repository panzi/rust-ubend [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/panzi/rust-ubend [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/panzi/rust-ubend" "work/ex/clippy-test-run/sources/stable/gh/panzi/rust-ubend"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/panzi/rust-ubend'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/panzi/rust-ubend" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/panzi/rust-ubend"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/panzi/rust-ubend'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 16a6ac1c07778f3fedd761068aae403dfccaedf3 [INFO] sha for GitHub repo panzi/rust-ubend: 16a6ac1c07778f3fedd761068aae403dfccaedf3 [INFO] validating manifest of panzi/rust-ubend on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of panzi/rust-ubend on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing panzi/rust-ubend [INFO] finished frobbing panzi/rust-ubend [INFO] frobbed toml for panzi/rust-ubend written to work/ex/clippy-test-run/sources/stable/gh/panzi/rust-ubend/Cargo.toml [INFO] started frobbing panzi/rust-ubend [INFO] finished frobbing panzi/rust-ubend [INFO] frobbed toml for panzi/rust-ubend written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/panzi/rust-ubend/Cargo.toml [INFO] crate panzi/rust-ubend has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting panzi/rust-ubend against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/panzi/rust-ubend:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 00caf7909e399fa8b176b07ae3d214af6ceae2737f54dbe9f545d1287ac794ce [INFO] running `"docker" "start" "-a" "00caf7909e399fa8b176b07ae3d214af6ceae2737f54dbe9f545d1287ac794ce"` [INFO] [stderr] Checking ubend v0.2.1 (/opt/crater/workdir) [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/lib.rs:330:5 [INFO] [stderr] | [INFO] [stderr] 330 | fd [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/lib.rs:324:14 [INFO] [stderr] | [INFO] [stderr] 324 | let fd = match mode { [INFO] [stderr] | __________________________^ [INFO] [stderr] 325 | | Mode::Read => open(cstr!(name), O_RDONLY), [INFO] [stderr] 326 | | Mode::Write => open(cstr!(name), O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH), [INFO] [stderr] 327 | | Mode::Append => open(cstr!(name), O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH), [INFO] [stderr] 328 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:475:6 [INFO] [stderr] | [INFO] [stderr] 475 | return f.write_str(s); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `f.write_str(s)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:921:2 [INFO] [stderr] | [INFO] [stderr] 921 | return -1; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `-1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:935:3 [INFO] [stderr] | [INFO] [stderr] 935 | return fd; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `fd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:937:3 [INFO] [stderr] | [INFO] [stderr] 937 | return open_temp_fd_fallback(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `open_temp_fd_fallback()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:1036:3 [INFO] [stderr] | [INFO] [stderr] 1036 | return Err(WaitError::ChildInvalid); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(WaitError::ChildInvalid)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:1218:3 [INFO] [stderr] | [INFO] [stderr] 1218 | return Err(Error::OS(errno)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::OS(errno))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:1506:3 [INFO] [stderr] | [INFO] [stderr] 1506 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/lib.rs:330:5 [INFO] [stderr] | [INFO] [stderr] 330 | fd [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/lib.rs:324:14 [INFO] [stderr] | [INFO] [stderr] 324 | let fd = match mode { [INFO] [stderr] | __________________________^ [INFO] [stderr] 325 | | Mode::Read => open(cstr!(name), O_RDONLY), [INFO] [stderr] 326 | | Mode::Write => open(cstr!(name), O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH), [INFO] [stderr] 327 | | Mode::Append => open(cstr!(name), O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH), [INFO] [stderr] 328 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:475:6 [INFO] [stderr] | [INFO] [stderr] 475 | return f.write_str(s); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `f.write_str(s)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:921:2 [INFO] [stderr] | [INFO] [stderr] 921 | return -1; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `-1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:935:3 [INFO] [stderr] | [INFO] [stderr] 935 | return fd; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `fd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:937:3 [INFO] [stderr] | [INFO] [stderr] 937 | return open_temp_fd_fallback(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `open_temp_fd_fallback()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:1036:3 [INFO] [stderr] | [INFO] [stderr] 1036 | return Err(WaitError::ChildInvalid); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(WaitError::ChildInvalid)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:1218:3 [INFO] [stderr] | [INFO] [stderr] 1218 | return Err(Error::OS(errno)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::OS(errno))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:1506:3 [INFO] [stderr] | [INFO] [stderr] 1506 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: The function/method `extend_from_slice` doesn't need a mutable reference [INFO] [stderr] --> src/lib.rs:1135:34 [INFO] [stderr] | [INFO] [stderr] 1135 | stdout.extend_from_slice(&mut buf[..size]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `extend_from_slice` doesn't need a mutable reference [INFO] [stderr] --> src/lib.rs:1155:34 [INFO] [stderr] | [INFO] [stderr] 1155 | stderr.extend_from_slice(&mut buf[..size]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/lib.rs:1374:7 [INFO] [stderr] | [INFO] [stderr] 1374 | if envp != ptr::null() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_null)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:1541:3 [INFO] [stderr] | [INFO] [stderr] 1541 | match self.stdin { [INFO] [stderr] | _________^ [INFO] [stderr] 1542 | | PipeSetup::Redirect(target) => { [INFO] [stderr] 1543 | | return Err(Error::CannotRedirectStdinTo(target)); [INFO] [stderr] 1544 | | }, [INFO] [stderr] 1545 | | _ => {} [INFO] [stderr] 1546 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1541 | if let PipeSetup::Redirect(target) = self.stdin { [INFO] [stderr] 1542 | return Err(Error::CannotRedirectStdinTo(target)); [INFO] [stderr] 1543 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:1577:24 [INFO] [stderr] | [INFO] [stderr] 1577 | fn make_ptr_array(buf: &Vec, len: usize) -> Vec<*const c_char> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:1624:12 [INFO] [stderr] | [INFO] [stderr] 1624 | buf.push('=' as u8); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'=' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:1655:4 [INFO] [stderr] | [INFO] [stderr] 1655 | match pipe.stdin { [INFO] [stderr] | _____________^ [INFO] [stderr] 1656 | | PipeSetup::Redirect(target) => { [INFO] [stderr] 1657 | | return Err(Error::CannotRedirectStdinTo(target)); [INFO] [stderr] 1658 | | }, [INFO] [stderr] 1659 | | _ => {} [INFO] [stderr] 1660 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1655 | if let PipeSetup::Redirect(target) = pipe.stdin { [INFO] [stderr] 1656 | return Err(Error::CannotRedirectStdinTo(target)); [INFO] [stderr] 1657 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the variable `index` is used as a loop counter. Consider using `for (index, item) in pipes.enumerate()` or similar iterators [INFO] [stderr] --> src/lib.rs:1665:15 [INFO] [stderr] | [INFO] [stderr] 1665 | for pipe in pipes { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:1701:4 [INFO] [stderr] | [INFO] [stderr] 1701 | match res { [INFO] [stderr] | _____________^ [INFO] [stderr] 1702 | | Err(err) => { [INFO] [stderr] 1703 | | for mut child in &mut children { [INFO] [stderr] 1704 | | unsafe { kill(child.pid, SIGTERM); } [INFO] [stderr] ... | [INFO] [stderr] 1708 | | _ => {} [INFO] [stderr] 1709 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1701 | if let Err(err) = res { [INFO] [stderr] 1702 | for mut child in &mut children { [INFO] [stderr] 1703 | unsafe { kill(child.pid, SIGTERM); } [INFO] [stderr] 1704 | } [INFO] [stderr] 1705 | return Err(err); [INFO] [stderr] 1706 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: The function/method `extend_from_slice` doesn't need a mutable reference [INFO] [stderr] --> src/lib.rs:1135:34 [INFO] [stderr] | [INFO] [stderr] 1135 | stdout.extend_from_slice(&mut buf[..size]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `extend_from_slice` doesn't need a mutable reference [INFO] [stderr] --> src/lib.rs:1155:34 [INFO] [stderr] | [INFO] [stderr] 1155 | stderr.extend_from_slice(&mut buf[..size]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/lib.rs:1374:7 [INFO] [stderr] | [INFO] [stderr] 1374 | if envp != ptr::null() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_null)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:1541:3 [INFO] [stderr] | [INFO] [stderr] 1541 | match self.stdin { [INFO] [stderr] | _________^ [INFO] [stderr] 1542 | | PipeSetup::Redirect(target) => { [INFO] [stderr] 1543 | | return Err(Error::CannotRedirectStdinTo(target)); [INFO] [stderr] 1544 | | }, [INFO] [stderr] 1545 | | _ => {} [INFO] [stderr] 1546 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1541 | if let PipeSetup::Redirect(target) = self.stdin { [INFO] [stderr] 1542 | return Err(Error::CannotRedirectStdinTo(target)); [INFO] [stderr] 1543 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:1577:24 [INFO] [stderr] | [INFO] [stderr] 1577 | fn make_ptr_array(buf: &Vec, len: usize) -> Vec<*const c_char> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:1624:12 [INFO] [stderr] | [INFO] [stderr] 1624 | buf.push('=' as u8); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'=' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:1655:4 [INFO] [stderr] | [INFO] [stderr] 1655 | match pipe.stdin { [INFO] [stderr] | _____________^ [INFO] [stderr] 1656 | | PipeSetup::Redirect(target) => { [INFO] [stderr] 1657 | | return Err(Error::CannotRedirectStdinTo(target)); [INFO] [stderr] 1658 | | }, [INFO] [stderr] 1659 | | _ => {} [INFO] [stderr] 1660 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1655 | if let PipeSetup::Redirect(target) = pipe.stdin { [INFO] [stderr] 1656 | return Err(Error::CannotRedirectStdinTo(target)); [INFO] [stderr] 1657 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the variable `index` is used as a loop counter. Consider using `for (index, item) in pipes.enumerate()` or similar iterators [INFO] [stderr] --> src/lib.rs:1665:15 [INFO] [stderr] | [INFO] [stderr] 1665 | for pipe in pipes { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:1701:4 [INFO] [stderr] | [INFO] [stderr] 1701 | match res { [INFO] [stderr] | _____________^ [INFO] [stderr] 1702 | | Err(err) => { [INFO] [stderr] 1703 | | for mut child in &mut children { [INFO] [stderr] 1704 | | unsafe { kill(child.pid, SIGTERM); } [INFO] [stderr] ... | [INFO] [stderr] 1708 | | _ => {} [INFO] [stderr] 1709 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1701 | if let Err(err) = res { [INFO] [stderr] 1702 | for mut child in &mut children { [INFO] [stderr] 1703 | unsafe { kill(child.pid, SIGTERM); } [INFO] [stderr] 1704 | } [INFO] [stderr] 1705 | return Err(err); [INFO] [stderr] 1706 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> tests/main.rs:67:21 [INFO] [stderr] | [INFO] [stderr] 67 | remove_file(name).expect(msg.as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| { let msg = msg.as_str(); panic!(msg) }))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> tests/main.rs:180:3 [INFO] [stderr] | [INFO] [stderr] 180 | write!(stream, "hello world"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> tests/main.rs:211:3 [INFO] [stderr] | [INFO] [stderr] 211 | write!(stream, "spam\neggs\nspam spam\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.47s [INFO] running `"docker" "inspect" "00caf7909e399fa8b176b07ae3d214af6ceae2737f54dbe9f545d1287ac794ce"` [INFO] running `"docker" "rm" "-f" "00caf7909e399fa8b176b07ae3d214af6ceae2737f54dbe9f545d1287ac794ce"` [INFO] [stdout] 00caf7909e399fa8b176b07ae3d214af6ceae2737f54dbe9f545d1287ac794ce