[INFO] crate dharma 0.1.0 is already in cache [INFO] extracting crate dharma 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/dharma/0.1.0 [INFO] extracting crate dharma 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dharma/0.1.0 [INFO] validating manifest of dharma-0.1.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of dharma-0.1.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing dharma-0.1.0 [INFO] finished frobbing dharma-0.1.0 [INFO] frobbed toml for dharma-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/dharma/0.1.0/Cargo.toml [INFO] started frobbing dharma-0.1.0 [INFO] finished frobbing dharma-0.1.0 [INFO] frobbed toml for dharma-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dharma/0.1.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting dharma-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/dharma/0.1.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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] d406c2ba16970667c306b6076d2b7224c694f00b8b89a3ef141786194b1a73ed [INFO] running `"docker" "start" "-a" "d406c2ba16970667c306b6076d2b7224c694f00b8b89a3ef141786194b1a73ed"` [INFO] [stderr] Checking timerfd v0.2.0 [INFO] [stderr] Checking nix v0.8.1 [INFO] [stderr] Checking dharma v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/event_loop.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/event_loop.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | constructor: constructor, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `constructor` [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/event_loop.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/event_loop.rs:134:13 [INFO] [stderr] | [INFO] [stderr] 134 | signaler: signaler, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `signaler` [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/event_loop.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | context: context, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [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/system.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | dispatcher: dispatcher, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dispatcher` [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/system.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | signaler: signaler, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `signaler` [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/timer.rs:33:72 [INFO] [stderr] | [INFO] [stderr] 33 | timer_fd.set_state(TimerState::Periodic{current: interval, interval: interval}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `interval` [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/timer.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | callback: callback, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `callback` [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/timer.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | timer_fd: timer_fd, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `timer_fd` [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/event_loop.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/event_loop.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | constructor: constructor, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `constructor` [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/event_loop.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/event_loop.rs:134:13 [INFO] [stderr] | [INFO] [stderr] 134 | signaler: signaler, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `signaler` [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/event_loop.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | context: context, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [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/system.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | dispatcher: dispatcher, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dispatcher` [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/system.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | signaler: signaler, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `signaler` [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/timer.rs:33:72 [INFO] [stderr] | [INFO] [stderr] 33 | timer_fd.set_state(TimerState::Periodic{current: interval, interval: interval}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `interval` [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/timer.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | callback: callback, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `callback` [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/timer.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | timer_fd: timer_fd, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `timer_fd` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bridge.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | / match self { [INFO] [stderr] 120 | | &ReceiveResult::Plain(ref pkg2) => &pkg1 == pkg2, [INFO] [stderr] 121 | | _ => false, [INFO] [stderr] 122 | | } [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] 119 | match *self { [INFO] [stderr] 120 | ReceiveResult::Plain(ref pkg2) => &pkg1 == pkg2, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bridge.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | / match self { [INFO] [stderr] 128 | | &ReceiveResult::Defined(id2, ref pkg2) => (id1 == id2) && (&pkg1 == pkg2), [INFO] [stderr] 129 | | _ => false, [INFO] [stderr] 130 | | } [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] 127 | match *self { [INFO] [stderr] 128 | ReceiveResult::Defined(id2, ref pkg2) => (id1 == id2) && (&pkg1 == pkg2), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bridge.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | / match self { [INFO] [stderr] 136 | | &ReceiveResult::Custom(id2, ref pkg2) => (id1 == id2) && (&pkg1 == pkg2), [INFO] [stderr] 137 | | _ => false, [INFO] [stderr] 138 | | } [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] 135 | match *self { [INFO] [stderr] 136 | ReceiveResult::Custom(id2, ref pkg2) => (id1 == id2) && (&pkg1 == pkg2), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bridge.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | / match self { [INFO] [stderr] 144 | | &ReceiveResult::Special(ref cmd2) => &cmd1 == cmd2, [INFO] [stderr] 145 | | _ => false, [INFO] [stderr] 146 | | } [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] 143 | match *self { [INFO] [stderr] 144 | ReceiveResult::Special(ref cmd2) => &cmd1 == cmd2, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bridge.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 151 | / match self { [INFO] [stderr] 152 | | &ReceiveResult::Empty => true, [INFO] [stderr] 153 | | _ => false, [INFO] [stderr] 154 | | } [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 | ReceiveResult::Empty => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bridge.rs:159:9 [INFO] [stderr] | [INFO] [stderr] 159 | / match self { [INFO] [stderr] 160 | | &ReceiveResult::Timeout => true, [INFO] [stderr] 161 | | _ => false, [INFO] [stderr] 162 | | } [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] 159 | match *self { [INFO] [stderr] 160 | ReceiveResult::Timeout => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bridge.rs:215:12 [INFO] [stderr] | [INFO] [stderr] 215 | if mine.fifo.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `mine.fifo.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bridge.rs:225:12 [INFO] [stderr] | [INFO] [stderr] 225 | if mine.fifo.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `mine.fifo.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bridge.rs:236:12 [INFO] [stderr] | [INFO] [stderr] 236 | if mine.fifo.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `mine.fifo.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bridge::DirectSender` [INFO] [stderr] --> src/bridge.rs:294:5 [INFO] [stderr] | [INFO] [stderr] 294 | / pub fn new() -> Self { [INFO] [stderr] 295 | | DirectSender { bridge: None } [INFO] [stderr] 296 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 282 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bridge::Sender` [INFO] [stderr] --> src/bridge.rs:369:5 [INFO] [stderr] | [INFO] [stderr] 369 | / pub fn new() -> Self { [INFO] [stderr] 370 | | Sender { bridges: Vec::new() } [INFO] [stderr] 371 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 357 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `bridge::Receiver` [INFO] [stderr] --> src/bridge.rs:415:5 [INFO] [stderr] | [INFO] [stderr] 415 | / pub fn new() -> Self { [INFO] [stderr] 416 | | Receiver { bridge: Bridge::new() } [INFO] [stderr] 417 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 411 | impl Default for bridge::Receiver { [INFO] [stderr] 412 | fn default() -> Self { [INFO] [stderr] 413 | Self::new() [INFO] [stderr] 414 | } [INFO] [stderr] 415 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `signaler::Signaler

` [INFO] [stderr] --> src/signaler.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / pub fn new() -> Self { [INFO] [stderr] 44 | | Signaler { [INFO] [stderr] 45 | | inner: Arc::new(Mutex::new(InnerSignaler { [INFO] [stderr] 46 | | map: Map::new(), [INFO] [stderr] ... | [INFO] [stderr] 49 | | } [INFO] [stderr] 50 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 39 | impl Default for signaler::Signaler

{ [INFO] [stderr] 40 | fn default() -> Self { [INFO] [stderr] 41 | Self::new() [INFO] [stderr] 42 | } [INFO] [stderr] 43 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `BTreeMap` [INFO] [stderr] --> src/signaler.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 56 | / if mine.map.contains_key(&id) { [INFO] [stderr] 57 | | // If someone is already connected, connect next receiver [INFO] [stderr] 58 | | if let Some(ref mut sender) = mine.map.get_mut(&id) { [INFO] [stderr] 59 | | bridge::connect(sender, receiver); [INFO] [stderr] ... | [INFO] [stderr] 65 | | mine.map.insert(id, sender); [INFO] [stderr] 66 | | } [INFO] [stderr] | |_________^ help: consider using: `mine.map.entry(id)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/signaler.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | / match mine.map.get_mut(&id) { [INFO] [stderr] 83 | | Some(sender) => { [INFO] [stderr] 84 | | // Send package to all connected receivers [INFO] [stderr] 85 | | sender.send_defined(id, package); [INFO] [stderr] ... | [INFO] [stderr] 89 | | } [INFO] [stderr] 90 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 82 | if let Some(sender) = mine.map.get_mut(&id) { [INFO] [stderr] 83 | // Send package to all connected receivers [INFO] [stderr] 84 | sender.send_defined(id, package); [INFO] [stderr] 85 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/event_loop.rs:186:9 [INFO] [stderr] | [INFO] [stderr] 186 | / loop { [INFO] [stderr] 187 | | match info.constructors.pop() { [INFO] [stderr] 188 | | Some(constructor) => { [INFO] [stderr] 189 | | event_loop.modules.push(constructor.construct(&mut info.context)); [INFO] [stderr] ... | [INFO] [stderr] 192 | | } [INFO] [stderr] 193 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(constructor) = info.constructors.pop() { .. }` [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: the variable `i` is used as a loop counter. Consider using `for (i, item) in self.modules.iter().enumerate()` or similar iterators [INFO] [stderr] --> src/event_loop.rs:211:18 [INFO] [stderr] | [INFO] [stderr] 211 | for m in self.modules.iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `BTreeMap` [INFO] [stderr] --> src/event_loop.rs:214:17 [INFO] [stderr] | [INFO] [stderr] 214 | / if self.subscriptions.contains_key(&s) { [INFO] [stderr] 215 | | match self.subscriptions.get_mut(&s) { [INFO] [stderr] 216 | | Some(ref mut subscribers) => { [INFO] [stderr] 217 | | subscribers.push(i); [INFO] [stderr] ... | [INFO] [stderr] 223 | | self.signaler.subscribe(s, &self.receiver); [INFO] [stderr] 224 | | } [INFO] [stderr] | |_________________^ help: consider using: `self.subscriptions.entry(s)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/event_loop.rs:215:21 [INFO] [stderr] | [INFO] [stderr] 215 | / match self.subscriptions.get_mut(&s) { [INFO] [stderr] 216 | | Some(ref mut subscribers) => { [INFO] [stderr] 217 | | subscribers.push(i); [INFO] [stderr] 218 | | } [INFO] [stderr] 219 | | None => {} // FIXME warn [INFO] [stderr] 220 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 215 | if let Some(ref mut subscribers) = self.subscriptions.get_mut(&s) { [INFO] [stderr] 216 | subscribers.push(i); [INFO] [stderr] 217 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/event_loop.rs:241:21 [INFO] [stderr] | [INFO] [stderr] 241 | / match self.subscriptions.get_mut(&id) { [INFO] [stderr] 242 | | Some(ref mut subscribers) => { [INFO] [stderr] 243 | | // Inform all subscriber about notification. [INFO] [stderr] 244 | | for i in subscribers.iter() { [INFO] [stderr] ... | [INFO] [stderr] 251 | | } [INFO] [stderr] 252 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 241 | if let Some(ref mut subscribers) = self.subscriptions.get_mut(&id) { [INFO] [stderr] 242 | // Inform all subscriber about notification. [INFO] [stderr] 243 | for i in subscribers.iter() { [INFO] [stderr] 244 | self.modules[*i].execute(&package); [INFO] [stderr] 245 | } [INFO] [stderr] 246 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `dispatcher::LocalDispatcher` [INFO] [stderr] --> src/dispatcher.rs:255:5 [INFO] [stderr] | [INFO] [stderr] 255 | / pub fn new() -> Self { [INFO] [stderr] 256 | | LocalDispatcher { state: Arc::new(State::new()) } [INFO] [stderr] 257 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 253 | impl Default for dispatcher::LocalDispatcher { [INFO] [stderr] 254 | fn default() -> Self { [INFO] [stderr] 255 | Self::new() [INFO] [stderr] 256 | } [INFO] [stderr] 257 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `dispatcher::Dispatcher` [INFO] [stderr] --> src/dispatcher.rs:315:5 [INFO] [stderr] | [INFO] [stderr] 315 | / pub fn new() -> Self { [INFO] [stderr] 316 | | Dispatcher { state: Arc::new(State::new()) } [INFO] [stderr] 317 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 313 | impl Default for dispatcher::Dispatcher { [INFO] [stderr] 314 | fn default() -> Self { [INFO] [stderr] 315 | Self::new() [INFO] [stderr] 316 | } [INFO] [stderr] 317 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> tests/common/mocks.rs:69:44 [INFO] [stderr] | [INFO] [stderr] 69 | signals: signals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `signals` [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] --> tests/common/mocks.rs:209:13 [INFO] [stderr] | [INFO] [stderr] 209 | signals: signals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `signals` [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] --> tests/common/mocks.rs:210:13 [INFO] [stderr] | [INFO] [stderr] 210 | packages: packages, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `packages` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bridge.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | / match self { [INFO] [stderr] 120 | | &ReceiveResult::Plain(ref pkg2) => &pkg1 == pkg2, [INFO] [stderr] 121 | | _ => false, [INFO] [stderr] 122 | | } [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] 119 | match *self { [INFO] [stderr] 120 | ReceiveResult::Plain(ref pkg2) => &pkg1 == pkg2, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bridge.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | / match self { [INFO] [stderr] 128 | | &ReceiveResult::Defined(id2, ref pkg2) => (id1 == id2) && (&pkg1 == pkg2), [INFO] [stderr] 129 | | _ => false, [INFO] [stderr] 130 | | } [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] 127 | match *self { [INFO] [stderr] 128 | ReceiveResult::Defined(id2, ref pkg2) => (id1 == id2) && (&pkg1 == pkg2), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bridge.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | / match self { [INFO] [stderr] 136 | | &ReceiveResult::Custom(id2, ref pkg2) => (id1 == id2) && (&pkg1 == pkg2), [INFO] [stderr] 137 | | _ => false, [INFO] [stderr] 138 | | } [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] 135 | match *self { [INFO] [stderr] 136 | ReceiveResult::Custom(id2, ref pkg2) => (id1 == id2) && (&pkg1 == pkg2), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bridge.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | / match self { [INFO] [stderr] 144 | | &ReceiveResult::Special(ref cmd2) => &cmd1 == cmd2, [INFO] [stderr] 145 | | _ => false, [INFO] [stderr] 146 | | } [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] 143 | match *self { [INFO] [stderr] 144 | ReceiveResult::Special(ref cmd2) => &cmd1 == cmd2, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bridge.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 151 | / match self { [INFO] [stderr] 152 | | &ReceiveResult::Empty => true, [INFO] [stderr] 153 | | _ => false, [INFO] [stderr] 154 | | } [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 | ReceiveResult::Empty => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bridge.rs:159:9 [INFO] [stderr] | [INFO] [stderr] 159 | / match self { [INFO] [stderr] 160 | | &ReceiveResult::Timeout => true, [INFO] [stderr] 161 | | _ => false, [INFO] [stderr] 162 | | } [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] 159 | match *self { [INFO] [stderr] 160 | ReceiveResult::Timeout => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bridge.rs:215:12 [INFO] [stderr] | [INFO] [stderr] 215 | if mine.fifo.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `mine.fifo.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bridge.rs:225:12 [INFO] [stderr] | [INFO] [stderr] 225 | if mine.fifo.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `mine.fifo.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bridge.rs:236:12 [INFO] [stderr] | [INFO] [stderr] 236 | if mine.fifo.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `mine.fifo.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bridge::DirectSender` [INFO] [stderr] --> src/bridge.rs:294:5 [INFO] [stderr] | [INFO] [stderr] 294 | / pub fn new() -> Self { [INFO] [stderr] 295 | | DirectSender { bridge: None } [INFO] [stderr] 296 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 282 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bridge::Sender` [INFO] [stderr] --> src/bridge.rs:369:5 [INFO] [stderr] | [INFO] [stderr] 369 | / pub fn new() -> Self { [INFO] [stderr] 370 | | Sender { bridges: Vec::new() } [INFO] [stderr] 371 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 357 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `bridge::Receiver` [INFO] [stderr] --> src/bridge.rs:415:5 [INFO] [stderr] | [INFO] [stderr] 415 | / pub fn new() -> Self { [INFO] [stderr] 416 | | Receiver { bridge: Bridge::new() } [INFO] [stderr] 417 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 411 | impl Default for bridge::Receiver { [INFO] [stderr] 412 | fn default() -> Self { [INFO] [stderr] 413 | Self::new() [INFO] [stderr] 414 | } [INFO] [stderr] 415 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `signaler::Signaler

` [INFO] [stderr] --> src/signaler.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / pub fn new() -> Self { [INFO] [stderr] 44 | | Signaler { [INFO] [stderr] 45 | | inner: Arc::new(Mutex::new(InnerSignaler { [INFO] [stderr] 46 | | map: Map::new(), [INFO] [stderr] ... | [INFO] [stderr] 49 | | } [INFO] [stderr] 50 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 39 | impl Default for signaler::Signaler

{ [INFO] [stderr] 40 | fn default() -> Self { [INFO] [stderr] 41 | Self::new() [INFO] [stderr] 42 | } [INFO] [stderr] 43 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `BTreeMap` [INFO] [stderr] --> src/signaler.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 56 | / if mine.map.contains_key(&id) { [INFO] [stderr] 57 | | // If someone is already connected, connect next receiver [INFO] [stderr] 58 | | if let Some(ref mut sender) = mine.map.get_mut(&id) { [INFO] [stderr] 59 | | bridge::connect(sender, receiver); [INFO] [stderr] ... | [INFO] [stderr] 65 | | mine.map.insert(id, sender); [INFO] [stderr] 66 | | } [INFO] [stderr] | |_________^ help: consider using: `mine.map.entry(id)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/signaler.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | / match mine.map.get_mut(&id) { [INFO] [stderr] 83 | | Some(sender) => { [INFO] [stderr] 84 | | // Send package to all connected receivers [INFO] [stderr] 85 | | sender.send_defined(id, package); [INFO] [stderr] ... | [INFO] [stderr] 89 | | } [INFO] [stderr] 90 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 82 | if let Some(sender) = mine.map.get_mut(&id) { [INFO] [stderr] 83 | // Send package to all connected receivers [INFO] [stderr] 84 | sender.send_defined(id, package); [INFO] [stderr] 85 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/event_loop.rs:186:9 [INFO] [stderr] | [INFO] [stderr] 186 | / loop { [INFO] [stderr] 187 | | match info.constructors.pop() { [INFO] [stderr] 188 | | Some(constructor) => { [INFO] [stderr] 189 | | event_loop.modules.push(constructor.construct(&mut info.context)); [INFO] [stderr] ... | [INFO] [stderr] 192 | | } [INFO] [stderr] 193 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(constructor) = info.constructors.pop() { .. }` [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: the variable `i` is used as a loop counter. Consider using `for (i, item) in self.modules.iter().enumerate()` or similar iterators [INFO] [stderr] --> src/event_loop.rs:211:18 [INFO] [stderr] | [INFO] [stderr] 211 | for m in self.modules.iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `BTreeMap` [INFO] [stderr] --> src/event_loop.rs:214:17 [INFO] [stderr] | [INFO] [stderr] 214 | / if self.subscriptions.contains_key(&s) { [INFO] [stderr] 215 | | match self.subscriptions.get_mut(&s) { [INFO] [stderr] 216 | | Some(ref mut subscribers) => { [INFO] [stderr] 217 | | subscribers.push(i); [INFO] [stderr] ... | [INFO] [stderr] 223 | | self.signaler.subscribe(s, &self.receiver); [INFO] [stderr] 224 | | } [INFO] [stderr] | |_________________^ help: consider using: `self.subscriptions.entry(s)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/event_loop.rs:215:21 [INFO] [stderr] | [INFO] [stderr] 215 | / match self.subscriptions.get_mut(&s) { [INFO] [stderr] 216 | | Some(ref mut subscribers) => { [INFO] [stderr] 217 | | subscribers.push(i); [INFO] [stderr] 218 | | } [INFO] [stderr] 219 | | None => {} // FIXME warn [INFO] [stderr] 220 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 215 | if let Some(ref mut subscribers) = self.subscriptions.get_mut(&s) { [INFO] [stderr] 216 | subscribers.push(i); [INFO] [stderr] 217 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/event_loop.rs:241:21 [INFO] [stderr] | [INFO] [stderr] 241 | / match self.subscriptions.get_mut(&id) { [INFO] [stderr] 242 | | Some(ref mut subscribers) => { [INFO] [stderr] 243 | | // Inform all subscriber about notification. [INFO] [stderr] 244 | | for i in subscribers.iter() { [INFO] [stderr] ... | [INFO] [stderr] 251 | | } [INFO] [stderr] 252 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 241 | if let Some(ref mut subscribers) = self.subscriptions.get_mut(&id) { [INFO] [stderr] 242 | // Inform all subscriber about notification. [INFO] [stderr] 243 | for i in subscribers.iter() { [INFO] [stderr] 244 | self.modules[*i].execute(&package); [INFO] [stderr] 245 | } [INFO] [stderr] 246 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `dispatcher::LocalDispatcher` [INFO] [stderr] --> src/dispatcher.rs:255:5 [INFO] [stderr] | [INFO] [stderr] 255 | / pub fn new() -> Self { [INFO] [stderr] 256 | | LocalDispatcher { state: Arc::new(State::new()) } [INFO] [stderr] 257 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 253 | impl Default for dispatcher::LocalDispatcher { [INFO] [stderr] 254 | fn default() -> Self { [INFO] [stderr] 255 | Self::new() [INFO] [stderr] 256 | } [INFO] [stderr] 257 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `dispatcher::Dispatcher` [INFO] [stderr] --> src/dispatcher.rs:315:5 [INFO] [stderr] | [INFO] [stderr] 315 | / pub fn new() -> Self { [INFO] [stderr] 316 | | Dispatcher { state: Arc::new(State::new()) } [INFO] [stderr] 317 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 313 | impl Default for dispatcher::Dispatcher { [INFO] [stderr] 314 | fn default() -> Self { [INFO] [stderr] 315 | Self::new() [INFO] [stderr] 316 | } [INFO] [stderr] 317 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/test_signaler.rs:19:11 [INFO] [stderr] | [INFO] [stderr] 19 | const T: &'static str = "test"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/test_signaler.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 20 | const H1: &'static str = "hello 1"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/test_signaler.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 21 | const H2: &'static str = "hello 2"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/test_signaler.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | const H3: &'static str = "hello 3"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> tests/test_signaler.rs:57:15 [INFO] [stderr] | [INFO] [stderr] 57 | s.emit(0, String::from(String::from(H1))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `String::from(H1)` [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: identical conversion [INFO] [stderr] --> tests/test_signaler.rs:58:15 [INFO] [stderr] | [INFO] [stderr] 58 | s.emit(1, String::from(String::from(H2))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `String::from(H2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> tests/test_signaler.rs:59:15 [INFO] [stderr] | [INFO] [stderr] 59 | s.emit(2, String::from(String::from(H3))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `String::from(H3)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> tests/test_signaler.rs:83:15 [INFO] [stderr] | [INFO] [stderr] 83 | s.emit(0, String::from(String::from(H1))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `String::from(H1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> tests/test_signaler.rs:84:15 [INFO] [stderr] | [INFO] [stderr] 84 | s.emit(1, String::from(String::from(H2))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `String::from(H2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> tests/test_signaler.rs:112:15 [INFO] [stderr] | [INFO] [stderr] 112 | s.emit(2, String::from(String::from(H2))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `String::from(H2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/test_bridge.rs:18:11 [INFO] [stderr] | [INFO] [stderr] 18 | const T: &'static str = "test"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/test_bridge.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 19 | const H1: &'static str = "hello 1"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/test_bridge.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 20 | const H2: &'static str = "hello 2"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> tests/common/mocks.rs:110:9 [INFO] [stderr] | [INFO] [stderr] 110 | / match mine.expected_times_initialized { [INFO] [stderr] 111 | | Some(expected) => { [INFO] [stderr] 112 | | assert_eq!(expected, mine.times_initialized); [INFO] [stderr] 113 | | } [INFO] [stderr] 114 | | None => {} [INFO] [stderr] 115 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 110 | if let Some(expected) = mine.expected_times_initialized { [INFO] [stderr] 111 | assert_eq!(expected, mine.times_initialized); [INFO] [stderr] 112 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> tests/common/mocks.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | / match mine.expected_times_executed { [INFO] [stderr] 119 | | Some(expected) => { [INFO] [stderr] 120 | | assert_eq!(expected, mine.times_executed); [INFO] [stderr] 121 | | } [INFO] [stderr] 122 | | None => {} [INFO] [stderr] 123 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 118 | if let Some(expected) = mine.expected_times_executed { [INFO] [stderr] 119 | assert_eq!(expected, mine.times_executed); [INFO] [stderr] 120 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> tests/common/mocks.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | / match mine.expected_times_finalized { [INFO] [stderr] 127 | | Some(expected) => { [INFO] [stderr] 128 | | assert_eq!(expected, mine.times_finalized); [INFO] [stderr] 129 | | } [INFO] [stderr] 130 | | None => {} [INFO] [stderr] 131 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 126 | if let Some(expected) = mine.expected_times_finalized { [INFO] [stderr] 127 | assert_eq!(expected, mine.times_finalized); [INFO] [stderr] 128 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> tests/common/mocks.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | / match mine.expected_packages { [INFO] [stderr] 135 | | Some(ref expected) => { [INFO] [stderr] 136 | | assert_eq!(expected.as_slice(), mine.packages.as_slice()); [INFO] [stderr] 137 | | } [INFO] [stderr] 138 | | None => {} [INFO] [stderr] 139 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 134 | if let Some(ref expected) = mine.expected_packages { [INFO] [stderr] 135 | assert_eq!(expected.as_slice(), mine.packages.as_slice()); [INFO] [stderr] 136 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 9.77s [INFO] running `"docker" "inspect" "d406c2ba16970667c306b6076d2b7224c694f00b8b89a3ef141786194b1a73ed"` [INFO] running `"docker" "rm" "-f" "d406c2ba16970667c306b6076d2b7224c694f00b8b89a3ef141786194b1a73ed"` [INFO] [stdout] d406c2ba16970667c306b6076d2b7224c694f00b8b89a3ef141786194b1a73ed