[INFO] crate shrust 0.0.6 is already in cache [INFO] extracting crate shrust 0.0.6 into work/ex/clippy-test-run/sources/stable/reg/shrust/0.0.6 [INFO] extracting crate shrust 0.0.6 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/shrust/0.0.6 [INFO] validating manifest of shrust-0.0.6 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 shrust-0.0.6 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 shrust-0.0.6 [INFO] finished frobbing shrust-0.0.6 [INFO] frobbed toml for shrust-0.0.6 written to work/ex/clippy-test-run/sources/stable/reg/shrust/0.0.6/Cargo.toml [INFO] started frobbing shrust-0.0.6 [INFO] finished frobbing shrust-0.0.6 [INFO] frobbed toml for shrust-0.0.6 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/shrust/0.0.6/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 shrust-0.0.6 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/shrust/0.0.6:/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] 5cff508b3a7f7cdb7c59934e611f5d294825cd4b28b2b85e22480e4910458624 [INFO] running `"docker" "start" "-a" "5cff508b3a7f7cdb7c59934e611f5d294825cd4b28b2b85e22480e4910458624"` [INFO] [stderr] Checking prettytable-rs v0.8.0 [INFO] [stderr] Checking shrust v0.0.6 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | / return match *self { [INFO] [stderr] 37 | | Empty => write!(format, "No command provided"), [INFO] [stderr] 38 | | Quit => write!(format, "Quit"), [INFO] [stderr] 39 | | UnknownCommand(ref cmd) => write!(format, "Unknown Command {}", cmd), [INFO] [stderr] ... | [INFO] [stderr] 42 | | Other(ref e) => write!(format, "{}", e) [INFO] [stderr] 43 | | }; [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 | match *self { [INFO] [stderr] 37 | Empty => write!(format, "No command provided"), [INFO] [stderr] 38 | Quit => write!(format, "Quit"), [INFO] [stderr] 39 | UnknownCommand(ref cmd) => write!(format, "Unknown Command {}", cmd), [INFO] [stderr] 40 | InvalidHistory(i) => write!(format, "Invalid history entry {}", i), [INFO] [stderr] 41 | MissingArgs => write!(format, "Not enough arguments"), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | return Other(Box::new(e)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Other(Box::new(e))` [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:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | / return ShellIO { [INFO] [stderr] 77 | | input: Arc::new(Mutex::new(input)), [INFO] [stderr] 78 | | output: Arc::new(Mutex::new(output)) [INFO] [stderr] 79 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [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] 76 | ShellIO { [INFO] [stderr] 77 | input: Arc::new(Mutex::new(input)), [INFO] [stderr] 78 | output: Arc::new(Mutex::new(output)) [INFO] [stderr] 79 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | / return ShellIO { [INFO] [stderr] 88 | | input: io.clone(), [INFO] [stderr] 89 | | output: io [INFO] [stderr] 90 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [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] 87 | ShellIO { [INFO] [stderr] 88 | input: io.clone(), [INFO] [stderr] 89 | output: io [INFO] [stderr] 90 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | return self.input.lock().expect("Cannot get handle to console input").read(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.input.lock().expect("Cannot get handle to console input").read(buf)` [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:102:9 [INFO] [stderr] | [INFO] [stderr] 102 | return self.output.lock().expect("Cannot get handle to console output").write(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.output.lock().expect("Cannot get handle to console output").write(buf)` [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:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | return self.output.lock().expect("Cannot get handle to console output").flush(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.output.lock().expect("Cannot get handle to console output").flush()` [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:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | return Self::new(io::stdin(), io::stdout()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::new(io::stdin(), io::stdout())` [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:144:9 [INFO] [stderr] | [INFO] [stderr] 144 | return sh; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `sh` [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:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | return &mut self.data; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&mut self.data` [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:208:9 [INFO] [stderr] | [INFO] [stderr] 208 | return &self.history; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.history` [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:214:9 [INFO] [stderr] | [INFO] [stderr] 214 | / return match splt.next() { [INFO] [stderr] 215 | | None => Err(Empty), [INFO] [stderr] 216 | | Some(cmd) => match self.commands.get(cmd).cloned() { [INFO] [stderr] 217 | | None => self.default.clone()(io, self, line), [INFO] [stderr] 218 | | Some(c) => c.run(io, self, &splt.collect::>()) [INFO] [stderr] 219 | | } [INFO] [stderr] 220 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [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] 214 | match splt.next() { [INFO] [stderr] 215 | None => Err(Empty), [INFO] [stderr] 216 | Some(cmd) => match self.commands.get(cmd).cloned() { [INFO] [stderr] 217 | None => self.default.clone()(io, self, line), [INFO] [stderr] 218 | Some(c) => c.run(io, self, &splt.collect::>()) [INFO] [stderr] 219 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:261:9 [INFO] [stderr] | [INFO] [stderr] 261 | return &self.data; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.data` [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:267:9 [INFO] [stderr] | [INFO] [stderr] 267 | return &mut self.data; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&mut self.data` [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:273:9 [INFO] [stderr] | [INFO] [stderr] 273 | / return Shell { [INFO] [stderr] 274 | | commands: self.commands.clone(), [INFO] [stderr] 275 | | default: self.default.clone(), [INFO] [stderr] 276 | | data: self.data.clone(), [INFO] [stderr] ... | [INFO] [stderr] 279 | | history: self.history.clone() [INFO] [stderr] 280 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [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] 273 | Shell { [INFO] [stderr] 274 | commands: self.commands.clone(), [INFO] [stderr] 275 | default: self.default.clone(), [INFO] [stderr] 276 | data: self.data.clone(), [INFO] [stderr] 277 | prompt: self.prompt.clone(), [INFO] [stderr] 278 | unclosed_prompt: self.unclosed_prompt.clone(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:296:9 [INFO] [stderr] | [INFO] [stderr] 296 | / return History { [INFO] [stderr] 297 | | history: Arc::new(Mutex::new(Vec::with_capacity(capacity))), [INFO] [stderr] 298 | | capacity [INFO] [stderr] 299 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [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] 296 | History { [INFO] [stderr] 297 | history: Arc::new(Mutex::new(Vec::with_capacity(capacity))), [INFO] [stderr] 298 | capacity [INFO] [stderr] 299 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:323:9 [INFO] [stderr] | [INFO] [stderr] 323 | return self.history.lock().unwrap().get(i).cloned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.history.lock().unwrap().get(i).cloned()` [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:343:13 [INFO] [stderr] | [INFO] [stderr] 343 | / return Command { [INFO] [stderr] 344 | | name, [INFO] [stderr] 345 | | description, [INFO] [stderr] 346 | | nargs, [INFO] [stderr] 347 | | func [INFO] [stderr] 348 | | }; [INFO] [stderr] | |______________^ [INFO] [stderr] | [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] 343 | Command { [INFO] [stderr] 344 | name, [INFO] [stderr] 345 | description, [INFO] [stderr] 346 | nargs, [INFO] [stderr] 347 | func [INFO] [stderr] 348 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:359:13 [INFO] [stderr] | [INFO] [stderr] 359 | return (self.func)(io, shell, args); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(self.func)(io, shell, args)` [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:364:9 [INFO] [stderr] | [INFO] [stderr] 364 | return Command::new("help".to_string(), "Print this help".to_string(), 0, Box::new(|io, shell, _| shell.print_help(io))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Command::new("help".to_string(), "Print this help".to_string(), 0, Box::new(|io, shell, _| shell.print_help(io)))` [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:368:9 [INFO] [stderr] | [INFO] [stderr] 368 | return Command::new("quit".to_string(), "Quit".to_string(), 0, Box::new(|_, _, _| Err(ExecError::Quit))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Command::new("quit".to_string(), "Quit".to_string(), 0, Box::new(|_, _, _| Err(ExecError::Quit)))` [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:372:9 [INFO] [stderr] | [INFO] [stderr] 372 | / return Command::new("history".to_string(), "Print commands history or run a command from it".to_string(), 0, Box::new(|io, shell, args| { [INFO] [stderr] 373 | | if !args.is_empty() { [INFO] [stderr] 374 | | let i = try!(usize::from_str(args[0])); [INFO] [stderr] 375 | | let cmd = try!(shell.get_history().get(i).ok_or_else(|| ExecError::InvalidHistory(i))); [INFO] [stderr] ... | [INFO] [stderr] 380 | | } [INFO] [stderr] 381 | | })); [INFO] [stderr] | |____________^ [INFO] [stderr] | [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] 372 | Command::new("history".to_string(), "Print commands history or run a command from it".to_string(), 0, Box::new(|io, shell, args| { [INFO] [stderr] 373 | if !args.is_empty() { [INFO] [stderr] 374 | let i = try!(usize::from_str(args[0])); [INFO] [stderr] 375 | let cmd = try!(shell.get_history().get(i).ok_or_else(|| ExecError::InvalidHistory(i))); [INFO] [stderr] 376 | return shell.eval(io, &cmd); [INFO] [stderr] 377 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:376:17 [INFO] [stderr] | [INFO] [stderr] 376 | return shell.eval(io, &cmd); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `shell.eval(io, &cmd)` [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:379:17 [INFO] [stderr] | [INFO] [stderr] 379 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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 variable `cnt` is used as a loop counter. Consider using `for (cnt, item) in &*self.history.lock().unwrap().enumerate()` or similar iterators [INFO] [stderr] --> src/lib.rs:315:18 [INFO] [stderr] | [INFO] [stderr] 315 | for s in &*self.history.lock().unwrap() { [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: unneeded return statement [INFO] [stderr] --> src/lib.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | / return match *self { [INFO] [stderr] 37 | | Empty => write!(format, "No command provided"), [INFO] [stderr] 38 | | Quit => write!(format, "Quit"), [INFO] [stderr] 39 | | UnknownCommand(ref cmd) => write!(format, "Unknown Command {}", cmd), [INFO] [stderr] ... | [INFO] [stderr] 42 | | Other(ref e) => write!(format, "{}", e) [INFO] [stderr] 43 | | }; [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 | match *self { [INFO] [stderr] 37 | Empty => write!(format, "No command provided"), [INFO] [stderr] 38 | Quit => write!(format, "Quit"), [INFO] [stderr] 39 | UnknownCommand(ref cmd) => write!(format, "Unknown Command {}", cmd), [INFO] [stderr] 40 | InvalidHistory(i) => write!(format, "Invalid history entry {}", i), [INFO] [stderr] 41 | MissingArgs => write!(format, "Not enough arguments"), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | return Other(Box::new(e)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Other(Box::new(e))` [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:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | / return ShellIO { [INFO] [stderr] 77 | | input: Arc::new(Mutex::new(input)), [INFO] [stderr] 78 | | output: Arc::new(Mutex::new(output)) [INFO] [stderr] 79 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [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] 76 | ShellIO { [INFO] [stderr] 77 | input: Arc::new(Mutex::new(input)), [INFO] [stderr] 78 | output: Arc::new(Mutex::new(output)) [INFO] [stderr] 79 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | / return ShellIO { [INFO] [stderr] 88 | | input: io.clone(), [INFO] [stderr] 89 | | output: io [INFO] [stderr] 90 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [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] 87 | ShellIO { [INFO] [stderr] 88 | input: io.clone(), [INFO] [stderr] 89 | output: io [INFO] [stderr] 90 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | return self.input.lock().expect("Cannot get handle to console input").read(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.input.lock().expect("Cannot get handle to console input").read(buf)` [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:102:9 [INFO] [stderr] | [INFO] [stderr] 102 | return self.output.lock().expect("Cannot get handle to console output").write(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.output.lock().expect("Cannot get handle to console output").write(buf)` [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:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | return self.output.lock().expect("Cannot get handle to console output").flush(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.output.lock().expect("Cannot get handle to console output").flush()` [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:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | return Self::new(io::stdin(), io::stdout()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::new(io::stdin(), io::stdout())` [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:144:9 [INFO] [stderr] | [INFO] [stderr] 144 | return sh; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `sh` [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:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | return &mut self.data; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&mut self.data` [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:208:9 [INFO] [stderr] | [INFO] [stderr] 208 | return &self.history; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.history` [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:214:9 [INFO] [stderr] | [INFO] [stderr] 214 | / return match splt.next() { [INFO] [stderr] 215 | | None => Err(Empty), [INFO] [stderr] 216 | | Some(cmd) => match self.commands.get(cmd).cloned() { [INFO] [stderr] 217 | | None => self.default.clone()(io, self, line), [INFO] [stderr] 218 | | Some(c) => c.run(io, self, &splt.collect::>()) [INFO] [stderr] 219 | | } [INFO] [stderr] 220 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [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] 214 | match splt.next() { [INFO] [stderr] 215 | None => Err(Empty), [INFO] [stderr] 216 | Some(cmd) => match self.commands.get(cmd).cloned() { [INFO] [stderr] 217 | None => self.default.clone()(io, self, line), [INFO] [stderr] 218 | Some(c) => c.run(io, self, &splt.collect::>()) [INFO] [stderr] 219 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:261:9 [INFO] [stderr] | [INFO] [stderr] 261 | return &self.data; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.data` [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:267:9 [INFO] [stderr] | [INFO] [stderr] 267 | return &mut self.data; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&mut self.data` [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:273:9 [INFO] [stderr] | [INFO] [stderr] 273 | / return Shell { [INFO] [stderr] 274 | | commands: self.commands.clone(), [INFO] [stderr] 275 | | default: self.default.clone(), [INFO] [stderr] 276 | | data: self.data.clone(), [INFO] [stderr] ... | [INFO] [stderr] 279 | | history: self.history.clone() [INFO] [stderr] 280 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [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] 273 | Shell { [INFO] [stderr] 274 | commands: self.commands.clone(), [INFO] [stderr] 275 | default: self.default.clone(), [INFO] [stderr] 276 | data: self.data.clone(), [INFO] [stderr] 277 | prompt: self.prompt.clone(), [INFO] [stderr] 278 | unclosed_prompt: self.unclosed_prompt.clone(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:296:9 [INFO] [stderr] | [INFO] [stderr] 296 | / return History { [INFO] [stderr] 297 | | history: Arc::new(Mutex::new(Vec::with_capacity(capacity))), [INFO] [stderr] 298 | | capacity [INFO] [stderr] 299 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [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] 296 | History { [INFO] [stderr] 297 | history: Arc::new(Mutex::new(Vec::with_capacity(capacity))), [INFO] [stderr] 298 | capacity [INFO] [stderr] 299 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:323:9 [INFO] [stderr] | [INFO] [stderr] 323 | return self.history.lock().unwrap().get(i).cloned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.history.lock().unwrap().get(i).cloned()` [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:343:13 [INFO] [stderr] | [INFO] [stderr] 343 | / return Command { [INFO] [stderr] 344 | | name, [INFO] [stderr] 345 | | description, [INFO] [stderr] 346 | | nargs, [INFO] [stderr] 347 | | func [INFO] [stderr] 348 | | }; [INFO] [stderr] | |______________^ [INFO] [stderr] | [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] 343 | Command { [INFO] [stderr] 344 | name, [INFO] [stderr] 345 | description, [INFO] [stderr] 346 | nargs, [INFO] [stderr] 347 | func [INFO] [stderr] 348 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:359:13 [INFO] [stderr] | [INFO] [stderr] 359 | return (self.func)(io, shell, args); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(self.func)(io, shell, args)` [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:364:9 [INFO] [stderr] | [INFO] [stderr] 364 | return Command::new("help".to_string(), "Print this help".to_string(), 0, Box::new(|io, shell, _| shell.print_help(io))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Command::new("help".to_string(), "Print this help".to_string(), 0, Box::new(|io, shell, _| shell.print_help(io)))` [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:368:9 [INFO] [stderr] | [INFO] [stderr] 368 | return Command::new("quit".to_string(), "Quit".to_string(), 0, Box::new(|_, _, _| Err(ExecError::Quit))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Command::new("quit".to_string(), "Quit".to_string(), 0, Box::new(|_, _, _| Err(ExecError::Quit)))` [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:372:9 [INFO] [stderr] | [INFO] [stderr] 372 | / return Command::new("history".to_string(), "Print commands history or run a command from it".to_string(), 0, Box::new(|io, shell, args| { [INFO] [stderr] 373 | | if !args.is_empty() { [INFO] [stderr] 374 | | let i = try!(usize::from_str(args[0])); [INFO] [stderr] 375 | | let cmd = try!(shell.get_history().get(i).ok_or_else(|| ExecError::InvalidHistory(i))); [INFO] [stderr] ... | [INFO] [stderr] 380 | | } [INFO] [stderr] 381 | | })); [INFO] [stderr] | |____________^ [INFO] [stderr] | [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] 372 | Command::new("history".to_string(), "Print commands history or run a command from it".to_string(), 0, Box::new(|io, shell, args| { [INFO] [stderr] 373 | if !args.is_empty() { [INFO] [stderr] 374 | let i = try!(usize::from_str(args[0])); [INFO] [stderr] 375 | let cmd = try!(shell.get_history().get(i).ok_or_else(|| ExecError::InvalidHistory(i))); [INFO] [stderr] 376 | return shell.eval(io, &cmd); [INFO] [stderr] 377 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:376:17 [INFO] [stderr] | [INFO] [stderr] 376 | return shell.eval(io, &cmd); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `shell.eval(io, &cmd)` [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:379:17 [INFO] [stderr] | [INFO] [stderr] 379 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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 variable `cnt` is used as a loop counter. Consider using `for (cnt, item) in &*self.history.lock().unwrap().enumerate()` or similar iterators [INFO] [stderr] --> src/lib.rs:315:18 [INFO] [stderr] | [INFO] [stderr] 315 | for s in &*self.history.lock().unwrap() { [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] Finished dev [unoptimized + debuginfo] target(s) in 6.79s [INFO] running `"docker" "inspect" "5cff508b3a7f7cdb7c59934e611f5d294825cd4b28b2b85e22480e4910458624"` [INFO] running `"docker" "rm" "-f" "5cff508b3a7f7cdb7c59934e611f5d294825cd4b28b2b85e22480e4910458624"` [INFO] [stdout] 5cff508b3a7f7cdb7c59934e611f5d294825cd4b28b2b85e22480e4910458624