[INFO] crate dia-args 0.12.0 is already in cache [INFO] extracting crate dia-args 0.12.0 into work/ex/clippy-test-run/sources/stable/reg/dia-args/0.12.0 [INFO] extracting crate dia-args 0.12.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dia-args/0.12.0 [INFO] validating manifest of dia-args-0.12.0 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 dia-args-0.12.0 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 dia-args-0.12.0 [INFO] finished frobbing dia-args-0.12.0 [INFO] frobbed toml for dia-args-0.12.0 written to work/ex/clippy-test-run/sources/stable/reg/dia-args/0.12.0/Cargo.toml [INFO] started frobbing dia-args-0.12.0 [INFO] finished frobbing dia-args-0.12.0 [INFO] frobbed toml for dia-args-0.12.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dia-args/0.12.0/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 dia-args-0.12.0 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dia-args/0.12.0:/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 -Dclippy::into_iter_on_array" "-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] 1e6207121268e25412027d2c18f86e8e5fd5bdfc74b55d92b34886a1f56e0aa5 [INFO] running `"docker" "start" "-a" "1e6207121268e25412027d2c18f86e8e5fd5bdfc74b55d92b34886a1f56e0aa5"` [INFO] [stderr] Checking dia-args v0.12.0 (/opt/crater/workdir) [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | pub const NAME: &'static str = "Dia-args"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:83:23 [INFO] [stderr] | [INFO] [stderr] 83 | pub const CODE_NAME: &'static str = code_name!(); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:86:21 [INFO] [stderr] | [INFO] [stderr] 86 | pub const VERSION: &'static str = version!(); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:92:18 [INFO] [stderr] | [INFO] [stderr] 92 | pub const UUID: &'static str = "ea808a86-0aef-4163-9964-8f25f727f06a"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | pub const TAG: &'static str = concat!(code_name!(), "::ea808a86::", version!()); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/__.rs:11:18 [INFO] [stderr] | [INFO] [stderr] 11 | pub const UUID: &'static str = "3ec2df31-b5fb-49a9-b91f-de63ec69a058"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/__.rs:15:21 [INFO] [stderr] | [INFO] [stderr] 15 | pub const VERSION: &'static str = "0.2.0"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/args.rs:11:28 [INFO] [stderr] | [INFO] [stderr] 11 | pub const TRUE_AS_STRING: &'static str = "true"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/args.rs:14:29 [INFO] [stderr] | [INFO] [stderr] 14 | pub const FALSE_AS_STRING: &'static str = "false"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | pub const NAME: &'static str = "Dia-args"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:83:23 [INFO] [stderr] | [INFO] [stderr] 83 | pub const CODE_NAME: &'static str = code_name!(); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:86:21 [INFO] [stderr] | [INFO] [stderr] 86 | pub const VERSION: &'static str = version!(); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:92:18 [INFO] [stderr] | [INFO] [stderr] 92 | pub const UUID: &'static str = "ea808a86-0aef-4163-9964-8f25f727f06a"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | pub const TAG: &'static str = concat!(code_name!(), "::ea808a86::", version!()); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/__.rs:11:18 [INFO] [stderr] | [INFO] [stderr] 11 | pub const UUID: &'static str = "3ec2df31-b5fb-49a9-b91f-de63ec69a058"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/__.rs:15:21 [INFO] [stderr] | [INFO] [stderr] 15 | pub const VERSION: &'static str = "0.2.0"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/args.rs:11:28 [INFO] [stderr] | [INFO] [stderr] 11 | pub const TRUE_AS_STRING: &'static str = "true"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/args.rs:14:29 [INFO] [stderr] | [INFO] [stderr] 14 | pub const FALSE_AS_STRING: &'static str = "false"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/args.rs:87:31 [INFO] [stderr] | [INFO] [stderr] 87 | Some(cmds) => match cmds.is_empty() { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 88 | | true => None, [INFO] [stderr] 89 | | false => Some(cmds.remove(0)), [INFO] [stderr] 90 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if cmds.is_empty() { None } else { Some(cmds.remove(0)) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/args.rs:95:35 [INFO] [stderr] | [INFO] [stderr] 95 | Some(cmds) => match cmds.is_empty() { [INFO] [stderr] | ___________________________________^ [INFO] [stderr] 96 | | true => None, [INFO] [stderr] 97 | | false => Some(cmds), [INFO] [stderr] 98 | | }, [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if cmds.is_empty() { None } else { Some(cmds) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/args.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | / match result.is_none() { [INFO] [stderr] 133 | | true => match values.len() { [INFO] [stderr] 134 | | 0 => return Some(Err(Error::new(ErrorKind::InvalidData, __!("Internal parser error: no values found")))), [INFO] [stderr] 135 | | 1 => result = Some( [INFO] [stderr] ... | [INFO] [stderr] 141 | | false => return Some(Err(Error::new(ErrorKind::InvalidData, format!("Duplicate value for {:?}", key)))), [INFO] [stderr] 142 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 132 | if result.is_none() { match values.len() { [INFO] [stderr] 133 | 0 => return Some(Err(Error::new(ErrorKind::InvalidData, __!("Internal parser error: no values found")))), [INFO] [stderr] 134 | 1 => result = Some( [INFO] [stderr] 135 | T::from_str(&values[0]) [INFO] [stderr] 136 | .map_err(|_| Error::new(ErrorKind::Other, format!("Failed parsing value {:?} of {:?}", &values[0], &key))) [INFO] [stderr] 137 | ), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/args.rs:201:20 [INFO] [stderr] | [INFO] [stderr] 201 | result.map(|r| Ok(r)) [INFO] [stderr] | ^^^^^^^^^ help: remove closure as shown: `Ok` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/args.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | self.args.is_empty() == false || self.sub_args.is_some() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/args.rs:273:13 [INFO] [stderr] | [INFO] [stderr] 273 | / match options.contains(&value) { [INFO] [stderr] 274 | | true => return Err(Error::new(ErrorKind::InvalidData, format!("Duplicate value for {:?}", &arg))), [INFO] [stderr] 275 | | false => { [INFO] [stderr] 276 | | options.push(value); [INFO] [stderr] 277 | | return Ok(None); [INFO] [stderr] 278 | | }, [INFO] [stderr] 279 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 273 | if options.contains(&value) { return Err(Error::new(ErrorKind::InvalidData, format!("Duplicate value for {:?}", &arg))) } else { [INFO] [stderr] 274 | options.push(value); [INFO] [stderr] 275 | return Ok(None); [INFO] [stderr] 276 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/args.rs:286:5 [INFO] [stderr] | [INFO] [stderr] 286 | / loop { [INFO] [stderr] 287 | | match args.next() { [INFO] [stderr] 288 | | Some(arg) => { [INFO] [stderr] 289 | | let arg = arg.as_ref(); [INFO] [stderr] ... | [INFO] [stderr] 351 | | }; [INFO] [stderr] 352 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(arg) = args.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/args.rs:87:31 [INFO] [stderr] | [INFO] [stderr] 87 | Some(cmds) => match cmds.is_empty() { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 88 | | true => None, [INFO] [stderr] 89 | | false => Some(cmds.remove(0)), [INFO] [stderr] 90 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if cmds.is_empty() { None } else { Some(cmds.remove(0)) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/args.rs:95:35 [INFO] [stderr] | [INFO] [stderr] 95 | Some(cmds) => match cmds.is_empty() { [INFO] [stderr] | ___________________________________^ [INFO] [stderr] 96 | | true => None, [INFO] [stderr] 97 | | false => Some(cmds), [INFO] [stderr] 98 | | }, [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if cmds.is_empty() { None } else { Some(cmds) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/args.rs:312:86 [INFO] [stderr] | [INFO] [stderr] 312 | let value = match args.peek().map(|s| s.as_ref().starts_with("-")) { [INFO] [stderr] | ^^^ help: try using a char instead: `'-'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/args.rs:314:88 [INFO] [stderr] | [INFO] [stderr] 314 | Some(false) => args.next().map(|s| s.as_ref().to_string()).ok_or( [INFO] [stderr] | ________________________________________________________________________________________^ [INFO] [stderr] 315 | | // This shouldn't happen, but it's better than ::unwrap() [INFO] [stderr] 316 | | Error::new(ErrorKind::InvalidData, format!("Missing value for {:?}", &arg)) [INFO] [stderr] 317 | | )?, [INFO] [stderr] | |_____________________________^ help: try this: `ok_or_else(|| Error::new(ErrorKind::InvalidData, format!("Missing value for {:?}", &arg)))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/args.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | / match result.is_none() { [INFO] [stderr] 133 | | true => match values.len() { [INFO] [stderr] 134 | | 0 => return Some(Err(Error::new(ErrorKind::InvalidData, __!("Internal parser error: no values found")))), [INFO] [stderr] 135 | | 1 => result = Some( [INFO] [stderr] ... | [INFO] [stderr] 141 | | false => return Some(Err(Error::new(ErrorKind::InvalidData, format!("Duplicate value for {:?}", key)))), [INFO] [stderr] 142 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/args.rs:337:28 [INFO] [stderr] | [INFO] [stderr] 337 | if sub_args.is_empty() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!sub_args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 132 | if result.is_none() { match values.len() { [INFO] [stderr] 133 | 0 => return Some(Err(Error::new(ErrorKind::InvalidData, __!("Internal parser error: no values found")))), [INFO] [stderr] 134 | 1 => result = Some( [INFO] [stderr] 135 | T::from_str(&values[0]) [INFO] [stderr] 136 | .map_err(|_| Error::new(ErrorKind::Other, format!("Failed parsing value {:?} of {:?}", &values[0], &key))) [INFO] [stderr] 137 | ), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/args.rs:343:25 [INFO] [stderr] | [INFO] [stderr] 343 | / match result.use_stdin { [INFO] [stderr] 344 | | true => return Err(Error::new(ErrorKind::InvalidData, format!("Duplicate {:?}", &arg))), [INFO] [stderr] 345 | | false => result.use_stdin = true, [INFO] [stderr] 346 | | }; [INFO] [stderr] | |_________________________^ help: consider using an if/else expression: `if result.use_stdin { return Err(Error::new(ErrorKind::InvalidData, format!("Duplicate {:?}", &arg))) } else { result.use_stdin = true }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/args.rs:201:20 [INFO] [stderr] | [INFO] [stderr] 201 | result.map(|r| Ok(r)) [INFO] [stderr] | ^^^^^^^^^ help: remove closure as shown: `Ok` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/args.rs:392:9 [INFO] [stderr] | [INFO] [stderr] 392 | / loop { [INFO] [stderr] 393 | | match chars.next() { [INFO] [stderr] 394 | | Some((index, chr)) => match chr { [INFO] [stderr] 395 | | '=' => match index { [INFO] [stderr] ... | [INFO] [stderr] 411 | | }; [INFO] [stderr] 412 | | } [INFO] [stderr] | |_________^ help: try: `while let Some((index, chr)) = chars.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/args.rs:413:9 [INFO] [stderr] | [INFO] [stderr] 413 | / match must_be_some_bool_options { [INFO] [stderr] 414 | | true => Ok(ArgKind::SomeBoolShortOptions), [INFO] [stderr] 415 | | false => Ok(ArgKind::ShortOption), [INFO] [stderr] 416 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if must_be_some_bool_options { Ok(ArgKind::SomeBoolShortOptions) } else { Ok(ArgKind::ShortOption) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/args.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | self.args.is_empty() == false || self.sub_args.is_some() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/args.rs:429:26 [INFO] [stderr] | [INFO] [stderr] 429 | if s.starts_with("-") { [INFO] [stderr] | ^^^ help: try using a char instead: `'-'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/args.rs:273:13 [INFO] [stderr] | [INFO] [stderr] 273 | / match options.contains(&value) { [INFO] [stderr] 274 | | true => return Err(Error::new(ErrorKind::InvalidData, format!("Duplicate value for {:?}", &arg))), [INFO] [stderr] 275 | | false => { [INFO] [stderr] 276 | | options.push(value); [INFO] [stderr] 277 | | return Ok(None); [INFO] [stderr] 278 | | }, [INFO] [stderr] 279 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 273 | if options.contains(&value) { return Err(Error::new(ErrorKind::InvalidData, format!("Duplicate value for {:?}", &arg))) } else { [INFO] [stderr] 274 | options.push(value); [INFO] [stderr] 275 | return Ok(None); [INFO] [stderr] 276 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/args.rs:286:5 [INFO] [stderr] | [INFO] [stderr] 286 | / loop { [INFO] [stderr] 287 | | match args.next() { [INFO] [stderr] 288 | | Some(arg) => { [INFO] [stderr] 289 | | let arg = arg.as_ref(); [INFO] [stderr] ... | [INFO] [stderr] 351 | | }; [INFO] [stderr] 352 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(arg) = args.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/args.rs:312:86 [INFO] [stderr] | [INFO] [stderr] 312 | let value = match args.peek().map(|s| s.as_ref().starts_with("-")) { [INFO] [stderr] | ^^^ help: try using a char instead: `'-'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/args.rs:314:88 [INFO] [stderr] | [INFO] [stderr] 314 | Some(false) => args.next().map(|s| s.as_ref().to_string()).ok_or( [INFO] [stderr] | ________________________________________________________________________________________^ [INFO] [stderr] 315 | | // This shouldn't happen, but it's better than ::unwrap() [INFO] [stderr] 316 | | Error::new(ErrorKind::InvalidData, format!("Missing value for {:?}", &arg)) [INFO] [stderr] 317 | | )?, [INFO] [stderr] | |_____________________________^ help: try this: `ok_or_else(|| Error::new(ErrorKind::InvalidData, format!("Missing value for {:?}", &arg)))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/args.rs:337:28 [INFO] [stderr] | [INFO] [stderr] 337 | if sub_args.is_empty() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!sub_args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/args.rs:343:25 [INFO] [stderr] | [INFO] [stderr] 343 | / match result.use_stdin { [INFO] [stderr] 344 | | true => return Err(Error::new(ErrorKind::InvalidData, format!("Duplicate {:?}", &arg))), [INFO] [stderr] 345 | | false => result.use_stdin = true, [INFO] [stderr] 346 | | }; [INFO] [stderr] | |_________________________^ help: consider using an if/else expression: `if result.use_stdin { return Err(Error::new(ErrorKind::InvalidData, format!("Duplicate {:?}", &arg))) } else { result.use_stdin = true }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/args.rs:392:9 [INFO] [stderr] | [INFO] [stderr] 392 | / loop { [INFO] [stderr] 393 | | match chars.next() { [INFO] [stderr] 394 | | Some((index, chr)) => match chr { [INFO] [stderr] 395 | | '=' => match index { [INFO] [stderr] ... | [INFO] [stderr] 411 | | }; [INFO] [stderr] 412 | | } [INFO] [stderr] | |_________^ help: try: `while let Some((index, chr)) = chars.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/args.rs:413:9 [INFO] [stderr] | [INFO] [stderr] 413 | / match must_be_some_bool_options { [INFO] [stderr] 414 | | true => Ok(ArgKind::SomeBoolShortOptions), [INFO] [stderr] 415 | | false => Ok(ArgKind::ShortOption), [INFO] [stderr] 416 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if must_be_some_bool_options { Ok(ArgKind::SomeBoolShortOptions) } else { Ok(ArgKind::ShortOption) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/args.rs:429:26 [INFO] [stderr] | [INFO] [stderr] 429 | if s.starts_with("-") { [INFO] [stderr] | ^^^ help: try using a char instead: `'-'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> tests/args.rs:13:14 [INFO] [stderr] | [INFO] [stderr] 13 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/args.rs:18:16 [INFO] [stderr] | [INFO] [stderr] 18 | assert_eq!(args.args.get("-b").unwrap(), &[dia_args::TRUE_AS_STRING]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&args.args["-b"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/args.rs:19:16 [INFO] [stderr] | [INFO] [stderr] 19 | assert_eq!(args.args.get("-f").unwrap(), &[dia_args::FALSE_AS_STRING]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&args.args["-f"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/args.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | assert_eq!(args.args.get("-g").unwrap(), &[dia_args::FALSE_AS_STRING]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&args.args["-g"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/args.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | assert_eq!(args.args.get("-h").unwrap(), &[dia_args::FALSE_AS_STRING]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&args.args["-h"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/args.rs:22:16 [INFO] [stderr] | [INFO] [stderr] 22 | assert_eq!(args.args.get("-j").unwrap(), &[dia_args::FALSE_AS_STRING]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&args.args["-j"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/args.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | assert_eq!(args.args.get("--src").unwrap(), &["123"]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&args.args["--src"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/args.rs:25:16 [INFO] [stderr] | [INFO] [stderr] 25 | assert_eq!(args.args.get("--some").unwrap(), &["none"]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&args.args["--some"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/args.rs:26:16 [INFO] [stderr] | [INFO] [stderr] 26 | assert_eq!(args.args.get("--type").unwrap(), &["ogg", "m4v", "M4V"]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&args.args["--type"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> tests/args.rs:47:67 [INFO] [stderr] | [INFO] [stderr] 47 | let args = dia_args::parse_from(&mut ["help", "version", "1"].into_iter()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: requested on the command line with `-D clippy::into-iter-on-array` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> tests/args.rs:71:54 [INFO] [stderr] | [INFO] [stderr] 71 | let args = dia_args::parse_from(&mut ["--debug"].into_iter()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> tests/args.rs:74:67 [INFO] [stderr] | [INFO] [stderr] 74 | let args = dia_args::parse_from(&mut ["--debug", "something"].into_iter()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> tests/args.rs:77:73 [INFO] [stderr] | [INFO] [stderr] 77 | let args = dia_args::parse_from(&mut ["--debug=false", "something"].into_iter()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> tests/args.rs:80:71 [INFO] [stderr] | [INFO] [stderr] 80 | let args = dia_args::parse_from(&mut ["--debug=false", "--other"].into_iter()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> tests/args.rs:83:60 [INFO] [stderr] | [INFO] [stderr] 83 | let args = dia_args::parse_from(&mut ["--debug", "-x"].into_iter()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `dia-args`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "1e6207121268e25412027d2c18f86e8e5fd5bdfc74b55d92b34886a1f56e0aa5"` [INFO] running `"docker" "rm" "-f" "1e6207121268e25412027d2c18f86e8e5fd5bdfc74b55d92b34886a1f56e0aa5"` [INFO] [stdout] 1e6207121268e25412027d2c18f86e8e5fd5bdfc74b55d92b34886a1f56e0aa5