[INFO] updating cached repository benschau/rsh [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/benschau/rsh [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/benschau/rsh" "work/ex/clippy-test-run/sources/stable/gh/benschau/rsh"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/benschau/rsh'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/benschau/rsh" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/benschau/rsh"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/benschau/rsh'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 708031b7b7bb7561497d8d2db0be2dcf53d6b113 [INFO] sha for GitHub repo benschau/rsh: 708031b7b7bb7561497d8d2db0be2dcf53d6b113 [INFO] validating manifest of benschau/rsh 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 benschau/rsh 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 benschau/rsh [INFO] finished frobbing benschau/rsh [INFO] frobbed toml for benschau/rsh written to work/ex/clippy-test-run/sources/stable/gh/benschau/rsh/Cargo.toml [INFO] started frobbing benschau/rsh [INFO] finished frobbing benschau/rsh [INFO] frobbed toml for benschau/rsh written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/benschau/rsh/Cargo.toml [INFO] crate benschau/rsh 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 benschau/rsh 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/benschau/rsh:/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] b5a0649e30240325bc7caa1d527e2c7a480630ac8f16384de9deab2ee40499dd [INFO] running `"docker" "start" "-a" "b5a0649e30240325bc7caa1d527e2c7a480630ac8f16384de9deab2ee40499dd"` [INFO] [stderr] Checking nix v0.5.1 [INFO] [stderr] Checking rustyline v1.0.0 [INFO] [stderr] Checking rsh v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/lib.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Stdio` [INFO] [stderr] --> src/lib.rs:11:29 [INFO] [stderr] | [INFO] [stderr] 11 | use std::process::{Command, Stdio}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `FromRawFd`, `IntoRawFd` [INFO] [stderr] --> src/lib.rs:12:25 [INFO] [stderr] | [INFO] [stderr] 12 | use std::os::unix::io::{FromRawFd, IntoRawFd}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rustyline::error::ReadlineError` [INFO] [stderr] --> src/lib.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use rustyline::error::ReadlineError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `nix::unistd::pipe` [INFO] [stderr] --> src/lib.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use nix::unistd::pipe; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/builtin.rs:54:8 [INFO] [stderr] | [INFO] [stderr] 54 | Ok((0)) [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/builtin.rs:54:8 [INFO] [stderr] | [INFO] [stderr] 54 | Ok((0)) [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/builtin.rs:61:8 [INFO] [stderr] | [INFO] [stderr] 61 | Ok((env::current_dir().unwrap())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/builtin.rs:61:8 [INFO] [stderr] | [INFO] [stderr] 61 | Ok((env::current_dir().unwrap())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | / return Ok(Config { [INFO] [stderr] 37 | | filetype: conf_type, [INFO] [stderr] 38 | | filepath: conf_fpath, [INFO] [stderr] 39 | | }); [INFO] [stderr] | |_____________________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 36 | Ok(Config { [INFO] [stderr] 37 | filetype: conf_type, [INFO] [stderr] 38 | filepath: conf_fpath, [INFO] [stderr] 39 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:198:5 [INFO] [stderr] | [INFO] [stderr] 198 | return procs; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `procs` [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: unused import: `super::*` [INFO] [stderr] --> src/lib.rs:203:9 [INFO] [stderr] | [INFO] [stderr] 203 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/lib.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Stdio` [INFO] [stderr] --> src/lib.rs:11:29 [INFO] [stderr] | [INFO] [stderr] 11 | use std::process::{Command, Stdio}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `FromRawFd`, `IntoRawFd` [INFO] [stderr] --> src/lib.rs:12:25 [INFO] [stderr] | [INFO] [stderr] 12 | use std::os::unix::io::{FromRawFd, IntoRawFd}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rustyline::error::ReadlineError` [INFO] [stderr] --> src/lib.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use rustyline::error::ReadlineError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `nix::unistd::pipe` [INFO] [stderr] --> src/lib.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use nix::unistd::pipe; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/builtin.rs:54:8 [INFO] [stderr] | [INFO] [stderr] 54 | Ok((0)) [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/builtin.rs:54:8 [INFO] [stderr] | [INFO] [stderr] 54 | Ok((0)) [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/builtin.rs:61:8 [INFO] [stderr] | [INFO] [stderr] 61 | Ok((env::current_dir().unwrap())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/builtin.rs:61:8 [INFO] [stderr] | [INFO] [stderr] 61 | Ok((env::current_dir().unwrap())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | / return Ok(Config { [INFO] [stderr] 37 | | filetype: conf_type, [INFO] [stderr] 38 | | filepath: conf_fpath, [INFO] [stderr] 39 | | }); [INFO] [stderr] | |_____________________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 36 | Ok(Config { [INFO] [stderr] 37 | filetype: conf_type, [INFO] [stderr] 38 | filepath: conf_fpath, [INFO] [stderr] 39 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:198:5 [INFO] [stderr] | [INFO] [stderr] 198 | return procs; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `procs` [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: unused variable: `env` [INFO] [stderr] --> src/builtin.rs:38:15 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn export(env: &[String]) -> Result<(), Box> { [INFO] [stderr] | ^^^ help: consider using `_env` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `string` [INFO] [stderr] --> src/builtin.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn hash(string: &str) -> Result<(u32), Box> { [INFO] [stderr] | ^^^^^^ help: consider using `_string` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stdin` [INFO] [stderr] --> src/lib.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | let stdin = io::stdin(); [INFO] [stderr] | ^^^^^ help: consider using `_stdin` instead [INFO] [stderr] [INFO] [stderr] warning: variable `pwd` is assigned to, but never used [INFO] [stderr] --> src/lib.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | let mut pwd: PathBuf; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_pwd` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `pwd` is never read [INFO] [stderr] --> src/lib.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | pwd = builtin::pwd()?; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/lib.rs:107:25 [INFO] [stderr] | [INFO] [stderr] 107 | Err(e) => { [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `config` [INFO] [stderr] --> src/lib.rs:47:12 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn run(config: Config) -> Result<(), Box> { [INFO] [stderr] | ^^^^^^ help: consider using `_config` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:171:10 [INFO] [stderr] | [INFO] [stderr] 171 | for (i, token) in tokens.iter().enumerate() { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | let mut running: bool = true; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `HELP` [INFO] [stderr] --> src/builtin.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | / static HELP: &'static str = " [INFO] [stderr] 11 | | exit - exits the shell. [INFO] [stderr] 12 | | "; [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `help` [INFO] [stderr] --> src/builtin.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn help() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `cd` [INFO] [stderr] --> src/builtin.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn cd(path: PathBuf) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `export` [INFO] [stderr] --> src/builtin.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn export(env: &[String]) -> Result<(), Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `unset` [INFO] [stderr] --> src/builtin.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn unset() -> Result<(), Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `hash` [INFO] [stderr] --> src/builtin.rs:52:1 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn hash(string: &str) -> Result<(u32), Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `stdin_fd` [INFO] [stderr] --> src/lib.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | stdin_fd: c_int, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `stdout_fd` [INFO] [stderr] --> src/lib.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | stdout_fd: c_int, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `stderr_fd` [INFO] [stderr] --> src/lib.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | stderr_fd: c_int, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/lib.rs:55:12 [INFO] [stderr] | [INFO] [stderr] 55 | if let Err(_) = r1.load_history(".rsh_history") { [INFO] [stderr] | _____- ^^^^^^ [INFO] [stderr] 56 | | println!("No previous history!"); [INFO] [stderr] 57 | | } [INFO] [stderr] | |_____- help: try this: `if r1.load_history(".rsh_history").is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] error: Variable in the condition are not mutated in the loop body. This either leads to an infinite or to a never running loop. [INFO] [stderr] --> src/lib.rs:62:11 [INFO] [stderr] | [INFO] [stderr] 62 | while running { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::while_immutable_condition)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_immutable_condition [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | if line.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!line.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `rsh`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unused variable: `env` [INFO] [stderr] --> src/builtin.rs:38:15 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn export(env: &[String]) -> Result<(), Box> { [INFO] [stderr] | ^^^ help: consider using `_env` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `string` [INFO] [stderr] --> src/builtin.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn hash(string: &str) -> Result<(u32), Box> { [INFO] [stderr] | ^^^^^^ help: consider using `_string` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stdin` [INFO] [stderr] --> src/lib.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | let stdin = io::stdin(); [INFO] [stderr] | ^^^^^ help: consider using `_stdin` instead [INFO] [stderr] [INFO] [stderr] warning: variable `pwd` is assigned to, but never used [INFO] [stderr] --> src/lib.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | let mut pwd: PathBuf; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_pwd` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `pwd` is never read [INFO] [stderr] --> src/lib.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | pwd = builtin::pwd()?; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/lib.rs:107:25 [INFO] [stderr] | [INFO] [stderr] 107 | Err(e) => { [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `config` [INFO] [stderr] --> src/lib.rs:47:12 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn run(config: Config) -> Result<(), Box> { [INFO] [stderr] | ^^^^^^ help: consider using `_config` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:171:10 [INFO] [stderr] | [INFO] [stderr] 171 | for (i, token) in tokens.iter().enumerate() { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `filetype` [INFO] [stderr] --> src/lib.rs:207:13 [INFO] [stderr] | [INFO] [stderr] 207 | let filetype = "startup"; [INFO] [stderr] | ^^^^^^^^ help: consider using `_filetype` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `filename` [INFO] [stderr] --> src/lib.rs:208:13 [INFO] [stderr] | [INFO] [stderr] 208 | let filename = "./rshrc"; [INFO] [stderr] | ^^^^^^^^ help: consider using `_filename` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | let mut running: bool = true; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `HELP` [INFO] [stderr] --> src/builtin.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | / static HELP: &'static str = " [INFO] [stderr] 11 | | exit - exits the shell. [INFO] [stderr] 12 | | "; [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `help` [INFO] [stderr] --> src/builtin.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn help() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `cd` [INFO] [stderr] --> src/builtin.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn cd(path: PathBuf) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `export` [INFO] [stderr] --> src/builtin.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn export(env: &[String]) -> Result<(), Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `unset` [INFO] [stderr] --> src/builtin.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn unset() -> Result<(), Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `hash` [INFO] [stderr] --> src/builtin.rs:52:1 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn hash(string: &str) -> Result<(u32), Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `stdin_fd` [INFO] [stderr] --> src/lib.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | stdin_fd: c_int, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `stdout_fd` [INFO] [stderr] --> src/lib.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | stdout_fd: c_int, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `stderr_fd` [INFO] [stderr] --> src/lib.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | stderr_fd: c_int, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/lib.rs:55:12 [INFO] [stderr] | [INFO] [stderr] 55 | if let Err(_) = r1.load_history(".rsh_history") { [INFO] [stderr] | _____- ^^^^^^ [INFO] [stderr] 56 | | println!("No previous history!"); [INFO] [stderr] 57 | | } [INFO] [stderr] | |_____- help: try this: `if r1.load_history(".rsh_history").is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] error: Variable in the condition are not mutated in the loop body. This either leads to an infinite or to a never running loop. [INFO] [stderr] --> src/lib.rs:62:11 [INFO] [stderr] | [INFO] [stderr] 62 | while running { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::while_immutable_condition)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_immutable_condition [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | if line.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!line.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `rsh`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "b5a0649e30240325bc7caa1d527e2c7a480630ac8f16384de9deab2ee40499dd"` [INFO] running `"docker" "rm" "-f" "b5a0649e30240325bc7caa1d527e2c7a480630ac8f16384de9deab2ee40499dd"` [INFO] [stdout] b5a0649e30240325bc7caa1d527e2c7a480630ac8f16384de9deab2ee40499dd