[INFO] crate bip_select 0.1.0 is already in cache [INFO] extracting crate bip_select 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/bip_select/0.1.0 [INFO] extracting crate bip_select 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bip_select/0.1.0 [INFO] validating manifest of bip_select-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 bip_select-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 bip_select-0.1.0 [INFO] finished frobbing bip_select-0.1.0 [INFO] frobbed toml for bip_select-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/bip_select/0.1.0/Cargo.toml [INFO] started frobbing bip_select-0.1.0 [INFO] finished frobbing bip_select-0.1.0 [INFO] frobbed toml for bip_select-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bip_select/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 bip_select-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-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/bip_select/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] e323a33bdaf87b9778e64d914db1607a2c6108caad9b92e1528a6d7f2a4c83bc [INFO] running `"docker" "start" "-a" "e323a33bdaf87b9778e64d914db1607a2c6108caad9b92e1528a6d7f2a4c83bc"` [INFO] [stderr] Checking miow v0.1.5 [INFO] [stderr] Checking error-chain v0.9.0 [INFO] [stderr] Checking bip_bencode v0.4.4 [INFO] [stderr] Checking bip_util v0.5.0 [INFO] [stderr] Checking mio v0.5.1 [INFO] [stderr] Checking bip_bencode v0.3.1 [INFO] [stderr] Checking bip_handshake v0.5.4 [INFO] [stderr] Checking bip_handshake v0.7.1 [INFO] [stderr] Checking umio v0.3.0 [INFO] [stderr] Checking bip_metainfo v0.11.0 [INFO] [stderr] Checking bip_utracker v0.3.2 [INFO] [stderr] Checking bip_peer v0.5.0 [INFO] [stderr] Checking bip_select v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/discovery/ut_metadata.rs:130:29 [INFO] [stderr] | [INFO] [stderr] 130 | metadata_size: metadata_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `metadata_size` [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/discovery/ut_metadata.rs:202:17 [INFO] [stderr] | [INFO] [stderr] 202 | request: request, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `request` [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/discovery/ut_metadata.rs:418:9 [INFO] [stderr] | [INFO] [stderr] 418 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/discovery/ut_metadata.rs:440:9 [INFO] [stderr] | [INFO] [stderr] 440 | messages: messages, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `messages` [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/discovery/ut_metadata.rs:442:9 [INFO] [stderr] | [INFO] [stderr] 442 | bytes: bytes, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [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/extended/mod.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | ours: ours, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `ours` [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/extended/mod.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | theirs: theirs, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `theirs` [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/extended/mod.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | builder: builder, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [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/discovery/ut_metadata.rs:130:29 [INFO] [stderr] | [INFO] [stderr] 130 | metadata_size: metadata_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `metadata_size` [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/discovery/ut_metadata.rs:202:17 [INFO] [stderr] | [INFO] [stderr] 202 | request: request, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `request` [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/discovery/ut_metadata.rs:418:9 [INFO] [stderr] | [INFO] [stderr] 418 | message: message, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [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/discovery/ut_metadata.rs:440:9 [INFO] [stderr] | [INFO] [stderr] 440 | messages: messages, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `messages` [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/discovery/ut_metadata.rs:442:9 [INFO] [stderr] | [INFO] [stderr] 442 | bytes: bytes, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [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/extended/mod.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | ours: ours, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `ours` [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/extended/mod.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | theirs: theirs, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `theirs` [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/extended/mod.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | builder: builder, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [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: unneeded unit expression [INFO] [stderr] --> src/discovery/ut_metadata.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/extended/mod.rs:125:17 [INFO] [stderr] | [INFO] [stderr] 125 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/uber.rs:357:9 [INFO] [stderr] | [INFO] [stderr] 357 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/uber.rs:355:22 [INFO] [stderr] | [INFO] [stderr] 355 | let result = self.poll_stream_state(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `discovery::ut_metadata::UtMetadataModule` [INFO] [stderr] --> src/discovery/ut_metadata.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | / pub fn new() -> UtMetadataModule { [INFO] [stderr] 83 | | UtMetadataModule { [INFO] [stderr] 84 | | completed_map: HashMap::new(), [INFO] [stderr] 85 | | pending_map: HashMap::new(), [INFO] [stderr] ... | [INFO] [stderr] 91 | | } [INFO] [stderr] 92 | | } [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] 70 | #[derive(Default)] [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/discovery/ut_metadata.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | / match (our_support, they_support, opt_metadata_size) { [INFO] [stderr] 124 | | (true, true, Some(metadata_size)) => { [INFO] [stderr] 125 | | self.active_peers [INFO] [stderr] 126 | | .entry(*info.hash()) [INFO] [stderr] ... | [INFO] [stderr] 138 | | }, [INFO] [stderr] 139 | | } [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] 123 | if let (true, true, Some(metadata_size)) = (our_support, they_support, opt_metadata_size) { [INFO] [stderr] 124 | self.active_peers [INFO] [stderr] 125 | .entry(*info.hash()) [INFO] [stderr] 126 | .or_insert_with(|| { [INFO] [stderr] 127 | ActivePeers { [INFO] [stderr] 128 | peers: HashSet::new(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/discovery/ut_metadata.rs:187:9 [INFO] [stderr] | [INFO] [stderr] 187 | / if !self.pending_map.contains_key(&hash) { [INFO] [stderr] 188 | | self.pending_map.insert(hash, None); [INFO] [stderr] 189 | | } [INFO] [stderr] | |_________^ help: consider using: `self.pending_map.entry(hash).or_insert(None)` [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/discovery/ut_metadata.rs:223:17 [INFO] [stderr] | [INFO] [stderr] 223 | / (&mut pending.bytes.as_mut_slice()[data_offset..]) [INFO] [stderr] 224 | | .write(data.data().as_ref()) [INFO] [stderr] 225 | | .unwrap(); [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/discovery/ut_metadata.rs:281:40 [INFO] [stderr] | [INFO] [stderr] 281 | let mut active_peers = self.active_peers.get(hash).unwrap().peers.iter(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.active_peers[hash]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/discovery/mod.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | Control(ControlMessage), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 18 | Control(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `uber::UberModuleBuilder` [INFO] [stderr] --> src/uber.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | / pub fn new() -> UberModuleBuilder { [INFO] [stderr] 57 | | UberModuleBuilder { [INFO] [stderr] 58 | | discovery: Vec::new(), [INFO] [stderr] 59 | | ext_builder: None, [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [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] 48 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/uber.rs:135:22 [INFO] [stderr] | [INFO] [stderr] 135 | .map(|builder| ExtendedModule::new(builder)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ExtendedModule::new` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/discovery/ut_metadata.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/uber.rs:316:89 [INFO] [stderr] | [INFO] [stderr] 316 | async_opt_message.map(|opt_message| opt_message.map(|message| OUberMessage::Extended(message))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `OUberMessage::Extended` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/uber.rs:318:48 [INFO] [stderr] | [INFO] [stderr] 318 | .map_err(|err| err.into()) [INFO] [stderr] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stderr] | [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/extended/mod.rs:125:17 [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] 125 | () [INFO] [stderr] | ^^ help: remove the final `()` [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] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/uber.rs:326:81 [INFO] [stderr] | [INFO] [stderr] 326 | async_opt_message.map(|opt_message| opt_message.map(|message| OUberMessage::Discovery(message))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `OUberMessage::Discovery` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/uber.rs:357:9 [INFO] [stderr] | [INFO] [stderr] 357 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/uber.rs:355:22 [INFO] [stderr] | [INFO] [stderr] 355 | let result = self.poll_stream_state(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `bip_select`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `discovery::ut_metadata::UtMetadataModule` [INFO] [stderr] --> src/discovery/ut_metadata.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | / pub fn new() -> UtMetadataModule { [INFO] [stderr] 83 | | UtMetadataModule { [INFO] [stderr] 84 | | completed_map: HashMap::new(), [INFO] [stderr] 85 | | pending_map: HashMap::new(), [INFO] [stderr] ... | [INFO] [stderr] 91 | | } [INFO] [stderr] 92 | | } [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] 70 | #[derive(Default)] [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/discovery/ut_metadata.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | / match (our_support, they_support, opt_metadata_size) { [INFO] [stderr] 124 | | (true, true, Some(metadata_size)) => { [INFO] [stderr] 125 | | self.active_peers [INFO] [stderr] 126 | | .entry(*info.hash()) [INFO] [stderr] ... | [INFO] [stderr] 138 | | }, [INFO] [stderr] 139 | | } [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] 123 | if let (true, true, Some(metadata_size)) = (our_support, they_support, opt_metadata_size) { [INFO] [stderr] 124 | self.active_peers [INFO] [stderr] 125 | .entry(*info.hash()) [INFO] [stderr] 126 | .or_insert_with(|| { [INFO] [stderr] 127 | ActivePeers { [INFO] [stderr] 128 | peers: HashSet::new(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/discovery/ut_metadata.rs:187:9 [INFO] [stderr] | [INFO] [stderr] 187 | / if !self.pending_map.contains_key(&hash) { [INFO] [stderr] 188 | | self.pending_map.insert(hash, None); [INFO] [stderr] 189 | | } [INFO] [stderr] | |_________^ help: consider using: `self.pending_map.entry(hash).or_insert(None)` [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/discovery/ut_metadata.rs:223:17 [INFO] [stderr] | [INFO] [stderr] 223 | / (&mut pending.bytes.as_mut_slice()[data_offset..]) [INFO] [stderr] 224 | | .write(data.data().as_ref()) [INFO] [stderr] 225 | | .unwrap(); [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/discovery/ut_metadata.rs:281:40 [INFO] [stderr] | [INFO] [stderr] 281 | let mut active_peers = self.active_peers.get(hash).unwrap().peers.iter(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.active_peers[hash]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/discovery/mod.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | Control(ControlMessage), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 18 | Control(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `uber::UberModuleBuilder` [INFO] [stderr] --> src/uber.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | / pub fn new() -> UberModuleBuilder { [INFO] [stderr] 57 | | UberModuleBuilder { [INFO] [stderr] 58 | | discovery: Vec::new(), [INFO] [stderr] 59 | | ext_builder: None, [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [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] 48 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/uber.rs:135:22 [INFO] [stderr] | [INFO] [stderr] 135 | .map(|builder| ExtendedModule::new(builder)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ExtendedModule::new` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/uber.rs:316:89 [INFO] [stderr] | [INFO] [stderr] 316 | async_opt_message.map(|opt_message| opt_message.map(|message| OUberMessage::Extended(message))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `OUberMessage::Extended` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/uber.rs:318:48 [INFO] [stderr] | [INFO] [stderr] 318 | .map_err(|err| err.into()) [INFO] [stderr] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [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: redundant closure found [INFO] [stderr] --> src/uber.rs:326:81 [INFO] [stderr] | [INFO] [stderr] 326 | async_opt_message.map(|opt_message| opt_message.map(|message| OUberMessage::Discovery(message))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `OUberMessage::Discovery` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `bip_select`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "e323a33bdaf87b9778e64d914db1607a2c6108caad9b92e1528a6d7f2a4c83bc"` [INFO] running `"docker" "rm" "-f" "e323a33bdaf87b9778e64d914db1607a2c6108caad9b92e1528a6d7f2a4c83bc"` [INFO] [stdout] e323a33bdaf87b9778e64d914db1607a2c6108caad9b92e1528a6d7f2a4c83bc