[INFO] crate qapi-codegen 0.2.1 is already in cache [INFO] extracting crate qapi-codegen 0.2.1 into work/ex/clippy-test-run/sources/stable/reg/qapi-codegen/0.2.1 [INFO] extracting crate qapi-codegen 0.2.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/qapi-codegen/0.2.1 [INFO] validating manifest of qapi-codegen-0.2.1 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 qapi-codegen-0.2.1 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 qapi-codegen-0.2.1 [INFO] finished frobbing qapi-codegen-0.2.1 [INFO] frobbed toml for qapi-codegen-0.2.1 written to work/ex/clippy-test-run/sources/stable/reg/qapi-codegen/0.2.1/Cargo.toml [INFO] started frobbing qapi-codegen-0.2.1 [INFO] finished frobbing qapi-codegen-0.2.1 [INFO] frobbed toml for qapi-codegen-0.2.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/qapi-codegen/0.2.1/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 qapi-codegen-0.2.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/qapi-codegen/0.2.1:/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] f99dbed31accd0b7d65c80d327f1784ad6f425f7faf3cd067f08882223fa5894 [INFO] running `"docker" "start" "-a" "f99dbed31accd0b7d65c80d327f1784ad6f425f7faf3cd067f08882223fa5894"` [INFO] [stderr] Checking qapi-parser v0.2.1 [INFO] [stderr] Checking qapi-codegen v0.2.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | out: out, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `out` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | out: out, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `out` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/lib.rs:81:16 [INFO] [stderr] | [INFO] [stderr] 81 | let dict = value.ty.name == "any" && ( [INFO] [stderr] | ________________^ [INFO] [stderr] 82 | | (super_name == "object-add" && value.name == "props") || [INFO] [stderr] 83 | | (super_name == "CpuModelInfo" && value.name == "props") [INFO] [stderr] 84 | | ); [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 81 | let dict = !(super_name != "object-add" && super_name != "CpuModelInfo" || value.name != "props" || value.ty.name != "any"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 81 | let dict = (super_name == "object-add" || super_name == "CpuModelInfo") && value.name == "props" && value.ty.name == "any"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/lib.rs:64:72 [INFO] [stderr] | [INFO] [stderr] 64 | } else if value.name == "backing" && value.ty.name == "BlockStats" { [INFO] [stderr] | ________________________________________________________________________^ [INFO] [stderr] 65 | | true [INFO] [stderr] 66 | | } else if value.name == "parent" && value.ty.name == "BlockStats" { [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/lib.rs:62:82 [INFO] [stderr] | [INFO] [stderr] 62 | let boxed = if value.name == "backing-image" && value.ty.name == "ImageInfo" { [INFO] [stderr] | __________________________________________________________________________________^ [INFO] [stderr] 63 | | true [INFO] [stderr] 64 | | } else if value.name == "backing" && value.ty.name == "BlockStats" { [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/lib.rs:66:12 [INFO] [stderr] | [INFO] [stderr] 66 | } else if value.name == "parent" && value.ty.name == "BlockStats" { [INFO] [stderr] | ____________^ [INFO] [stderr] 67 | | true [INFO] [stderr] 68 | | } else { [INFO] [stderr] 69 | | false [INFO] [stderr] 70 | | }; [INFO] [stderr] | |_____^ help: you can reduce it to: `value.name == "parent" && value.ty.name == "BlockStats"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/lib.rs:81:16 [INFO] [stderr] | [INFO] [stderr] 81 | let dict = value.ty.name == "any" && ( [INFO] [stderr] | ________________^ [INFO] [stderr] 82 | | (super_name == "object-add" && value.name == "props") || [INFO] [stderr] 83 | | (super_name == "CpuModelInfo" && value.name == "props") [INFO] [stderr] 84 | | ); [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 81 | let dict = !(super_name != "object-add" && super_name != "CpuModelInfo" || value.name != "props" || value.ty.name != "any"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 81 | let dict = (super_name == "object-add" || super_name == "CpuModelInfo") && value.name == "props" && value.ty.name == "any"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/lib.rs:64:72 [INFO] [stderr] | [INFO] [stderr] 64 | } else if value.name == "backing" && value.ty.name == "BlockStats" { [INFO] [stderr] | ________________________________________________________________________^ [INFO] [stderr] 65 | | true [INFO] [stderr] 66 | | } else if value.name == "parent" && value.ty.name == "BlockStats" { [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/lib.rs:62:82 [INFO] [stderr] | [INFO] [stderr] 62 | let boxed = if value.name == "backing-image" && value.ty.name == "ImageInfo" { [INFO] [stderr] | __________________________________________________________________________________^ [INFO] [stderr] 63 | | true [INFO] [stderr] 64 | | } else if value.name == "backing" && value.ty.name == "BlockStats" { [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/lib.rs:66:12 [INFO] [stderr] | [INFO] [stderr] 66 | } else if value.name == "parent" && value.ty.name == "BlockStats" { [INFO] [stderr] | ____________^ [INFO] [stderr] 67 | | true [INFO] [stderr] 68 | | } else { [INFO] [stderr] 69 | | false [INFO] [stderr] 70 | | }; [INFO] [stderr] | |_____^ help: you can reduce it to: `value.name == "parent" && value.ty.name == "BlockStats"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/lib.rs:198:33 [INFO] [stderr] | [INFO] [stderr] 198 | let boxed = if data.name == "definition" && data.ty.name == "BlockdevOptions" { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 199 | | true [INFO] [stderr] 200 | | } else { [INFO] [stderr] 201 | | false [INFO] [stderr] 202 | | }; [INFO] [stderr] | |_____________________^ help: you can reduce it to: `data.name == "definition" && data.ty.name == "BlockdevOptions"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/lib.rs:198:33 [INFO] [stderr] | [INFO] [stderr] 198 | let boxed = if data.name == "definition" && data.ty.name == "BlockdevOptions" { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 199 | | true [INFO] [stderr] 200 | | } else { [INFO] [stderr] 201 | | false [INFO] [stderr] 202 | | }; [INFO] [stderr] | |_____________________^ help: you can reduce it to: `data.name == "definition" && data.ty.name == "BlockdevOptions"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `qapi-codegen`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `qapi-codegen`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "f99dbed31accd0b7d65c80d327f1784ad6f425f7faf3cd067f08882223fa5894"` [INFO] running `"docker" "rm" "-f" "f99dbed31accd0b7d65c80d327f1784ad6f425f7faf3cd067f08882223fa5894"` [INFO] [stdout] f99dbed31accd0b7d65c80d327f1784ad6f425f7faf3cd067f08882223fa5894