[INFO] updating cached repository mredlek/rs-opentherm [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/mredlek/rs-opentherm [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/mredlek/rs-opentherm" "work/ex/clippy-test-run/sources/stable/gh/mredlek/rs-opentherm"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/mredlek/rs-opentherm'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/mredlek/rs-opentherm" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mredlek/rs-opentherm"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mredlek/rs-opentherm'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 2937fada9960a3f8a2fe8fe8c5871ab1c94083ea [INFO] sha for GitHub repo mredlek/rs-opentherm: 2937fada9960a3f8a2fe8fe8c5871ab1c94083ea [INFO] validating manifest of mredlek/rs-opentherm 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 mredlek/rs-opentherm 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 mredlek/rs-opentherm [INFO] finished frobbing mredlek/rs-opentherm [INFO] frobbed toml for mredlek/rs-opentherm written to work/ex/clippy-test-run/sources/stable/gh/mredlek/rs-opentherm/Cargo.toml [INFO] started frobbing mredlek/rs-opentherm [INFO] finished frobbing mredlek/rs-opentherm [INFO] frobbed toml for mredlek/rs-opentherm written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mredlek/rs-opentherm/Cargo.toml [INFO] crate mredlek/rs-opentherm has a lockfile. skipping [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 mredlek/rs-opentherm 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/gh/mredlek/rs-opentherm:/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] bb08240f32780ead288c7e32b2a33eea0c15ef6c4c4b3df9232f4e1213514d74 [INFO] running `"docker" "start" "-a" "bb08240f32780ead288c7e32b2a33eea0c15ef6c4c4b3df9232f4e1213514d74"` [INFO] [stderr] Checking opentherm v0.0.2 (/opt/crater/workdir) [INFO] [stderr] warning: lint `unused_doc_comment` has been renamed to `unused_doc_comments` [INFO] [stderr] --> src/error.rs:1:10 [INFO] [stderr] | [INFO] [stderr] 1 | #![allow(unused_doc_comment)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use the new name: `unused_doc_comments` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: lint `unused_doc_comment` has been renamed to `unused_doc_comments` [INFO] [stderr] --> src/error.rs:1:10 [INFO] [stderr] | [INFO] [stderr] 1 | #![allow(unused_doc_comment)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use the new name: `unused_doc_comments` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:61:29 [INFO] [stderr] | [INFO] [stderr] 61 | if msg[0] & 0x70 == 0b00110000 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0011_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | 0b00000000 => MsgType::ReadData, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | 0b00010000 => MsgType::WriteData, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | 0b00100000 => MsgType::InvalidData, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | 0b01000000 => MsgType::ReadAck, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | 0b01010000 => MsgType::WriteAck, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0101_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | 0b01100000 => MsgType::DataInvalid, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | 0b01110000 => MsgType::UnknownDataId, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0111_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:61:29 [INFO] [stderr] | [INFO] [stderr] 61 | if msg[0] & 0x70 == 0b00110000 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0011_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | 0b00000000 => MsgType::ReadData, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | 0b00010000 => MsgType::WriteData, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | 0b00100000 => MsgType::InvalidData, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | 0b01000000 => MsgType::ReadAck, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | 0b01010000 => MsgType::WriteAck, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0101_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | 0b01100000 => MsgType::DataInvalid, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/message.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | 0b01110000 => MsgType::UnknownDataId, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0111_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/application/complextype.rs:56:17 [INFO] [stderr] | [INFO] [stderr] 56 | / match self { [INFO] [stderr] 57 | | $( &ComplexType::$id(_) => $mat ),* [INFO] [stderr] 58 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] ... [INFO] [stderr] 86 | / complextype!( [INFO] [stderr] 87 | | 0 => Status(dataid0), [INFO] [stderr] 88 | | 1 => TempSet(dataid1), [INFO] [stderr] 89 | | 2 => MasterConfig(dataid2), [INFO] [stderr] ... | [INFO] [stderr] 140 | | 127 => SlaveVersion(dataid127) [INFO] [stderr] 141 | | ); [INFO] [stderr] | |__- in this macro invocation [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] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/application/complextype.rs:77:17 [INFO] [stderr] | [INFO] [stderr] 77 | / match self [INFO] [stderr] 78 | | { [INFO] [stderr] 79 | | $( &ComplexType::$id(data) => SimpleTypeEnum::from(super::$token::DATAID_DEFINITION.complex_to_simple(data)).as_data_value() ),* [INFO] [stderr] 80 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] ... [INFO] [stderr] 86 | / complextype!( [INFO] [stderr] 87 | | 0 => Status(dataid0), [INFO] [stderr] 88 | | 1 => TempSet(dataid1), [INFO] [stderr] 89 | | 2 => MasterConfig(dataid2), [INFO] [stderr] ... | [INFO] [stderr] 140 | | 127 => SlaveVersion(dataid127) [INFO] [stderr] 141 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/application/complextype.rs:154:57 [INFO] [stderr] | [INFO] [stderr] 154 | ComplexType::new_from_data(dataid.as_data_id(), datavalue.as_data_value().into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `datavalue.as_data_value()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/application/dataid0.rs:100:33 [INFO] [stderr] | [INFO] [stderr] 100 | MasterStatusSerde::from(self.clone()).serialize(serializer) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/application/dataid0.rs:159:32 [INFO] [stderr] | [INFO] [stderr] 159 | SlaveStatusSerde::from(self.clone()).serialize(serializer) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/application/dataid3.rs:82:39 [INFO] [stderr] | [INFO] [stderr] 82 | SlaveConfigurationSerde::from(self.clone()).serialize(serializer) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/application/complextype.rs:56:17 [INFO] [stderr] | [INFO] [stderr] 56 | / match self { [INFO] [stderr] 57 | | $( &ComplexType::$id(_) => $mat ),* [INFO] [stderr] 58 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] ... [INFO] [stderr] 86 | / complextype!( [INFO] [stderr] 87 | | 0 => Status(dataid0), [INFO] [stderr] 88 | | 1 => TempSet(dataid1), [INFO] [stderr] 89 | | 2 => MasterConfig(dataid2), [INFO] [stderr] ... | [INFO] [stderr] 140 | | 127 => SlaveVersion(dataid127) [INFO] [stderr] 141 | | ); [INFO] [stderr] | |__- in this macro invocation [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] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/application/complextype.rs:77:17 [INFO] [stderr] | [INFO] [stderr] 77 | / match self [INFO] [stderr] 78 | | { [INFO] [stderr] 79 | | $( &ComplexType::$id(data) => SimpleTypeEnum::from(super::$token::DATAID_DEFINITION.complex_to_simple(data)).as_data_value() ),* [INFO] [stderr] 80 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] ... [INFO] [stderr] 86 | / complextype!( [INFO] [stderr] 87 | | 0 => Status(dataid0), [INFO] [stderr] 88 | | 1 => TempSet(dataid1), [INFO] [stderr] 89 | | 2 => MasterConfig(dataid2), [INFO] [stderr] ... | [INFO] [stderr] 140 | | 127 => SlaveVersion(dataid127) [INFO] [stderr] 141 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/application/complextype.rs:154:57 [INFO] [stderr] | [INFO] [stderr] 154 | ComplexType::new_from_data(dataid.as_data_id(), datavalue.as_data_value().into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `datavalue.as_data_value()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/application/dataid5.rs:82:50 [INFO] [stderr] | [INFO] [stderr] 82 | ApplicationSpecificFaultFlagsSerde::from(self.clone()).serialize(serializer) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/application/dataid6.rs:62:36 [INFO] [stderr] | [INFO] [stderr] 62 | RemoteParameterSerde::from(self.clone()).serialize(serializer) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/application/dataid0.rs:100:33 [INFO] [stderr] | [INFO] [stderr] 100 | MasterStatusSerde::from(self.clone()).serialize(serializer) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/application/dataid0.rs:159:32 [INFO] [stderr] | [INFO] [stderr] 159 | SlaveStatusSerde::from(self.clone()).serialize(serializer) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/application/dataid20.rs:49:24 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn day_of_week(&self) -> Option [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/application/dataid20.rs:55:18 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn hours(&self) -> u8 [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/application/dataid20.rs:61:20 [INFO] [stderr] | [INFO] [stderr] 61 | pub fn minutes(&self) -> u8 [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/application/dataid3.rs:82:39 [INFO] [stderr] | [INFO] [stderr] 82 | SlaveConfigurationSerde::from(self.clone()).serialize(serializer) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/application/dataid5.rs:82:50 [INFO] [stderr] | [INFO] [stderr] 82 | ApplicationSpecificFaultFlagsSerde::from(self.clone()).serialize(serializer) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/application/dataid6.rs:62:36 [INFO] [stderr] | [INFO] [stderr] 62 | RemoteParameterSerde::from(self.clone()).serialize(serializer) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/application/dataid100.rs:62:35 [INFO] [stderr] | [INFO] [stderr] 62 | RemoteOverrideSerde::from(self.clone()).serialize(serializer) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/application/dataid20.rs:49:24 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn day_of_week(&self) -> Option [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/application/dataid20.rs:55:18 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn hours(&self) -> u8 [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/application/dataid20.rs:61:20 [INFO] [stderr] | [INFO] [stderr] 61 | pub fn minutes(&self) -> u8 [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/application/simpletype.rs:179:9 [INFO] [stderr] | [INFO] [stderr] 179 | / match self { [INFO] [stderr] 180 | | &SimpleTypeEnum::U8u8(first, second) => (first, second).to_data(), [INFO] [stderr] 181 | | &SimpleTypeEnum::U8s8(first, second) => (first, second).to_data(), [INFO] [stderr] 182 | | &SimpleTypeEnum::U8flags8(first, second) => (first, second).to_data(), [INFO] [stderr] ... | [INFO] [stderr] 194 | | &SimpleTypeEnum::F88(first) => SimpleType::to_data(first), [INFO] [stderr] 195 | | } [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] 179 | match *self { [INFO] [stderr] 180 | SimpleTypeEnum::U8u8(first, second) => (first, second).to_data(), [INFO] [stderr] 181 | SimpleTypeEnum::U8s8(first, second) => (first, second).to_data(), [INFO] [stderr] 182 | SimpleTypeEnum::U8flags8(first, second) => (first, second).to_data(), [INFO] [stderr] 183 | SimpleTypeEnum::S8u8(first, second) => (first, second).to_data(), [INFO] [stderr] 184 | SimpleTypeEnum::S8s8(first, second) => (first, second).to_data(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/application/simpletype.rs:270:10 [INFO] [stderr] | [INFO] [stderr] 270 | ((input[0] as u16) << 8) | input[1] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(input[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/application/simpletype.rs:270:36 [INFO] [stderr] | [INFO] [stderr] 270 | ((input[0] as u16) << 8) | input[1] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(input[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/application/simpletype.rs:292:9 [INFO] [stderr] | [INFO] [stderr] 292 | (i16::from_data(input) as f32) / 256f32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(i16::from_data(input))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/application/mod.rs:388:24 [INFO] [stderr] | [INFO] [stderr] 388 | pub fn simple_data<'dv>(&self, data_value: [u8; 2]) -> SimpleType [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/application/mod.rs:393:25 [INFO] [stderr] | [INFO] [stderr] 393 | pub fn complex_data<'dv>(&self, data_value: [u8; 2]) -> ComplexType [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | / match self { [INFO] [stderr] 45 | | &Conversation::Read(ref data) => data.as_data_id(), [INFO] [stderr] 46 | | &Conversation::Write(ref data) => data.as_data_id() [INFO] [stderr] 47 | | } [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] 44 | match *self { [INFO] [stderr] 45 | Conversation::Read(ref data) => data.as_data_id(), [INFO] [stderr] 46 | Conversation::Write(ref data) => data.as_data_id() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:56:28 [INFO] [stderr] | [INFO] [stderr] 56 | let nullabledata = match self { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 57 | | &Conversation::Read(ref data) => data, [INFO] [stderr] 58 | | &Conversation::Write(ref data) => data, [INFO] [stderr] 59 | | }; [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] 56 | let nullabledata = match *self { [INFO] [stderr] 57 | Conversation::Read(ref data) => data, [INFO] [stderr] 58 | Conversation::Write(ref data) => data, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | / match nullabledata { [INFO] [stderr] 61 | | &NullableComplexType::Null { .. } => None, [INFO] [stderr] 62 | | &NullableComplexType::Data(complex) => Some(complex.as_data_value()), [INFO] [stderr] 63 | | } [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] 60 | match *nullabledata { [INFO] [stderr] 61 | NullableComplexType::Null { .. } => None, [INFO] [stderr] 62 | NullableComplexType::Data(complex) => Some(complex.as_data_value()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match self { [INFO] [stderr] 133 | | &Conversation::Read(_) => Method::Read, [INFO] [stderr] 134 | | &Conversation::Write(_) => Method::Write, [INFO] [stderr] 135 | | } [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] 132 | match *self { [INFO] [stderr] 133 | Conversation::Read(_) => Method::Read, [INFO] [stderr] 134 | Conversation::Write(_) => Method::Write, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:141:9 [INFO] [stderr] | [INFO] [stderr] 141 | / match self { [INFO] [stderr] 142 | | &Conversation::Read(NullableComplexType::Data(ref complex)) | [INFO] [stderr] 143 | | &Conversation::Write(NullableComplexType::Data(ref complex)) => Some(complex), [INFO] [stderr] 144 | | _ => None [INFO] [stderr] 145 | | } [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] 141 | match *self { [INFO] [stderr] 142 | Conversation::Read(NullableComplexType::Data(ref complex)) | [INFO] [stderr] 143 | Conversation::Write(NullableComplexType::Data(ref complex)) => Some(complex), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 151 | / match self { [INFO] [stderr] 152 | | &Conversation::Read(NullableComplexType::Data(ref complex)) | [INFO] [stderr] 153 | | &Conversation::Write(NullableComplexType::Data(ref complex)) => { [INFO] [stderr] 154 | | Some(complex.clone().into()) [INFO] [stderr] 155 | | }, [INFO] [stderr] 156 | | _ => None [INFO] [stderr] 157 | | } [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] 151 | match *self { [INFO] [stderr] 152 | Conversation::Read(NullableComplexType::Data(ref complex)) | [INFO] [stderr] 153 | Conversation::Write(NullableComplexType::Data(ref complex)) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | / match self { [INFO] [stderr] 166 | | &NullableComplexType::Null{ dataid } => dataid, [INFO] [stderr] 167 | | &NullableComplexType::Data(ref complextype) => complextype.as_data_id() [INFO] [stderr] 168 | | } [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] 165 | match *self { [INFO] [stderr] 166 | NullableComplexType::Null{ dataid } => dataid, [INFO] [stderr] 167 | NullableComplexType::Data(ref complextype) => complextype.as_data_id() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | / match self { [INFO] [stderr] 126 | | &MsgType::ReadData => { try!(f.write_str("Read data")); }, [INFO] [stderr] 127 | | &MsgType::WriteData => { try!(f.write_str("Write data")); }, [INFO] [stderr] 128 | | &MsgType::InvalidData => { try!(f.write_str("Invalid data")); }, [INFO] [stderr] ... | [INFO] [stderr] 132 | | &MsgType::UnknownDataId => { try!(f.write_str("Unknown data id")); }, [INFO] [stderr] 133 | | } [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] 125 | match *self { [INFO] [stderr] 126 | MsgType::ReadData => { try!(f.write_str("Read data")); }, [INFO] [stderr] 127 | MsgType::WriteData => { try!(f.write_str("Write data")); }, [INFO] [stderr] 128 | MsgType::InvalidData => { try!(f.write_str("Invalid data")); }, [INFO] [stderr] 129 | MsgType::ReadAck => { try!(f.write_str("Read ack")); }, [INFO] [stderr] 130 | MsgType::WriteAck => { try!(f.write_str("Write ack")); }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message.rs:141:9 [INFO] [stderr] | [INFO] [stderr] 141 | / match self { [INFO] [stderr] 142 | | &MsgType::ReadData => { try!(f.write_str("000")); }, [INFO] [stderr] 143 | | &MsgType::WriteData => { try!(f.write_str("001")); }, [INFO] [stderr] 144 | | &MsgType::InvalidData => { try!(f.write_str("010")); }, [INFO] [stderr] ... | [INFO] [stderr] 148 | | &MsgType::UnknownDataId => { try!(f.write_str("111")); }, [INFO] [stderr] 149 | | } [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] 141 | match *self { [INFO] [stderr] 142 | MsgType::ReadData => { try!(f.write_str("000")); }, [INFO] [stderr] 143 | MsgType::WriteData => { try!(f.write_str("001")); }, [INFO] [stderr] 144 | MsgType::InvalidData => { try!(f.write_str("010")); }, [INFO] [stderr] 145 | MsgType::ReadAck => { try!(f.write_str("100")); }, [INFO] [stderr] 146 | MsgType::WriteAck => { try!(f.write_str("101")); }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/application/dataid100.rs:62:35 [INFO] [stderr] | [INFO] [stderr] 62 | RemoteOverrideSerde::from(self.clone()).serialize(serializer) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/application/simpletype.rs:179:9 [INFO] [stderr] | [INFO] [stderr] 179 | / match self { [INFO] [stderr] 180 | | &SimpleTypeEnum::U8u8(first, second) => (first, second).to_data(), [INFO] [stderr] 181 | | &SimpleTypeEnum::U8s8(first, second) => (first, second).to_data(), [INFO] [stderr] 182 | | &SimpleTypeEnum::U8flags8(first, second) => (first, second).to_data(), [INFO] [stderr] ... | [INFO] [stderr] 194 | | &SimpleTypeEnum::F88(first) => SimpleType::to_data(first), [INFO] [stderr] 195 | | } [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] 179 | match *self { [INFO] [stderr] 180 | SimpleTypeEnum::U8u8(first, second) => (first, second).to_data(), [INFO] [stderr] 181 | SimpleTypeEnum::U8s8(first, second) => (first, second).to_data(), [INFO] [stderr] 182 | SimpleTypeEnum::U8flags8(first, second) => (first, second).to_data(), [INFO] [stderr] 183 | SimpleTypeEnum::S8u8(first, second) => (first, second).to_data(), [INFO] [stderr] 184 | SimpleTypeEnum::S8s8(first, second) => (first, second).to_data(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/application/simpletype.rs:270:10 [INFO] [stderr] | [INFO] [stderr] 270 | ((input[0] as u16) << 8) | input[1] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(input[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/application/simpletype.rs:270:36 [INFO] [stderr] | [INFO] [stderr] 270 | ((input[0] as u16) << 8) | input[1] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(input[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/application/simpletype.rs:292:9 [INFO] [stderr] | [INFO] [stderr] 292 | (i16::from_data(input) as f32) / 256f32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(i16::from_data(input))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/application/mod.rs:388:24 [INFO] [stderr] | [INFO] [stderr] 388 | pub fn simple_data<'dv>(&self, data_value: [u8; 2]) -> SimpleType [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/application/mod.rs:393:25 [INFO] [stderr] | [INFO] [stderr] 393 | pub fn complex_data<'dv>(&self, data_value: [u8; 2]) -> ComplexType [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | / match self { [INFO] [stderr] 45 | | &Conversation::Read(ref data) => data.as_data_id(), [INFO] [stderr] 46 | | &Conversation::Write(ref data) => data.as_data_id() [INFO] [stderr] 47 | | } [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] 44 | match *self { [INFO] [stderr] 45 | Conversation::Read(ref data) => data.as_data_id(), [INFO] [stderr] 46 | Conversation::Write(ref data) => data.as_data_id() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:56:28 [INFO] [stderr] | [INFO] [stderr] 56 | let nullabledata = match self { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 57 | | &Conversation::Read(ref data) => data, [INFO] [stderr] 58 | | &Conversation::Write(ref data) => data, [INFO] [stderr] 59 | | }; [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] 56 | let nullabledata = match *self { [INFO] [stderr] 57 | Conversation::Read(ref data) => data, [INFO] [stderr] 58 | Conversation::Write(ref data) => data, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | / match nullabledata { [INFO] [stderr] 61 | | &NullableComplexType::Null { .. } => None, [INFO] [stderr] 62 | | &NullableComplexType::Data(complex) => Some(complex.as_data_value()), [INFO] [stderr] 63 | | } [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] 60 | match *nullabledata { [INFO] [stderr] 61 | NullableComplexType::Null { .. } => None, [INFO] [stderr] 62 | NullableComplexType::Data(complex) => Some(complex.as_data_value()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match self { [INFO] [stderr] 133 | | &Conversation::Read(_) => Method::Read, [INFO] [stderr] 134 | | &Conversation::Write(_) => Method::Write, [INFO] [stderr] 135 | | } [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] 132 | match *self { [INFO] [stderr] 133 | Conversation::Read(_) => Method::Read, [INFO] [stderr] 134 | Conversation::Write(_) => Method::Write, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:141:9 [INFO] [stderr] | [INFO] [stderr] 141 | / match self { [INFO] [stderr] 142 | | &Conversation::Read(NullableComplexType::Data(ref complex)) | [INFO] [stderr] 143 | | &Conversation::Write(NullableComplexType::Data(ref complex)) => Some(complex), [INFO] [stderr] 144 | | _ => None [INFO] [stderr] 145 | | } [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] 141 | match *self { [INFO] [stderr] 142 | Conversation::Read(NullableComplexType::Data(ref complex)) | [INFO] [stderr] 143 | Conversation::Write(NullableComplexType::Data(ref complex)) => Some(complex), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 151 | / match self { [INFO] [stderr] 152 | | &Conversation::Read(NullableComplexType::Data(ref complex)) | [INFO] [stderr] 153 | | &Conversation::Write(NullableComplexType::Data(ref complex)) => { [INFO] [stderr] 154 | | Some(complex.clone().into()) [INFO] [stderr] 155 | | }, [INFO] [stderr] 156 | | _ => None [INFO] [stderr] 157 | | } [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] 151 | match *self { [INFO] [stderr] 152 | Conversation::Read(NullableComplexType::Data(ref complex)) | [INFO] [stderr] 153 | Conversation::Write(NullableComplexType::Data(ref complex)) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/conversation.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | / match self { [INFO] [stderr] 166 | | &NullableComplexType::Null{ dataid } => dataid, [INFO] [stderr] 167 | | &NullableComplexType::Data(ref complextype) => complextype.as_data_id() [INFO] [stderr] 168 | | } [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] 165 | match *self { [INFO] [stderr] 166 | NullableComplexType::Null{ dataid } => dataid, [INFO] [stderr] 167 | NullableComplexType::Data(ref complextype) => complextype.as_data_id() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | / match self { [INFO] [stderr] 126 | | &MsgType::ReadData => { try!(f.write_str("Read data")); }, [INFO] [stderr] 127 | | &MsgType::WriteData => { try!(f.write_str("Write data")); }, [INFO] [stderr] 128 | | &MsgType::InvalidData => { try!(f.write_str("Invalid data")); }, [INFO] [stderr] ... | [INFO] [stderr] 132 | | &MsgType::UnknownDataId => { try!(f.write_str("Unknown data id")); }, [INFO] [stderr] 133 | | } [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] 125 | match *self { [INFO] [stderr] 126 | MsgType::ReadData => { try!(f.write_str("Read data")); }, [INFO] [stderr] 127 | MsgType::WriteData => { try!(f.write_str("Write data")); }, [INFO] [stderr] 128 | MsgType::InvalidData => { try!(f.write_str("Invalid data")); }, [INFO] [stderr] 129 | MsgType::ReadAck => { try!(f.write_str("Read ack")); }, [INFO] [stderr] 130 | MsgType::WriteAck => { try!(f.write_str("Write ack")); }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message.rs:141:9 [INFO] [stderr] | [INFO] [stderr] 141 | / match self { [INFO] [stderr] 142 | | &MsgType::ReadData => { try!(f.write_str("000")); }, [INFO] [stderr] 143 | | &MsgType::WriteData => { try!(f.write_str("001")); }, [INFO] [stderr] 144 | | &MsgType::InvalidData => { try!(f.write_str("010")); }, [INFO] [stderr] ... | [INFO] [stderr] 148 | | &MsgType::UnknownDataId => { try!(f.write_str("111")); }, [INFO] [stderr] 149 | | } [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] 141 | match *self { [INFO] [stderr] 142 | MsgType::ReadData => { try!(f.write_str("000")); }, [INFO] [stderr] 143 | MsgType::WriteData => { try!(f.write_str("001")); }, [INFO] [stderr] 144 | MsgType::InvalidData => { try!(f.write_str("010")); }, [INFO] [stderr] 145 | MsgType::ReadAck => { try!(f.write_str("100")); }, [INFO] [stderr] 146 | MsgType::WriteAck => { try!(f.write_str("101")); }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> tests/lib.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | TestMessage { data: data } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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] Finished dev [unoptimized + debuginfo] target(s) in 9.07s [INFO] running `"docker" "inspect" "bb08240f32780ead288c7e32b2a33eea0c15ef6c4c4b3df9232f4e1213514d74"` [INFO] running `"docker" "rm" "-f" "bb08240f32780ead288c7e32b2a33eea0c15ef6c4c4b3df9232f4e1213514d74"` [INFO] [stdout] bb08240f32780ead288c7e32b2a33eea0c15ef6c4c4b3df9232f4e1213514d74