[INFO] crate mavlink 0.4.2 is already in cache [INFO] extracting crate mavlink 0.4.2 into work/ex/clippy-test-run/sources/stable/reg/mavlink/0.4.2 [INFO] extracting crate mavlink 0.4.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mavlink/0.4.2 [INFO] validating manifest of mavlink-0.4.2 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 mavlink-0.4.2 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 mavlink-0.4.2 [INFO] finished frobbing mavlink-0.4.2 [INFO] frobbed toml for mavlink-0.4.2 written to work/ex/clippy-test-run/sources/stable/reg/mavlink/0.4.2/Cargo.toml [INFO] started frobbing mavlink-0.4.2 [INFO] finished frobbing mavlink-0.4.2 [INFO] frobbed toml for mavlink-0.4.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mavlink/0.4.2/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 mavlink-0.4.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/mavlink/0.4.2:/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] e8a71744914dc0f66b6844a00f99a6b1507a19b6a1bc58b8659dac2e414549d1 [INFO] running `"docker" "start" "-a" "e8a71744914dc0f66b6844a00f99a6b1507a19b6a1bc58b8659dac2e414549d1"` [INFO] [stderr] Compiling crc16 v0.3.4 [INFO] [stderr] Compiling bitflags v0.3.3 [INFO] [stderr] Compiling xml-rs v0.2.2 [INFO] [stderr] Compiling mavlink v0.4.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/connection.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | server: server, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `server` [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/connection.rs:111:17 [INFO] [stderr] | [INFO] [stderr] 111 | socket: socket, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `socket` [INFO] [stderr] | [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/connection.rs:112:17 [INFO] [stderr] | [INFO] [stderr] 112 | dest: dest, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dest` [INFO] [stderr] | [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/connection.rs:190:42 [INFO] [stderr] | [INFO] [stderr] 190 | write: Mutex::new(TcpWrite { socket: socket, sequence: 0 }), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `socket` [INFO] [stderr] | [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/connection.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | server: server, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `server` [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/connection.rs:111:17 [INFO] [stderr] | [INFO] [stderr] 111 | socket: socket, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `socket` [INFO] [stderr] | [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/connection.rs:112:17 [INFO] [stderr] | [INFO] [stderr] 112 | dest: dest, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dest` [INFO] [stderr] | [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/connection.rs:190:42 [INFO] [stderr] | [INFO] [stderr] 190 | write: Mutex::new(TcpWrite { socket: socket, sequence: 0 }), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `socket` [INFO] [stderr] | [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:126:27 [INFO] [stderr] | [INFO] [stderr] 126 | pub const HEARTBEAT: &'static[u8] = &[0xfe, 0x09, 0xef, 0x01, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x03, 0x59, 0x03, 0x03, 0xf1, 0xd7]; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&[u8]` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> /opt/crater/target/debug/build/mavlink-b5dccbdc6b7e6e58/out/common.rs:6866:9 [INFO] [stderr] | [INFO] [stderr] 6866 | / match self { [INFO] [stderr] 6867 | | &MavMessage::HEARTBEAT(..) => 0, [INFO] [stderr] 6868 | | &MavMessage::SYS_STATUS(..) => 1, [INFO] [stderr] 6869 | | &MavMessage::SYSTEM_TIME(..) => 2, [INFO] [stderr] ... | [INFO] [stderr] 6993 | | &MavMessage::DEBUG(..) => 254, [INFO] [stderr] 6994 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 6866 | match *self { [INFO] [stderr] 6867 | MavMessage::HEARTBEAT(..) => 0, [INFO] [stderr] 6868 | MavMessage::SYS_STATUS(..) => 1, [INFO] [stderr] 6869 | MavMessage::SYSTEM_TIME(..) => 2, [INFO] [stderr] 6870 | MavMessage::PING(..) => 4, [INFO] [stderr] 6871 | MavMessage::CHANGE_OPERATOR_CONTROL(..) => 5, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> /opt/crater/target/debug/build/mavlink-b5dccbdc6b7e6e58/out/common.rs:7131:9 [INFO] [stderr] | [INFO] [stderr] 7131 | / match self { [INFO] [stderr] 7132 | | &MavMessage::HEARTBEAT(ref body) => body.serialize(), [INFO] [stderr] 7133 | | &MavMessage::SYS_STATUS(ref body) => body.serialize(), [INFO] [stderr] 7134 | | &MavMessage::SYSTEM_TIME(ref body) => body.serialize(), [INFO] [stderr] ... | [INFO] [stderr] 7258 | | &MavMessage::DEBUG(ref body) => body.serialize(), [INFO] [stderr] 7259 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 7131 | match *self { [INFO] [stderr] 7132 | MavMessage::HEARTBEAT(ref body) => body.serialize(), [INFO] [stderr] 7133 | MavMessage::SYS_STATUS(ref body) => body.serialize(), [INFO] [stderr] 7134 | MavMessage::SYSTEM_TIME(ref body) => body.serialize(), [INFO] [stderr] 7135 | MavMessage::PING(ref body) => body.serialize(), [INFO] [stderr] 7136 | MavMessage::CHANGE_OPERATOR_CONTROL(ref body) => body.serialize(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> /opt/crater/target/debug/build/mavlink-b5dccbdc6b7e6e58/out/common.rs:6866:9 [INFO] [stderr] | [INFO] [stderr] 6866 | / match self { [INFO] [stderr] 6867 | | &MavMessage::HEARTBEAT(..) => 0, [INFO] [stderr] 6868 | | &MavMessage::SYS_STATUS(..) => 1, [INFO] [stderr] 6869 | | &MavMessage::SYSTEM_TIME(..) => 2, [INFO] [stderr] ... | [INFO] [stderr] 6993 | | &MavMessage::DEBUG(..) => 254, [INFO] [stderr] 6994 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 6866 | match *self { [INFO] [stderr] 6867 | MavMessage::HEARTBEAT(..) => 0, [INFO] [stderr] 6868 | MavMessage::SYS_STATUS(..) => 1, [INFO] [stderr] 6869 | MavMessage::SYSTEM_TIME(..) => 2, [INFO] [stderr] 6870 | MavMessage::PING(..) => 4, [INFO] [stderr] 6871 | MavMessage::CHANGE_OPERATOR_CONTROL(..) => 5, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> /opt/crater/target/debug/build/mavlink-b5dccbdc6b7e6e58/out/common.rs:7131:9 [INFO] [stderr] | [INFO] [stderr] 7131 | / match self { [INFO] [stderr] 7132 | | &MavMessage::HEARTBEAT(ref body) => body.serialize(), [INFO] [stderr] 7133 | | &MavMessage::SYS_STATUS(ref body) => body.serialize(), [INFO] [stderr] 7134 | | &MavMessage::SYSTEM_TIME(ref body) => body.serialize(), [INFO] [stderr] ... | [INFO] [stderr] 7258 | | &MavMessage::DEBUG(ref body) => body.serialize(), [INFO] [stderr] 7259 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 7131 | match *self { [INFO] [stderr] 7132 | MavMessage::HEARTBEAT(ref body) => body.serialize(), [INFO] [stderr] 7133 | MavMessage::SYS_STATUS(ref body) => body.serialize(), [INFO] [stderr] 7134 | MavMessage::SYSTEM_TIME(ref body) => body.serialize(), [INFO] [stderr] 7135 | MavMessage::PING(ref body) => body.serialize(), [INFO] [stderr] 7136 | MavMessage::CHANGE_OPERATOR_CONTROL(ref body) => body.serialize(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/bin/mavlink-dump.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | / loop { [INFO] [stderr] 31 | | if let Ok(msg) = vehicle.recv() { [INFO] [stderr] 32 | | println!("{:?}", msg); [INFO] [stderr] 33 | | } else { [INFO] [stderr] 34 | | break; [INFO] [stderr] 35 | | } [INFO] [stderr] 36 | | } [INFO] [stderr] | |_____^ help: try: `while let Ok(msg) = vehicle.recv() { .. }` [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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/bin/mavlink-dump.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | / loop { [INFO] [stderr] 31 | | if let Ok(msg) = vehicle.recv() { [INFO] [stderr] 32 | | println!("{:?}", msg); [INFO] [stderr] 33 | | } else { [INFO] [stderr] 34 | | break; [INFO] [stderr] 35 | | } [INFO] [stderr] 36 | | } [INFO] [stderr] | |_____^ help: try: `while let Ok(msg) = vehicle.recv() { .. }` [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] Finished dev [unoptimized + debuginfo] target(s) in 9.08s [INFO] running `"docker" "inspect" "e8a71744914dc0f66b6844a00f99a6b1507a19b6a1bc58b8659dac2e414549d1"` [INFO] running `"docker" "rm" "-f" "e8a71744914dc0f66b6844a00f99a6b1507a19b6a1bc58b8659dac2e414549d1"` [INFO] [stdout] e8a71744914dc0f66b6844a00f99a6b1507a19b6a1bc58b8659dac2e414549d1