[INFO] crate bip_dht 0.6.0 is already in cache [INFO] extracting crate bip_dht 0.6.0 into work/ex/clippy-test-run/sources/stable/reg/bip_dht/0.6.0 [INFO] extracting crate bip_dht 0.6.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bip_dht/0.6.0 [INFO] validating manifest of bip_dht-0.6.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_dht-0.6.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_dht-0.6.0 [INFO] finished frobbing bip_dht-0.6.0 [INFO] frobbed toml for bip_dht-0.6.0 written to work/ex/clippy-test-run/sources/stable/reg/bip_dht/0.6.0/Cargo.toml [INFO] started frobbing bip_dht-0.6.0 [INFO] finished frobbing bip_dht-0.6.0 [INFO] frobbed toml for bip_dht-0.6.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bip_dht/0.6.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_dht-0.6.0 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/reg/bip_dht/0.6.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] cb95e415d2f6575c70047ae1e838c96b23541a2f9a800f6c79862e32ca9f3194 [INFO] running `"docker" "start" "-a" "cb95e415d2f6575c70047ae1e838c96b23541a2f9a800f6c79862e32ca9f3194"` [INFO] [stderr] Checking slab v0.2.0 [INFO] [stderr] Checking bip_bencode v0.2.0 [INFO] [stderr] Checking bip_handshake v0.4.1 [INFO] [stderr] Checking bip_dht v0.6.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:45:26 [INFO] [stderr] | [INFO] [stderr] 45 | Ok(MainlineDht { send: send }) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `send` [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/message/compact_info.rs:27:34 [INFO] [stderr] | [INFO] [stderr] 27 | Ok(CompactNodeInfo { nodes: nodes }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nodes` [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/message/compact_info.rs:95:31 [INFO] [stderr] | [INFO] [stderr] 95 | Ok(CompactValueInfo { values: values }) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `values` [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/message/request.rs:30:27 [INFO] [stderr] | [INFO] [stderr] 30 | RequestValidate { trans_id: trans_id } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/response.rs:21:28 [INFO] [stderr] | [INFO] [stderr] 21 | ResponseValidate { trans_id: trans_id } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/error.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [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/message/ping.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/ping.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/ping.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/ping.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/find_node.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/find_node.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/find_node.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | target_id: target_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `target_id` [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/message/find_node.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/find_node.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/get_peers.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/get_peers.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/get_peers.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | info_hash: info_hash, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `info_hash` [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/message/get_peers.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/get_peers.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/get_peers.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | token: token, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [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/message/get_peers.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | info_type: info_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `info_type` [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/message/announce_peer.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/announce_peer.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/announce_peer.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | info_hash: info_hash, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `info_hash` [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/message/announce_peer.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | token: token, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [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/message/announce_peer.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | port: port, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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/message/announce_peer.rs:131:13 [INFO] [stderr] | [INFO] [stderr] 131 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/announce_peer.rs:132:13 [INFO] [stderr] | [INFO] [stderr] 132 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/storage.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | address: address, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [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/storage.rs:172:13 [INFO] [stderr] | [INFO] [stderr] 172 | info_hash: info_hash, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `info_hash` [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/routing/node.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/routing/node.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/routing/node.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/routing/node.rs:68:13 [INFO] [stderr] | [INFO] [stderr] 68 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/routing/node.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/routing/node.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/routing/table.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | buckets: buckets, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `buckets` [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/routing/table.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/routing/table.rs:226:13 [INFO] [stderr] | [INFO] [stderr] 226 | buckets: buckets, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `buckets` [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/routing/table.rs:292:13 [INFO] [stderr] | [INFO] [stderr] 292 | buckets: buckets, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `buckets` [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/routing/table.rs:293:13 [INFO] [stderr] | [INFO] [stderr] 293 | current_iter: current_iter, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current_iter` [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/routing/table.rs:295:13 [INFO] [stderr] | [INFO] [stderr] 295 | start_index: start_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `start_index` [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/routing/table.rs:296:13 [INFO] [stderr] | [INFO] [stderr] 296 | assorted_nodes: assorted_nodes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assorted_nodes` [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/token.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | Token { token: token } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [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/token.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | curr_secret: curr_secret, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `curr_secret` [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/token.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | last_secret: last_secret, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `last_secret` [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/token.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | last_refresh: last_refresh, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `last_refresh` [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/transaction.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | next_alloc: next_alloc, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `next_alloc` [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/transaction.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | action_ids: action_ids, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `action_ids` [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/transaction.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | action_id: action_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `action_id` [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/transaction.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/transaction.rs:205:13 [INFO] [stderr] | [INFO] [stderr] 205 | trans_id_bytes: trans_id_bytes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id_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/worker/bootstrap.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | table_id: table_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `table_id` [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/worker/bootstrap.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | id_generator: id_generator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `id_generator` [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/worker/handler.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | read_only: read_only, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `read_only` [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/worker/handler.rs:148:13 [INFO] [stderr] | [INFO] [stderr] 148 | handshaker: handshaker, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `handshaker` [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/worker/handler.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | aid_generator: aid_generator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `aid_generator` [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/worker/handler.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | future_actions: future_actions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `future_actions` [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/worker/handler.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 160 | detached: detached, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `detached` [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/worker/lookup.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | table_id: table_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `table_id` [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/worker/lookup.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | target_id: target_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `target_id` [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/worker/lookup.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | id_generator: id_generator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `id_generator` [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/worker/lookup.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | will_announce: will_announce, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `will_announce` [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/worker/lookup.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | all_sorted_nodes: all_sorted_nodes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `all_sorted_nodes` [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/worker/refresh.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | id_generator: id_generator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `id_generator` [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/builder.rs:45:26 [INFO] [stderr] | [INFO] [stderr] 45 | Ok(MainlineDht { send: send }) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `send` [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/message/compact_info.rs:27:34 [INFO] [stderr] | [INFO] [stderr] 27 | Ok(CompactNodeInfo { nodes: nodes }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nodes` [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/message/compact_info.rs:95:31 [INFO] [stderr] | [INFO] [stderr] 95 | Ok(CompactValueInfo { values: values }) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `values` [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/message/request.rs:30:27 [INFO] [stderr] | [INFO] [stderr] 30 | RequestValidate { trans_id: trans_id } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/response.rs:21:28 [INFO] [stderr] | [INFO] [stderr] 21 | ResponseValidate { trans_id: trans_id } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/error.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [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/message/ping.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/ping.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/ping.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/ping.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/find_node.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/find_node.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/find_node.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | target_id: target_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `target_id` [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/message/find_node.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/find_node.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/get_peers.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/get_peers.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/get_peers.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | info_hash: info_hash, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `info_hash` [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/message/get_peers.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/get_peers.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/get_peers.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | token: token, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [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/message/get_peers.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | info_type: info_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `info_type` [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/message/announce_peer.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/announce_peer.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/message/announce_peer.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | info_hash: info_hash, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `info_hash` [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/message/announce_peer.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | token: token, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [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/message/announce_peer.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | port: port, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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/message/announce_peer.rs:131:13 [INFO] [stderr] | [INFO] [stderr] 131 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/message/announce_peer.rs:132:13 [INFO] [stderr] | [INFO] [stderr] 132 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/storage.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | address: address, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [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/storage.rs:172:13 [INFO] [stderr] | [INFO] [stderr] 172 | info_hash: info_hash, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `info_hash` [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/routing/node.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/routing/node.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/routing/node.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/routing/node.rs:68:13 [INFO] [stderr] | [INFO] [stderr] 68 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/routing/node.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/routing/node.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/routing/table.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | buckets: buckets, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `buckets` [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/routing/table.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_id` [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/routing/table.rs:226:13 [INFO] [stderr] | [INFO] [stderr] 226 | buckets: buckets, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `buckets` [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/routing/table.rs:292:13 [INFO] [stderr] | [INFO] [stderr] 292 | buckets: buckets, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `buckets` [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/routing/table.rs:293:13 [INFO] [stderr] | [INFO] [stderr] 293 | current_iter: current_iter, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current_iter` [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/routing/table.rs:295:13 [INFO] [stderr] | [INFO] [stderr] 295 | start_index: start_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `start_index` [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/routing/table.rs:296:13 [INFO] [stderr] | [INFO] [stderr] 296 | assorted_nodes: assorted_nodes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assorted_nodes` [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/token.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | Token { token: token } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [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/token.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | curr_secret: curr_secret, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `curr_secret` [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/token.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | last_secret: last_secret, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `last_secret` [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/token.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | last_refresh: last_refresh, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `last_refresh` [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/transaction.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | next_alloc: next_alloc, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `next_alloc` [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/transaction.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | action_ids: action_ids, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `action_ids` [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/transaction.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | action_id: action_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `action_id` [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/transaction.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | trans_id: trans_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id` [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/transaction.rs:205:13 [INFO] [stderr] | [INFO] [stderr] 205 | trans_id_bytes: trans_id_bytes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `trans_id_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/worker/bootstrap.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | table_id: table_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `table_id` [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/worker/bootstrap.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | id_generator: id_generator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `id_generator` [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/worker/handler.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | read_only: read_only, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `read_only` [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/worker/handler.rs:148:13 [INFO] [stderr] | [INFO] [stderr] 148 | handshaker: handshaker, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `handshaker` [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/worker/handler.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | aid_generator: aid_generator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `aid_generator` [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/worker/handler.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | future_actions: future_actions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `future_actions` [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/worker/handler.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 160 | detached: detached, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `detached` [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/worker/lookup.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | table_id: table_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `table_id` [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/worker/lookup.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | target_id: target_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `target_id` [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/worker/lookup.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | id_generator: id_generator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `id_generator` [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/worker/lookup.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | will_announce: will_announce, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `will_announce` [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/worker/lookup.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | all_sorted_nodes: all_sorted_nodes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `all_sorted_nodes` [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/worker/refresh.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | id_generator: id_generator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `id_generator` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/request.rs:12:30 [INFO] [stderr] | [INFO] [stderr] 12 | pub const REQUEST_ARGS_KEY: &'static str = "a"; [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] --> src/message/request.rs:15:27 [INFO] [stderr] | [INFO] [stderr] 15 | pub const PING_TYPE_KEY: &'static str = "ping"; [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] --> src/message/request.rs:16:32 [INFO] [stderr] | [INFO] [stderr] 16 | pub const FIND_NODE_TYPE_KEY: &'static str = "find_node"; [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] --> src/message/request.rs:17:32 [INFO] [stderr] | [INFO] [stderr] 17 | pub const GET_PEERS_TYPE_KEY: &'static str = "get_peers"; [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] --> src/message/request.rs:18:36 [INFO] [stderr] | [INFO] [stderr] 18 | pub const ANNOUNCE_PEER_TYPE_KEY: &'static str = "announce_peer"; [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] --> src/message/response.rs:11:31 [INFO] [stderr] | [INFO] [stderr] 11 | pub const RESPONSE_ARGS_KEY: &'static str = "r"; [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] --> src/message/error.rs:11:24 [INFO] [stderr] | [INFO] [stderr] 11 | const ERROR_ARGS_KEY: &'static str = "e"; [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] --> src/message/announce_peer.rs:11:18 [INFO] [stderr] | [INFO] [stderr] 11 | const PORT_KEY: &'static str = "port"; [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] --> src/message/announce_peer.rs:12:26 [INFO] [stderr] | [INFO] [stderr] 12 | const IMPLIED_PORT_KEY: &'static str = "implied_port"; [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] --> src/message/mod.rs:20:28 [INFO] [stderr] | [INFO] [stderr] 20 | const TRANSACTION_ID_KEY: &'static str = "t"; [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] --> src/message/mod.rs:21:26 [INFO] [stderr] | [INFO] [stderr] 21 | const MESSAGE_TYPE_KEY: &'static str = "y"; [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] --> src/message/mod.rs:25:26 [INFO] [stderr] | [INFO] [stderr] 25 | const REQUEST_TYPE_KEY: &'static str = "q"; [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] --> src/message/mod.rs:26:27 [INFO] [stderr] | [INFO] [stderr] 26 | const RESPONSE_TYPE_KEY: &'static str = "r"; [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] --> src/message/mod.rs:27:24 [INFO] [stderr] | [INFO] [stderr] 27 | const ERROR_TYPE_KEY: &'static str = "e"; [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] --> src/message/mod.rs:30:21 [INFO] [stderr] | [INFO] [stderr] 30 | const ROOT_ID_KEY: &'static str = "root"; [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] --> src/message/mod.rs:33:21 [INFO] [stderr] | [INFO] [stderr] 33 | const NODE_ID_KEY: &'static str = "id"; [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] --> src/message/mod.rs:34:19 [INFO] [stderr] | [INFO] [stderr] 34 | const NODES_KEY: &'static str = "nodes"; [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] --> src/message/mod.rs:35:20 [INFO] [stderr] | [INFO] [stderr] 35 | const VALUES_KEY: &'static str = "values"; [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] --> src/message/mod.rs:36:23 [INFO] [stderr] | [INFO] [stderr] 36 | const TARGET_ID_KEY: &'static str = "target"; [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] --> src/message/mod.rs:37:23 [INFO] [stderr] | [INFO] [stderr] 37 | const INFO_HASH_KEY: &'static str = "info_hash"; [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] --> src/message/mod.rs:38:19 [INFO] [stderr] | [INFO] [stderr] 38 | const TOKEN_KEY: &'static str = "token"; [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] --> src/router.rs:6:23 [INFO] [stderr] | [INFO] [stderr] 6 | const UTORRENT_DHT: (&'static str, u16) = ("router.utorrent.com", 6881); [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] --> src/router.rs:9:25 [INFO] [stderr] | [INFO] [stderr] 9 | const BITTORRENT_DHT: (&'static str, u16) = ("router.bittorrent.com", 6881); [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] --> src/router.rs:10:23 [INFO] [stderr] | [INFO] [stderr] 10 | const BITCOMET_DHT: (&'static str, u16) = ("router.bitcomet.com", 6881); [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] --> src/router.rs:11:27 [INFO] [stderr] | [INFO] [stderr] 11 | const TRANSMISSION_DHT: (&'static str, u16) = ("dht.transmissionbt.com", 6881); [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: long literal lacking separators [INFO] [stderr] --> src/security.rs:11:24 [INFO] [stderr] | [INFO] [stderr] 11 | const IPV4_MASK: u32 = 0x030F3FFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x030F_3FFF` [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/security.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | const IPV6_MASK: u64 = 0x0103070F1F3F7FFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0103_070F_1F3F_7FFF` [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: unneeded return statement [INFO] [stderr] --> src/worker/bootstrap.rs:276:13 [INFO] [stderr] | [INFO] [stderr] 276 | return BootstrapStatus::Completed; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `BootstrapStatus::Completed` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/worker/bootstrap.rs:280:13 [INFO] [stderr] | [INFO] [stderr] 280 | return BootstrapStatus::Bootstrapping; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `BootstrapStatus::Bootstrapping` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/worker/lookup.rs:230:13 [INFO] [stderr] | [INFO] [stderr] 230 | / if self.active_lookups.is_empty() { [INFO] [stderr] 231 | | if self.start_endgame_round(table, out, event_loop) == LookupStatus::Failed { [INFO] [stderr] 232 | | return LookupStatus::Failed; [INFO] [stderr] 233 | | } [INFO] [stderr] 234 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 230 | if self.active_lookups.is_empty() && self.start_endgame_round(table, out, event_loop) == LookupStatus::Failed { [INFO] [stderr] 231 | return LookupStatus::Failed; [INFO] [stderr] 232 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/worker/lookup.rs:259:13 [INFO] [stderr] | [INFO] [stderr] 259 | / if self.active_lookups.is_empty() { [INFO] [stderr] 260 | | if self.start_endgame_round(table, out, event_loop) == LookupStatus::Failed { [INFO] [stderr] 261 | | return LookupStatus::Failed; [INFO] [stderr] 262 | | } [INFO] [stderr] 263 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 259 | if self.active_lookups.is_empty() && self.start_endgame_round(table, out, event_loop) == LookupStatus::Failed { [INFO] [stderr] 260 | return LookupStatus::Failed; [INFO] [stderr] 261 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/request.rs:12:30 [INFO] [stderr] | [INFO] [stderr] 12 | pub const REQUEST_ARGS_KEY: &'static str = "a"; [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] --> src/message/request.rs:15:27 [INFO] [stderr] | [INFO] [stderr] 15 | pub const PING_TYPE_KEY: &'static str = "ping"; [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] --> src/message/request.rs:16:32 [INFO] [stderr] | [INFO] [stderr] 16 | pub const FIND_NODE_TYPE_KEY: &'static str = "find_node"; [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] --> src/message/request.rs:17:32 [INFO] [stderr] | [INFO] [stderr] 17 | pub const GET_PEERS_TYPE_KEY: &'static str = "get_peers"; [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] --> src/message/request.rs:18:36 [INFO] [stderr] | [INFO] [stderr] 18 | pub const ANNOUNCE_PEER_TYPE_KEY: &'static str = "announce_peer"; [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] --> src/message/response.rs:11:31 [INFO] [stderr] | [INFO] [stderr] 11 | pub const RESPONSE_ARGS_KEY: &'static str = "r"; [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] --> src/message/error.rs:11:24 [INFO] [stderr] | [INFO] [stderr] 11 | const ERROR_ARGS_KEY: &'static str = "e"; [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] --> src/message/announce_peer.rs:11:18 [INFO] [stderr] | [INFO] [stderr] 11 | const PORT_KEY: &'static str = "port"; [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] --> src/message/announce_peer.rs:12:26 [INFO] [stderr] | [INFO] [stderr] 12 | const IMPLIED_PORT_KEY: &'static str = "implied_port"; [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] --> src/message/mod.rs:20:28 [INFO] [stderr] | [INFO] [stderr] 20 | const TRANSACTION_ID_KEY: &'static str = "t"; [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] --> src/message/mod.rs:21:26 [INFO] [stderr] | [INFO] [stderr] 21 | const MESSAGE_TYPE_KEY: &'static str = "y"; [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] --> src/message/mod.rs:25:26 [INFO] [stderr] | [INFO] [stderr] 25 | const REQUEST_TYPE_KEY: &'static str = "q"; [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] --> src/message/mod.rs:26:27 [INFO] [stderr] | [INFO] [stderr] 26 | const RESPONSE_TYPE_KEY: &'static str = "r"; [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] --> src/message/mod.rs:27:24 [INFO] [stderr] | [INFO] [stderr] 27 | const ERROR_TYPE_KEY: &'static str = "e"; [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] --> src/message/mod.rs:30:21 [INFO] [stderr] | [INFO] [stderr] 30 | const ROOT_ID_KEY: &'static str = "root"; [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] --> src/message/mod.rs:33:21 [INFO] [stderr] | [INFO] [stderr] 33 | const NODE_ID_KEY: &'static str = "id"; [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] --> src/message/mod.rs:34:19 [INFO] [stderr] | [INFO] [stderr] 34 | const NODES_KEY: &'static str = "nodes"; [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] --> src/message/mod.rs:35:20 [INFO] [stderr] | [INFO] [stderr] 35 | const VALUES_KEY: &'static str = "values"; [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] --> src/message/mod.rs:36:23 [INFO] [stderr] | [INFO] [stderr] 36 | const TARGET_ID_KEY: &'static str = "target"; [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] --> src/message/mod.rs:37:23 [INFO] [stderr] | [INFO] [stderr] 37 | const INFO_HASH_KEY: &'static str = "info_hash"; [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] --> src/message/mod.rs:38:19 [INFO] [stderr] | [INFO] [stderr] 38 | const TOKEN_KEY: &'static str = "token"; [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] --> src/router.rs:6:23 [INFO] [stderr] | [INFO] [stderr] 6 | const UTORRENT_DHT: (&'static str, u16) = ("router.utorrent.com", 6881); [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] --> src/router.rs:9:25 [INFO] [stderr] | [INFO] [stderr] 9 | const BITTORRENT_DHT: (&'static str, u16) = ("router.bittorrent.com", 6881); [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] --> src/router.rs:10:23 [INFO] [stderr] | [INFO] [stderr] 10 | const BITCOMET_DHT: (&'static str, u16) = ("router.bitcomet.com", 6881); [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] --> src/router.rs:11:27 [INFO] [stderr] | [INFO] [stderr] 11 | const TRANSMISSION_DHT: (&'static str, u16) = ("dht.transmissionbt.com", 6881); [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: long literal lacking separators [INFO] [stderr] --> src/security.rs:11:24 [INFO] [stderr] | [INFO] [stderr] 11 | const IPV4_MASK: u32 = 0x030F3FFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x030F_3FFF` [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/security.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | const IPV6_MASK: u64 = 0x0103070F1F3F7FFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0103_070F_1F3F_7FFF` [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: unneeded return statement [INFO] [stderr] --> src/worker/bootstrap.rs:276:13 [INFO] [stderr] | [INFO] [stderr] 276 | return BootstrapStatus::Completed; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `BootstrapStatus::Completed` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/worker/bootstrap.rs:280:13 [INFO] [stderr] | [INFO] [stderr] 280 | return BootstrapStatus::Bootstrapping; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `BootstrapStatus::Bootstrapping` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/worker/lookup.rs:230:13 [INFO] [stderr] | [INFO] [stderr] 230 | / if self.active_lookups.is_empty() { [INFO] [stderr] 231 | | if self.start_endgame_round(table, out, event_loop) == LookupStatus::Failed { [INFO] [stderr] 232 | | return LookupStatus::Failed; [INFO] [stderr] 233 | | } [INFO] [stderr] 234 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 230 | if self.active_lookups.is_empty() && self.start_endgame_round(table, out, event_loop) == LookupStatus::Failed { [INFO] [stderr] 231 | return LookupStatus::Failed; [INFO] [stderr] 232 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/worker/lookup.rs:259:13 [INFO] [stderr] | [INFO] [stderr] 259 | / if self.active_lookups.is_empty() { [INFO] [stderr] 260 | | if self.start_endgame_round(table, out, event_loop) == LookupStatus::Failed { [INFO] [stderr] 261 | | return LookupStatus::Failed; [INFO] [stderr] 262 | | } [INFO] [stderr] 263 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 259 | if self.active_lookups.is_empty() && self.start_endgame_round(table, out, event_loop) == LookupStatus::Failed { [INFO] [stderr] 260 | return LookupStatus::Failed; [INFO] [stderr] 261 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/message/compact_info.rs:159:17 [INFO] [stderr] | [INFO] [stderr] 159 | port |= bytes[4] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(bytes[4])` [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/message/compact_info.rs:161:17 [INFO] [stderr] | [INFO] [stderr] 161 | port |= bytes[5] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(bytes[5])` [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 argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/message/error.rs:60:31 [INFO] [stderr] | [INFO] [stderr] 60 | fn extract_error_args<'a>(&self, args: &[Bencode<'a>]) -> DhtResult<(u8, &'a str)> { [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/message/error.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | / pub fn transaction_id<'b>(&'b self) -> &'b [u8] { [INFO] [stderr] 126 | | &self.trans_id [INFO] [stderr] 127 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/message/error.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | / pub fn error_message<'b>(&'b self) -> &'b str { [INFO] [stderr] 134 | | &self.message [INFO] [stderr] 135 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/error.rs:138:26 [INFO] [stderr] | [INFO] [stderr] 138 | let error_code = Into::::into(self.code) as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(Into::::into(self.code))` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/message/get_peers.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | / match self.token { [INFO] [stderr] 163 | | Some(token) => { [INFO] [stderr] 164 | | response_args.insert(message::TOKEN_KEY.as_bytes(), ben_bytes!(token)); [INFO] [stderr] 165 | | } [INFO] [stderr] 166 | | None => (), [INFO] [stderr] 167 | | }; [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] 162 | if let Some(token) = self.token { [INFO] [stderr] 163 | response_args.insert(message::TOKEN_KEY.as_bytes(), ben_bytes!(token)); [INFO] [stderr] 164 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/announce_peer.rs:114:38 [INFO] [stderr] | [INFO] [stderr] 114 | PORT_KEY => ben_int!(displayed_port as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(displayed_port)` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/router.rs:47:14 [INFO] [stderr] | [INFO] [stderr] 47 | .ok_or(Error::new(ErrorKind::Other, "No IPv4 Addresses Found For Host")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| Error::new(ErrorKind::Other, "No IPv4 Addresses Found For Host"))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/router.rs:55:14 [INFO] [stderr] | [INFO] [stderr] 55 | .ok_or(Error::new(ErrorKind::Other, "No IPv6 Addresses Found For Host")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| Error::new(ErrorKind::Other, "No IPv6 Addresses Found For Host"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/router.rs:61:22 [INFO] [stderr] | [INFO] [stderr] 61 | addrs.next().ok_or(Error::new(ErrorKind::Other, "No SocketAddresses Found For Host")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| Error::new(ErrorKind::Other, "No SocketAddresses Found For Host"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/router.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | / match self { [INFO] [stderr] 66 | | &Router::uTorrent => UTORRENT_DHT.to_socket_addrs(), [INFO] [stderr] 67 | | &Router::BitTorrent => BITTORRENT_DHT.to_socket_addrs(), [INFO] [stderr] 68 | | &Router::BitComet => BITCOMET_DHT.to_socket_addrs(), [INFO] [stderr] ... | [INFO] [stderr] 73 | | } [INFO] [stderr] 74 | | } [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] 65 | match *self { [INFO] [stderr] 66 | Router::uTorrent => UTORRENT_DHT.to_socket_addrs(), [INFO] [stderr] 67 | Router::BitTorrent => BITTORRENT_DHT.to_socket_addrs(), [INFO] [stderr] 68 | Router::BitComet => BITCOMET_DHT.to_socket_addrs(), [INFO] [stderr] 69 | Router::Transmission => TRANSMISSION_DHT.to_socket_addrs(), [INFO] [stderr] 70 | Router::Custom(addr) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:25:40 [INFO] [stderr] | [INFO] [stderr] 25 | NodeId::from(generate_compliant_id(masked_ipv4_be as u64, 4, rand)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(masked_ipv4_be)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:57:24 [INFO] [stderr] | [INFO] [stderr] 57 | let masked_ip_be = mask_ipv4_be(addr) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(mask_ipv4_be(addr))` [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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:87:42 [INFO] [stderr] | [INFO] [stderr] 87 | let rand_masked_ip = masked_ip_be | ((r as u64) << (ip_bits_used - 3)); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(r)` [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: the operation is ineffective. Consider reducing it to `id_bytes[2]` [INFO] [stderr] --> src/security.rs:114:23 [INFO] [stderr] | [INFO] [stderr] 114 | let mid_id_bits = (id_bytes[2] >> 0) & 0xF8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/bucket.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / pub fn good_nodes<'a>(&'a self) -> GoodNodes<'a> { [INFO] [stderr] 42 | | GoodNodes::new(&self.nodes) [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/bucket.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn pingable_nodes<'a>(&'a self) -> PingableNodes<'a> { [INFO] [stderr] 47 | | PingableNodes::new(&self.nodes) [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/routing/bucket.rs:59:26 [INFO] [stderr] | [INFO] [stderr] 59 | self.nodes.iter().fold(true, |prev, node| prev && node.status() != NodeStatus::Good) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.all(|node| node.status() != NodeStatus::Good)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/routing/bucket.rs:109:28 [INFO] [stderr] | [INFO] [stderr] 109 | fn good_nodes_filter(node: &&Node) -> bool { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `&Node` [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/routing/bucket.rs:133:32 [INFO] [stderr] | [INFO] [stderr] 133 | fn pingable_nodes_filter(node: &&Node) -> bool { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `&Node` [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: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/routing/node.rs:50:20 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn as_good(id: NodeId, addr: SocketAddr) -> Node { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/routing/node.rs:61:28 [INFO] [stderr] | [INFO] [stderr] 61 | pub fn as_questionable(id: NodeId, addr: SocketAddr) -> Node { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/routing/node.rs:76:19 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn as_bad(id: NodeId, addr: SocketAddr) -> Node { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/table.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn closest_nodes<'a>(&'a self, node_id: NodeId) -> ClosestNodes<'a> { [INFO] [stderr] 47 | | ClosestNodes::new(&self.buckets, self.node_id, node_id) [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/table.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn buckets<'a>(&'a self) -> Buckets<'a> { [INFO] [stderr] 52 | | Buckets::new(&self.buckets) [INFO] [stderr] 53 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> src/routing/table.rs:60:52 [INFO] [stderr] | [INFO] [stderr] 60 | let opt_bucket_contents = if let Some(c) = self.buckets().skip(bucket_index).next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_skip_next)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/routing/table.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | / match c { [INFO] [stderr] 67 | | &BucketContents::Empty => false, [INFO] [stderr] 68 | | &BucketContents::Sorted(_) => false, [INFO] [stderr] 69 | | &BucketContents::Assorted(_) => true, [INFO] [stderr] 70 | | } [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] 66 | match *c { [INFO] [stderr] 67 | BucketContents::Empty => false, [INFO] [stderr] 68 | BucketContents::Sorted(_) => false, [INFO] [stderr] 69 | BucketContents::Assorted(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/routing/table.rs:194:9 [INFO] [stderr] | [INFO] [stderr] 194 | / match self { [INFO] [stderr] 195 | | &BucketContents::Empty => true, [INFO] [stderr] 196 | | _ => false, [INFO] [stderr] 197 | | } [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] 194 | match *self { [INFO] [stderr] 195 | BucketContents::Empty => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/routing/table.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | / match self { [INFO] [stderr] 202 | | &BucketContents::Sorted(_) => true, [INFO] [stderr] 203 | | _ => false, [INFO] [stderr] 204 | | } [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] 201 | match *self { [INFO] [stderr] 202 | BucketContents::Sorted(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/routing/table.rs:208:9 [INFO] [stderr] | [INFO] [stderr] 208 | / match self { [INFO] [stderr] 209 | | &BucketContents::Assorted(_) => true, [INFO] [stderr] 210 | | _ => false, [INFO] [stderr] 211 | | } [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] 208 | match *self { [INFO] [stderr] 209 | BucketContents::Assorted(_) => true, [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/routing/table.rs:309:13 [INFO] [stderr] | [INFO] [stderr] 309 | / match iter.next() { [INFO] [stderr] 310 | | Some(node) => return Some(node), [INFO] [stderr] 311 | | None => (), [INFO] [stderr] 312 | | }; [INFO] [stderr] | |_____________^ help: try this: `if let Some(node) = iter.next() { return Some(node) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [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/routing/table.rs:319:13 [INFO] [stderr] | [INFO] [stderr] 319 | / match nodes_iter.find(|tup| tup.0 == current_index && !tup.2) { [INFO] [stderr] 320 | | Some(node) => { [INFO] [stderr] 321 | | node.2 = true; [INFO] [stderr] 322 | | [INFO] [stderr] ... | [INFO] [stderr] 325 | | None => (), [INFO] [stderr] 326 | | }; [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] 319 | if let Some(node) = nodes_iter.find(|tup| tup.0 == current_index && !tup.2) { [INFO] [stderr] 320 | node.2 = true; [INFO] [stderr] 321 | [INFO] [stderr] 322 | return Some(node.1); [INFO] [stderr] 323 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/table.rs:344:1 [INFO] [stderr] | [INFO] [stderr] 344 | / fn precompute_assorted_nodes<'a>(buckets: &'a [Bucket], [INFO] [stderr] 345 | | self_node_id: NodeId) [INFO] [stderr] 346 | | -> Option<[(usize, &'a Node, bool); bucket::MAX_BUCKET_SIZE]> { [INFO] [stderr] 347 | | if buckets.len() == MAX_BUCKETS { [INFO] [stderr] ... | [INFO] [stderr] 367 | | } [INFO] [stderr] 368 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/table.rs:371:1 [INFO] [stderr] | [INFO] [stderr] 371 | / fn bucket_iterator<'a>(buckets: &'a [Bucket], index: usize) -> Option> { [INFO] [stderr] 372 | | if buckets.len() == MAX_BUCKETS { [INFO] [stderr] 373 | | buckets [INFO] [stderr] 374 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 378 | | .map(|bucket| good_node_filter(bucket.iter())) [INFO] [stderr] 379 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/table.rs:382:1 [INFO] [stderr] | [INFO] [stderr] 382 | / fn good_node_filter<'a>(iter: Iter<'a, Node>) -> GoodNodes<'a> { [INFO] [stderr] 383 | | iter.filter(is_good_node) [INFO] [stderr] 384 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/routing/table.rs:387:23 [INFO] [stderr] | [INFO] [stderr] 387 | fn is_good_node(node: &&Node) -> bool { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `&Node` [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 are using an explicit closure for cloning elements [INFO] [stderr] --> src/transaction.rs:83:29 [INFO] [stderr] | [INFO] [stderr] 83 | let opt_action_id = self.action_ids.get(self.curr_index).map(|a| *a); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.action_ids.get(self.curr_index).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/transaction.rs:151:30 [INFO] [stderr] | [INFO] [stderr] 151 | let opt_message_id = self.message_ids.get(self.curr_index).map(|m| *m); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.message_ids.get(self.curr_index).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/message/compact_info.rs:159:17 [INFO] [stderr] | [INFO] [stderr] 159 | port |= bytes[4] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(bytes[4])` [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/message/compact_info.rs:161:17 [INFO] [stderr] | [INFO] [stderr] 161 | port |= bytes[5] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(bytes[5])` [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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/transaction.rs:218:25 [INFO] [stderr] | [INFO] [stderr] 218 | trans_id |= *byte as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(*byte)` [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/worker/bootstrap.rs:107:26 [INFO] [stderr] | [INFO] [stderr] 107 | pub fn recv_response<'a, H>(&mut self, [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: large size difference between variants [INFO] [stderr] --> src/worker/handler.rs:104:5 [INFO] [stderr] | [INFO] [stderr] 104 | Refresh(TableRefresh, TransactionID), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/worker/handler.rs:104:5 [INFO] [stderr] | [INFO] [stderr] 104 | Refresh(TableRefresh, TransactionID), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 54 [INFO] [stderr] --> src/worker/handler.rs:330:1 [INFO] [stderr] | [INFO] [stderr] 330 | / fn handle_incoming(handler: &mut DhtHandler, [INFO] [stderr] 331 | | event_loop: &mut EventLoop>, [INFO] [stderr] 332 | | buffer: &[u8], [INFO] [stderr] 333 | | addr: SocketAddr) [INFO] [stderr] ... | [INFO] [stderr] 707 | | } [INFO] [stderr] 708 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/message/error.rs:60:31 [INFO] [stderr] | [INFO] [stderr] 60 | fn extract_error_args<'a>(&self, args: &[Bencode<'a>]) -> DhtResult<(u8, &'a str)> { [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/message/error.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | / pub fn transaction_id<'b>(&'b self) -> &'b [u8] { [INFO] [stderr] 126 | | &self.trans_id [INFO] [stderr] 127 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/message/error.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | / pub fn error_message<'b>(&'b self) -> &'b str { [INFO] [stderr] 134 | | &self.message [INFO] [stderr] 135 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/error.rs:138:26 [INFO] [stderr] | [INFO] [stderr] 138 | let error_code = Into::::into(self.code) as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(Into::::into(self.code))` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/worker/handler.rs:370:9 [INFO] [stderr] | [INFO] [stderr] 370 | / match message { [INFO] [stderr] 371 | | Ok(MessageType::Request(_)) => return, [INFO] [stderr] 372 | | _ => (), [INFO] [stderr] 373 | | } [INFO] [stderr] | |_________^ help: try this: `if let Ok(MessageType::Request(_)) = message { return }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/handler.rs:383:13 [INFO] [stderr] | [INFO] [stderr] 383 | work_storage.routing_table.find_node(&node).map(|n| n.remote_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = work_storage.routing_table.find_node(&node) { n.remote_request() }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/handler.rs:399:13 [INFO] [stderr] | [INFO] [stderr] 399 | work_storage.routing_table.find_node(&node).map(|n| n.remote_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = work_storage.routing_table.find_node(&node) { n.remote_request() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/handler.rs:423:13 [INFO] [stderr] | [INFO] [stderr] 423 | work_storage.routing_table.find_node(&node).map(|n| n.remote_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = work_storage.routing_table.find_node(&node) { n.remote_request() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/handler.rs:491:13 [INFO] [stderr] | [INFO] [stderr] 491 | work_storage.routing_table.find_node(&node).map(|n| n.remote_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = work_storage.routing_table.find_node(&node) { n.remote_request() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/worker/handler.rs:723:48 [INFO] [stderr] | [INFO] [stderr] 723 | .filter_map(|r| r.ipv4_addr().ok().map(|v4| SocketAddr::V4(v4))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SocketAddr::V4` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/message/get_peers.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | / match self.token { [INFO] [stderr] 163 | | Some(token) => { [INFO] [stderr] 164 | | response_args.insert(message::TOKEN_KEY.as_bytes(), ben_bytes!(token)); [INFO] [stderr] 165 | | } [INFO] [stderr] 166 | | None => (), [INFO] [stderr] 167 | | }; [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] 162 | if let Some(token) = self.token { [INFO] [stderr] 163 | response_args.insert(message::TOKEN_KEY.as_bytes(), ben_bytes!(token)); [INFO] [stderr] 164 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/announce_peer.rs:114:38 [INFO] [stderr] | [INFO] [stderr] 114 | PORT_KEY => ben_int!(displayed_port as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(displayed_port)` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/router.rs:47:14 [INFO] [stderr] | [INFO] [stderr] 47 | .ok_or(Error::new(ErrorKind::Other, "No IPv4 Addresses Found For Host")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| Error::new(ErrorKind::Other, "No IPv4 Addresses Found For Host"))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/router.rs:55:14 [INFO] [stderr] | [INFO] [stderr] 55 | .ok_or(Error::new(ErrorKind::Other, "No IPv6 Addresses Found For Host")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| Error::new(ErrorKind::Other, "No IPv6 Addresses Found For Host"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/router.rs:61:22 [INFO] [stderr] | [INFO] [stderr] 61 | addrs.next().ok_or(Error::new(ErrorKind::Other, "No SocketAddresses Found For Host")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| Error::new(ErrorKind::Other, "No SocketAddresses Found For Host"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/router.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | / match self { [INFO] [stderr] 66 | | &Router::uTorrent => UTORRENT_DHT.to_socket_addrs(), [INFO] [stderr] 67 | | &Router::BitTorrent => BITTORRENT_DHT.to_socket_addrs(), [INFO] [stderr] 68 | | &Router::BitComet => BITCOMET_DHT.to_socket_addrs(), [INFO] [stderr] ... | [INFO] [stderr] 73 | | } [INFO] [stderr] 74 | | } [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] 65 | match *self { [INFO] [stderr] 66 | Router::uTorrent => UTORRENT_DHT.to_socket_addrs(), [INFO] [stderr] 67 | Router::BitTorrent => BITTORRENT_DHT.to_socket_addrs(), [INFO] [stderr] 68 | Router::BitComet => BITCOMET_DHT.to_socket_addrs(), [INFO] [stderr] 69 | Router::Transmission => TRANSMISSION_DHT.to_socket_addrs(), [INFO] [stderr] 70 | Router::Custom(addr) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:25:40 [INFO] [stderr] | [INFO] [stderr] 25 | NodeId::from(generate_compliant_id(masked_ipv4_be as u64, 4, rand)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(masked_ipv4_be)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:57:24 [INFO] [stderr] | [INFO] [stderr] 57 | let masked_ip_be = mask_ipv4_be(addr) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(mask_ipv4_be(addr))` [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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:87:42 [INFO] [stderr] | [INFO] [stderr] 87 | let rand_masked_ip = masked_ip_be | ((r as u64) << (ip_bits_used - 3)); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(r)` [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: the operation is ineffective. Consider reducing it to `id_bytes[2]` [INFO] [stderr] --> src/security.rs:114:23 [INFO] [stderr] | [INFO] [stderr] 114 | let mid_id_bits = (id_bytes[2] >> 0) & 0xF8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/worker/lookup.rs:193:37 [INFO] [stderr] | [INFO] [stderr] 193 | let will_ping = iterate_nodes.iter().find(|&&(ref n, _)| n == &node).is_some(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|&&(ref n, _)| n == &node).is_some()` with `any(|&&(ref n, _)| n == &node)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:157:28 [INFO] [stderr] | [INFO] [stderr] 157 | let masked_ip_be = super::mask_ipv4_be(ipv4_addr) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(super::mask_ipv4_be(ipv4_addr))` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:172:28 [INFO] [stderr] | [INFO] [stderr] 172 | let masked_ip_be = super::mask_ipv4_be(ipv4_addr) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(super::mask_ipv4_be(ipv4_addr))` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:187:28 [INFO] [stderr] | [INFO] [stderr] 187 | let masked_ip_be = super::mask_ipv4_be(ipv4_addr) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(super::mask_ipv4_be(ipv4_addr))` [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: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/lookup.rs:304:21 [INFO] [stderr] | [INFO] [stderr] 304 | table.find_node(node).map(|n| n.local_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = table.find_node(node) { n.local_request() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/lookup.rs:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | table.find_node(node).map(|n| n.local_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = table.find_node(node) { n.local_request() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:202:28 [INFO] [stderr] | [INFO] [stderr] 202 | let masked_ip_be = super::mask_ipv4_be(ipv4_addr) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(super::mask_ipv4_be(ipv4_addr))` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:217:28 [INFO] [stderr] | [INFO] [stderr] 217 | let masked_ip_be = super::mask_ipv4_be(ipv4_addr) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(super::mask_ipv4_be(ipv4_addr))` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:254:28 [INFO] [stderr] | [INFO] [stderr] 254 | let masked_ip_be = super::mask_ipv4_be(ip_addr) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(super::mask_ipv4_be(ip_addr))` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:283:28 [INFO] [stderr] | [INFO] [stderr] 283 | let masked_ip_be = super::mask_ipv4_be(ip_addr) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(super::mask_ipv4_be(ip_addr))` [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: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/lookup.rs:423:17 [INFO] [stderr] | [INFO] [stderr] 423 | table.find_node(node).map(|n| n.local_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = table.find_node(node) { n.local_request() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:312:28 [INFO] [stderr] | [INFO] [stderr] 312 | let masked_ip_be = super::mask_ipv4_be(ip_addr) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(super::mask_ipv4_be(ip_addr))` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:341:28 [INFO] [stderr] | [INFO] [stderr] 341 | let masked_ip_be = super::mask_ipv4_be(ip_addr) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(super::mask_ipv4_be(ip_addr))` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/security.rs:370:28 [INFO] [stderr] | [INFO] [stderr] 370 | let masked_ip_be = super::mask_ipv4_be(ip_addr) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(super::mask_ipv4_be(ip_addr))` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/bucket.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / pub fn good_nodes<'a>(&'a self) -> GoodNodes<'a> { [INFO] [stderr] 42 | | GoodNodes::new(&self.nodes) [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/bucket.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn pingable_nodes<'a>(&'a self) -> PingableNodes<'a> { [INFO] [stderr] 47 | | PingableNodes::new(&self.nodes) [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/routing/bucket.rs:59:26 [INFO] [stderr] | [INFO] [stderr] 59 | self.nodes.iter().fold(true, |prev, node| prev && node.status() != NodeStatus::Good) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.all(|node| node.status() != NodeStatus::Good)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/routing/bucket.rs:109:28 [INFO] [stderr] | [INFO] [stderr] 109 | fn good_nodes_filter(node: &&Node) -> bool { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `&Node` [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/routing/bucket.rs:133:32 [INFO] [stderr] | [INFO] [stderr] 133 | fn pingable_nodes_filter(node: &&Node) -> bool { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `&Node` [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: the loop variable `index` is only used to index `dummy_ids`. [INFO] [stderr] --> src/routing/bucket.rs:172:22 [INFO] [stderr] | [INFO] [stderr] 172 | for index in 0..super::MAX_BUCKET_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 172 | for in dummy_ids.iter().take(super::MAX_BUCKET_SIZE) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is only used to index `dummy_ids`. [INFO] [stderr] --> src/routing/bucket.rs:187:22 [INFO] [stderr] | [INFO] [stderr] 187 | for index in 0..super::MAX_BUCKET_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 187 | for in dummy_ids.iter().take(super::MAX_BUCKET_SIZE) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is only used to index `dummy_ids`. [INFO] [stderr] --> src/routing/bucket.rs:202:22 [INFO] [stderr] | [INFO] [stderr] 202 | for index in 0..super::MAX_BUCKET_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 202 | for in dummy_ids.iter().take(super::MAX_BUCKET_SIZE) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is only used to index `dummy_ids`. [INFO] [stderr] --> src/routing/bucket.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | for index in 0..super::MAX_BUCKET_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 224 | for in dummy_ids.iter().take(super::MAX_BUCKET_SIZE) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is only used to index `dummy_ids`. [INFO] [stderr] --> src/routing/bucket.rs:252:22 [INFO] [stderr] | [INFO] [stderr] 252 | for index in 0..super::MAX_BUCKET_SIZE { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 252 | for in dummy_ids.iter().take(super::MAX_BUCKET_SIZE) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/routing/node.rs:50:20 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn as_good(id: NodeId, addr: SocketAddr) -> Node { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/routing/node.rs:61:28 [INFO] [stderr] | [INFO] [stderr] 61 | pub fn as_questionable(id: NodeId, addr: SocketAddr) -> Node { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/routing/node.rs:76:19 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn as_bad(id: NodeId, addr: SocketAddr) -> Node { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/routing/node.rs:353:17 [INFO] [stderr] | [INFO] [stderr] 353 | assert!(NodeStatus::Good == NodeStatus::Good); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/routing/node.rs:360:17 [INFO] [stderr] | [INFO] [stderr] 360 | assert!(NodeStatus::Questionable == NodeStatus::Questionable); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/routing/node.rs:367:17 [INFO] [stderr] | [INFO] [stderr] 367 | assert!(NodeStatus::Bad == NodeStatus::Bad); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/table.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn closest_nodes<'a>(&'a self, node_id: NodeId) -> ClosestNodes<'a> { [INFO] [stderr] 47 | | ClosestNodes::new(&self.buckets, self.node_id, node_id) [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/table.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn buckets<'a>(&'a self) -> Buckets<'a> { [INFO] [stderr] 52 | | Buckets::new(&self.buckets) [INFO] [stderr] 53 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> src/routing/table.rs:60:52 [INFO] [stderr] | [INFO] [stderr] 60 | let opt_bucket_contents = if let Some(c) = self.buckets().skip(bucket_index).next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_skip_next)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/routing/table.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | / match c { [INFO] [stderr] 67 | | &BucketContents::Empty => false, [INFO] [stderr] 68 | | &BucketContents::Sorted(_) => false, [INFO] [stderr] 69 | | &BucketContents::Assorted(_) => true, [INFO] [stderr] 70 | | } [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] 66 | match *c { [INFO] [stderr] 67 | BucketContents::Empty => false, [INFO] [stderr] 68 | BucketContents::Sorted(_) => false, [INFO] [stderr] 69 | BucketContents::Assorted(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/routing/table.rs:194:9 [INFO] [stderr] | [INFO] [stderr] 194 | / match self { [INFO] [stderr] 195 | | &BucketContents::Empty => true, [INFO] [stderr] 196 | | _ => false, [INFO] [stderr] 197 | | } [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] 194 | match *self { [INFO] [stderr] 195 | BucketContents::Empty => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/routing/table.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | / match self { [INFO] [stderr] 202 | | &BucketContents::Sorted(_) => true, [INFO] [stderr] 203 | | _ => false, [INFO] [stderr] 204 | | } [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] 201 | match *self { [INFO] [stderr] 202 | BucketContents::Sorted(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/routing/table.rs:208:9 [INFO] [stderr] | [INFO] [stderr] 208 | / match self { [INFO] [stderr] 209 | | &BucketContents::Assorted(_) => true, [INFO] [stderr] 210 | | _ => false, [INFO] [stderr] 211 | | } [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] 208 | match *self { [INFO] [stderr] 209 | BucketContents::Assorted(_) => true, [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/routing/table.rs:309:13 [INFO] [stderr] | [INFO] [stderr] 309 | / match iter.next() { [INFO] [stderr] 310 | | Some(node) => return Some(node), [INFO] [stderr] 311 | | None => (), [INFO] [stderr] 312 | | }; [INFO] [stderr] | |_____________^ help: try this: `if let Some(node) = iter.next() { return Some(node) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [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/routing/table.rs:319:13 [INFO] [stderr] | [INFO] [stderr] 319 | / match nodes_iter.find(|tup| tup.0 == current_index && !tup.2) { [INFO] [stderr] 320 | | Some(node) => { [INFO] [stderr] 321 | | node.2 = true; [INFO] [stderr] 322 | | [INFO] [stderr] ... | [INFO] [stderr] 325 | | None => (), [INFO] [stderr] 326 | | }; [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] 319 | if let Some(node) = nodes_iter.find(|tup| tup.0 == current_index && !tup.2) { [INFO] [stderr] 320 | node.2 = true; [INFO] [stderr] 321 | [INFO] [stderr] 322 | return Some(node.1); [INFO] [stderr] 323 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/table.rs:344:1 [INFO] [stderr] | [INFO] [stderr] 344 | / fn precompute_assorted_nodes<'a>(buckets: &'a [Bucket], [INFO] [stderr] 345 | | self_node_id: NodeId) [INFO] [stderr] 346 | | -> Option<[(usize, &'a Node, bool); bucket::MAX_BUCKET_SIZE]> { [INFO] [stderr] 347 | | if buckets.len() == MAX_BUCKETS { [INFO] [stderr] ... | [INFO] [stderr] 367 | | } [INFO] [stderr] 368 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/table.rs:371:1 [INFO] [stderr] | [INFO] [stderr] 371 | / fn bucket_iterator<'a>(buckets: &'a [Bucket], index: usize) -> Option> { [INFO] [stderr] 372 | | if buckets.len() == MAX_BUCKETS { [INFO] [stderr] 373 | | buckets [INFO] [stderr] 374 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 378 | | .map(|bucket| good_node_filter(bucket.iter())) [INFO] [stderr] 379 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/routing/table.rs:382:1 [INFO] [stderr] | [INFO] [stderr] 382 | / fn good_node_filter<'a>(iter: Iter<'a, Node>) -> GoodNodes<'a> { [INFO] [stderr] 383 | | iter.filter(is_good_node) [INFO] [stderr] 384 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/routing/table.rs:387:23 [INFO] [stderr] | [INFO] [stderr] 387 | fn is_good_node(node: &&Node) -> bool { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `&Node` [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: the loop variable `index` is only used to index `block_addrs`. [INFO] [stderr] --> src/routing/table.rs:483:22 [INFO] [stderr] | [INFO] [stderr] 483 | for index in 0..(bucket::MAX_BUCKET_SIZE + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 483 | for in block_addrs.iter().take((bucket::MAX_BUCKET_SIZE + 1)) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/routing/table.rs:483:22 [INFO] [stderr] | [INFO] [stderr] 483 | for index in 0..(bucket::MAX_BUCKET_SIZE + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=bucket::MAX_BUCKET_SIZE` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/routing/table.rs:499:38 [INFO] [stderr] | [INFO] [stderr] 499 | .take(table::MAX_BUCKETS) [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 500 | | .fold(true, |prev, contents| prev && contents.is_empty())); [INFO] [stderr] | |_____________________________________________________________________^ help: try: `.all(|contents| contents.is_empty())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is only used to index `block_addrs`. [INFO] [stderr] --> src/routing/table.rs:522:22 [INFO] [stderr] | [INFO] [stderr] 522 | for index in 0..(bucket::MAX_BUCKET_SIZE + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 522 | for in block_addrs.iter().take((bucket::MAX_BUCKET_SIZE + 1)) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/routing/table.rs:522:22 [INFO] [stderr] | [INFO] [stderr] 522 | for index in 0..(bucket::MAX_BUCKET_SIZE + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=bucket::MAX_BUCKET_SIZE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/routing/table.rs:544:42 [INFO] [stderr] | [INFO] [stderr] 544 | .take(table::MAX_BUCKETS - 1) [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 545 | | .fold(true, |prev, contents| prev && contents.is_empty())); [INFO] [stderr] | |_____________________________________________________________________^ help: try: `.all(|contents| contents.is_empty())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is only used to index `block_addrs`. [INFO] [stderr] --> src/routing/table.rs:567:22 [INFO] [stderr] | [INFO] [stderr] 567 | for index in 0..(bucket::MAX_BUCKET_SIZE + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 567 | for in block_addrs.iter().take((bucket::MAX_BUCKET_SIZE + 1)) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/routing/table.rs:567:22 [INFO] [stderr] | [INFO] [stderr] 567 | for index in 0..(bucket::MAX_BUCKET_SIZE + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=bucket::MAX_BUCKET_SIZE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `addr_index` is only used to index `block_addrs`. [INFO] [stderr] --> src/routing/table.rs:606:31 [INFO] [stderr] | [INFO] [stderr] 606 | for addr_index in 0..block_addrs.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 606 | for in &block_addrs { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/transaction.rs:83:29 [INFO] [stderr] | [INFO] [stderr] 83 | let opt_action_id = self.action_ids.get(self.curr_index).map(|a| *a); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.action_ids.get(self.curr_index).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/transaction.rs:151:30 [INFO] [stderr] | [INFO] [stderr] 151 | let opt_message_id = self.message_ids.get(self.curr_index).map(|m| *m); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.message_ids.get(self.curr_index).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/transaction.rs:218:25 [INFO] [stderr] | [INFO] [stderr] 218 | trans_id |= *byte as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(*byte)` [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/worker/bootstrap.rs:107:26 [INFO] [stderr] | [INFO] [stderr] 107 | pub fn recv_response<'a, H>(&mut self, [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: the function has a cyclomatic complexity of 54 [INFO] [stderr] --> src/worker/handler.rs:330:1 [INFO] [stderr] | [INFO] [stderr] 330 | / fn handle_incoming(handler: &mut DhtHandler, [INFO] [stderr] 331 | | event_loop: &mut EventLoop>, [INFO] [stderr] 332 | | buffer: &[u8], [INFO] [stderr] 333 | | addr: SocketAddr) [INFO] [stderr] ... | [INFO] [stderr] 707 | | } [INFO] [stderr] 708 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [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/worker/handler.rs:370:9 [INFO] [stderr] | [INFO] [stderr] 370 | / match message { [INFO] [stderr] 371 | | Ok(MessageType::Request(_)) => return, [INFO] [stderr] 372 | | _ => (), [INFO] [stderr] 373 | | } [INFO] [stderr] | |_________^ help: try this: `if let Ok(MessageType::Request(_)) = message { return }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/handler.rs:383:13 [INFO] [stderr] | [INFO] [stderr] 383 | work_storage.routing_table.find_node(&node).map(|n| n.remote_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = work_storage.routing_table.find_node(&node) { n.remote_request() }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/handler.rs:399:13 [INFO] [stderr] | [INFO] [stderr] 399 | work_storage.routing_table.find_node(&node).map(|n| n.remote_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = work_storage.routing_table.find_node(&node) { n.remote_request() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/handler.rs:423:13 [INFO] [stderr] | [INFO] [stderr] 423 | work_storage.routing_table.find_node(&node).map(|n| n.remote_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = work_storage.routing_table.find_node(&node) { n.remote_request() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/handler.rs:491:13 [INFO] [stderr] | [INFO] [stderr] 491 | work_storage.routing_table.find_node(&node).map(|n| n.remote_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = work_storage.routing_table.find_node(&node) { n.remote_request() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/worker/handler.rs:723:48 [INFO] [stderr] | [INFO] [stderr] 723 | .filter_map(|r| r.ipv4_addr().ok().map(|v4| SocketAddr::V4(v4))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SocketAddr::V4` [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: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/worker/lookup.rs:193:37 [INFO] [stderr] | [INFO] [stderr] 193 | let will_ping = iterate_nodes.iter().find(|&&(ref n, _)| n == &node).is_some(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|&&(ref n, _)| n == &node).is_some()` with `any(|&&(ref n, _)| n == &node)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/lookup.rs:304:21 [INFO] [stderr] | [INFO] [stderr] 304 | table.find_node(node).map(|n| n.local_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = table.find_node(node) { n.local_request() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/lookup.rs:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | table.find_node(node).map(|n| n.local_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = table.find_node(node) { n.local_request() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/worker/lookup.rs:423:17 [INFO] [stderr] | [INFO] [stderr] 423 | table.find_node(node).map(|n| n.local_request()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(n) = table.find_node(node) { n.local_request() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `bip_dht`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> examples/debug.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | () [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: identical conversion [INFO] [stderr] --> examples/debug.rs:95:32 [INFO] [stderr] | [INFO] [stderr] 95 | b"a" => dht.search(hash.into(), true), [INFO] [stderr] | ^^^^^^^^^^^ help: consider removing `.into()`: `hash` [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] --> examples/debug.rs:96:32 [INFO] [stderr] | [INFO] [stderr] 96 | b"s" => dht.search(hash.into(), false), [INFO] [stderr] | ^^^^^^^^^^^ help: consider removing `.into()`: `hash` [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] error: build failed [INFO] running `"docker" "inspect" "cb95e415d2f6575c70047ae1e838c96b23541a2f9a800f6c79862e32ca9f3194"` [INFO] running `"docker" "rm" "-f" "cb95e415d2f6575c70047ae1e838c96b23541a2f9a800f6c79862e32ca9f3194"` [INFO] [stdout] cb95e415d2f6575c70047ae1e838c96b23541a2f9a800f6c79862e32ca9f3194