[INFO] crate over 0.6.3 is already in cache [INFO] extracting crate over 0.6.3 into work/ex/clippy-test-run/sources/stable/reg/over/0.6.3 [INFO] extracting crate over 0.6.3 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/over/0.6.3 [INFO] validating manifest of over-0.6.3 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 over-0.6.3 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 over-0.6.3 [INFO] finished frobbing over-0.6.3 [INFO] frobbed toml for over-0.6.3 written to work/ex/clippy-test-run/sources/stable/reg/over/0.6.3/Cargo.toml [INFO] started frobbing over-0.6.3 [INFO] finished frobbing over-0.6.3 [INFO] frobbed toml for over-0.6.3 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/over/0.6.3/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 over-0.6.3 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/over/0.6.3:/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] 71bf2b4568785c616e0a4f1a5832bab0c63db8918cc9e8564a23736edc15f0cb [INFO] running `"docker" "start" "-a" "71bf2b4568785c616e0a4f1a5832bab0c63db8918cc9e8564a23736edc15f0cb"` [INFO] [stderr] Checking num-bigint v0.1.44 [INFO] [stderr] Checking num-rational v0.1.42 [INFO] [stderr] Checking over v0.6.3 (/opt/crater/workdir) [INFO] [stderr] warning: lint name `too_many_arguments` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/parse/parser.rs:4:10 [INFO] [stderr] | [INFO] [stderr] 4 | #![allow(too_many_arguments)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::too_many_arguments` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: lint name `too_many_arguments` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/parse/parser.rs:4:10 [INFO] [stderr] | [INFO] [stderr] 4 | #![allow(too_many_arguments)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::too_many_arguments` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: lint name `too_many_arguments` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/parse/parser.rs:4:10 [INFO] [stderr] | [INFO] [stderr] 4 | #![allow(too_many_arguments)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::too_many_arguments` [INFO] [stderr] [INFO] [stderr] warning: lint name `useless_let_if_seq` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/macros.rs:105:17 [INFO] [stderr] | [INFO] [stderr] 105 | #[allow(useless_let_if_seq)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::useless_let_if_seq` [INFO] [stderr] ... [INFO] [stderr] 170 | / obj!{ [INFO] [stderr] 171 | | "a" => 1, [INFO] [stderr] 172 | | "b" => arr![1, 2] [INFO] [stderr] 173 | | } [INFO] [stderr] | |_____________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: lint name `too_many_arguments` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/parse/parser.rs:4:10 [INFO] [stderr] | [INFO] [stderr] 4 | #![allow(too_many_arguments)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::too_many_arguments` [INFO] [stderr] [INFO] [stderr] warning: lint name `useless_let_if_seq` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/macros.rs:105:17 [INFO] [stderr] | [INFO] [stderr] 105 | #[allow(useless_let_if_seq)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::useless_let_if_seq` [INFO] [stderr] | [INFO] [stderr] ::: src/tests.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | / obj!{ [INFO] [stderr] 25 | | "null" => Value::Null, [INFO] [stderr] 26 | | "bool" => true, [INFO] [stderr] 27 | | "int" => -5, [INFO] [stderr] ... | [INFO] [stderr] 32 | | "arr" => arr![-5, 0, 1], [INFO] [stderr] 33 | | }; [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: lint name `useless_let_if_seq` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/macros.rs:105:17 [INFO] [stderr] | [INFO] [stderr] 105 | #[allow(useless_let_if_seq)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::useless_let_if_seq` [INFO] [stderr] | [INFO] [stderr] ::: src/tests.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | / obj!{ [INFO] [stderr] 81 | | "bool2" => true, [INFO] [stderr] 82 | | "bool3" => true [INFO] [stderr] 83 | | }; [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: lint name `useless_let_if_seq` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/macros.rs:105:17 [INFO] [stderr] | [INFO] [stderr] 105 | #[allow(useless_let_if_seq)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::useless_let_if_seq` [INFO] [stderr] | [INFO] [stderr] ::: src/tests.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | / obj!{ [INFO] [stderr] 86 | | "^" => def2.clone(), [INFO] [stderr] 87 | | "bool1" => true, [INFO] [stderr] 88 | | "bool2" => false, [INFO] [stderr] 89 | | "test2" => "bye", [INFO] [stderr] 90 | | }; [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: lint name `useless_let_if_seq` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/macros.rs:105:17 [INFO] [stderr] | [INFO] [stderr] 105 | #[allow(useless_let_if_seq)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::useless_let_if_seq` [INFO] [stderr] | [INFO] [stderr] ::: src/tests.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | / obj!{ [INFO] [stderr] 93 | | "^" => def1.clone(), [INFO] [stderr] 94 | | "bool1" => true, [INFO] [stderr] 95 | | "test1" => "hi", [INFO] [stderr] 96 | | }; [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: lint name `useless_let_if_seq` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/macros.rs:105:17 [INFO] [stderr] | [INFO] [stderr] 105 | #[allow(useless_let_if_seq)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::useless_let_if_seq` [INFO] [stderr] | [INFO] [stderr] ::: src/tests.rs:104:16 [INFO] [stderr] | [INFO] [stderr] 104 | let obj2 = obj!{ "^" => def1.clone() }; [INFO] [stderr] | --------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: lint name `useless_let_if_seq` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/macros.rs:105:17 [INFO] [stderr] | [INFO] [stderr] 105 | #[allow(useless_let_if_seq)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::useless_let_if_seq` [INFO] [stderr] | [INFO] [stderr] ::: src/tests.rs:107:16 [INFO] [stderr] | [INFO] [stderr] 107 | let obj2 = obj!{ "^" => def1.clone(), "test1" => "hi", "bool1" => true }; [INFO] [stderr] | ------------------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: lint name `useless_let_if_seq` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/macros.rs:105:17 [INFO] [stderr] | [INFO] [stderr] 105 | #[allow(useless_let_if_seq)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::useless_let_if_seq` [INFO] [stderr] | [INFO] [stderr] ::: src/tests.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | / obj!{ [INFO] [stderr] 134 | | "bool" => true, [INFO] [stderr] 135 | | "str" => "", [INFO] [stderr] 136 | | "arr_char" => arr!['w', 'o', 'w'], [INFO] [stderr] 137 | | "arr_arr" => try_arr![arr![], arr![true, false]].unwrap(), [INFO] [stderr] 138 | | "tup" => tup!('!', tup!(-1), try_arr!["test", "heya"].unwrap()), [INFO] [stderr] 139 | | }; [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/obj.rs:172:12 [INFO] [stderr] | [INFO] [stderr] 172 | Ok(write_file_str(path, &self.write_str())?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 172 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/parse/misc.rs:1:24 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn format_char(ch: &char) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `char` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/obj.rs:172:12 [INFO] [stderr] | [INFO] [stderr] 172 | Ok(write_file_str(path, &self.write_str())?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 172 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/parse/misc.rs:1:24 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn format_char(ch: &char) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `char` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 37 [INFO] [stderr] --> src/tests.rs:78:1 [INFO] [stderr] | [INFO] [stderr] 78 | / fn parents() { [INFO] [stderr] 79 | | let def2 = [INFO] [stderr] 80 | | obj!{ [INFO] [stderr] 81 | | "bool2" => true, [INFO] [stderr] ... | [INFO] [stderr] 127 | | test_eq!(obj.get("test2").unwrap(), "bye"); [INFO] [stderr] 128 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> tests/lib.rs:42:1 [INFO] [stderr] | [INFO] [stderr] 42 | / fn basic() { [INFO] [stderr] 43 | | let obj = Obj::from_file("tests/test_files/basic.over").unwrap(); [INFO] [stderr] 44 | | [INFO] [stderr] 45 | | test_eq!(get_int(&obj, "_a1"), 1); [INFO] [stderr] ... | [INFO] [stderr] 71 | | test_eq!(obj.get("x").unwrap().get_frac().unwrap(), frac!(1, 1)); [INFO] [stderr] 72 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> tests/lib.rs:76:1 [INFO] [stderr] | [INFO] [stderr] 76 | / fn example() { [INFO] [stderr] 77 | | let obj = Obj::from_file("tests/test_files/example.over").unwrap(); [INFO] [stderr] 78 | | [INFO] [stderr] 79 | | assert_eq!(obj.get("receipt").unwrap(), "Oz-Ware Purchase Invoice"); [INFO] [stderr] ... | [INFO] [stderr] 116 | | ); [INFO] [stderr] 117 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 53 [INFO] [stderr] --> tests/lib.rs:277:1 [INFO] [stderr] | [INFO] [stderr] 277 | / fn includes() { [INFO] [stderr] 278 | | let obj = Obj::from_file("tests/test_files/includes.over").unwrap(); [INFO] [stderr] 279 | | [INFO] [stderr] 280 | | let s = "Multi-line string\nwhich should be included verbatim\n\ [INFO] [stderr] ... | [INFO] [stderr] 303 | | assert!(o.ptr_eq(&obj.get_obj("include_obj2").unwrap())); [INFO] [stderr] 304 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 107 [INFO] [stderr] --> tests/lib.rs:339:1 [INFO] [stderr] | [INFO] [stderr] 339 | / fn errors() { [INFO] [stderr] 340 | | macro_rules! error_helper { [INFO] [stderr] 341 | | ( $filename:expr, $error:expr ) => { [INFO] [stderr] 342 | | { [INFO] [stderr] ... | [INFO] [stderr] 548 | | error_helper!("value_amp.over", "Invalid value \"@\" at line 1, column 8"); [INFO] [stderr] 549 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 8.02s [INFO] running `"docker" "inspect" "71bf2b4568785c616e0a4f1a5832bab0c63db8918cc9e8564a23736edc15f0cb"` [INFO] running `"docker" "rm" "-f" "71bf2b4568785c616e0a4f1a5832bab0c63db8918cc9e8564a23736edc15f0cb"` [INFO] [stdout] 71bf2b4568785c616e0a4f1a5832bab0c63db8918cc9e8564a23736edc15f0cb