[INFO] updating cached repository woohp/foo [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/woohp/foo [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/woohp/foo" "work/ex/clippy-test-run/sources/stable/gh/woohp/foo"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/woohp/foo'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/woohp/foo" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/woohp/foo"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/woohp/foo'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] cfcbd0368f286b7d5d557f05e23a93a7b2a75e28 [INFO] sha for GitHub repo woohp/foo: cfcbd0368f286b7d5d557f05e23a93a7b2a75e28 [INFO] validating manifest of woohp/foo 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 woohp/foo 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 woohp/foo [INFO] finished frobbing woohp/foo [INFO] frobbed toml for woohp/foo written to work/ex/clippy-test-run/sources/stable/gh/woohp/foo/Cargo.toml [INFO] started frobbing woohp/foo [INFO] finished frobbing woohp/foo [INFO] frobbed toml for woohp/foo written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/woohp/foo/Cargo.toml [INFO] crate woohp/foo has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting woohp/foo against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/woohp/foo:/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 -Dclippy::into_iter_on_array" "-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] 5234f481344683eba6c6b630d95a25d35543b590d39f4c84eea08ebd10e0f74e [INFO] running `"docker" "start" "-a" "5234f481344683eba6c6b630d95a25d35543b590d39f4c84eea08ebd10e0f74e"` [INFO] [stderr] Checking main v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/kademlia.rs:11:44 [INFO] [stderr] | [INFO] [stderr] 11 | fn new(a: u32, b: u32, c: u32, d: u32, e: u32) -> NodeId { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/kademlia.rs:11:44 [INFO] [stderr] | [INFO] [stderr] 11 | fn new(a: u32, b: u32, c: u32, d: u32, e: u32) -> NodeId { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/kademlia.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | return final_node_id; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `final_node_id` [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: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:20:41 [INFO] [stderr] | [INFO] [stderr] 20 | self_div_2.data[i-1] |= 0x80000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:29:42 [INFO] [stderr] | [INFO] [stderr] 29 | other_div_2.data[i-1] |= 0x80000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:40:28 [INFO] [stderr] | [INFO] [stderr] 40 | carry = (val > 0xffffffff) as u32; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [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/kademlia.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | return new_node_id; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `new_node_id` [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: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:51:39 [INFO] [stderr] | [INFO] [stderr] 51 | if new_node_id.data[i] == 0xffffffff { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [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/kademlia.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | return (bucket1, bucket2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(bucket1, bucket2)` [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: unneeded return statement [INFO] [stderr] --> src/kademlia.rs:215:9 [INFO] [stderr] | [INFO] [stderr] 215 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:149:13 [INFO] [stderr] | [INFO] [stderr] 149 | return Ok(BencodeObject::Integer(n)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(BencodeObject::Integer(n))` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:162:13 [INFO] [stderr] | [INFO] [stderr] 162 | return Ok(BencodeObject::List(vec)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(BencodeObject::List(vec))` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:180:13 [INFO] [stderr] | [INFO] [stderr] 180 | return Ok(BencodeObject::Dict(map)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(BencodeObject::Dict(map))` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | return Ok(BencodeObject::Bytes(bytes.to_vec())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(BencodeObject::Bytes(bytes.to_vec()))` [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: unneeded return statement [INFO] [stderr] --> src/kademlia.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | return final_node_id; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `final_node_id` [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: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:20:41 [INFO] [stderr] | [INFO] [stderr] 20 | self_div_2.data[i-1] |= 0x80000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:29:42 [INFO] [stderr] | [INFO] [stderr] 29 | other_div_2.data[i-1] |= 0x80000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:40:28 [INFO] [stderr] | [INFO] [stderr] 40 | carry = (val > 0xffffffff) as u32; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [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/kademlia.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | return new_node_id; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `new_node_id` [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: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:51:39 [INFO] [stderr] | [INFO] [stderr] 51 | if new_node_id.data[i] == 0xffffffff { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:85:43 [INFO] [stderr] | [INFO] [stderr] 85 | let node_id: NodeId = NodeId::new(0xffffffff, 0, 0, 0, 0); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:93:35 [INFO] [stderr] | [INFO] [stderr] 93 | let node_id = NodeId::new(0xffffffff, 0xffffffff, 0, 0, 0); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:93:47 [INFO] [stderr] | [INFO] [stderr] 93 | let node_id = NodeId::new(0xffffffff, 0xffffffff, 0, 0, 0); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:102:37 [INFO] [stderr] | [INFO] [stderr] 102 | let id2 = NodeId::new(0, 0, 0xffffffff, 0, 1); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/kademlia.rs:120:51 [INFO] [stderr] | [INFO] [stderr] 120 | assert_eq!(id1.midpoint(id2), NodeId::new(2147483648, 0, 0, 0, 0)); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_648` [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/kademlia.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | return (bucket1, bucket2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(bucket1, bucket2)` [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: unneeded return statement [INFO] [stderr] --> src/kademlia.rs:215:9 [INFO] [stderr] | [INFO] [stderr] 215 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:149:13 [INFO] [stderr] | [INFO] [stderr] 149 | return Ok(BencodeObject::Integer(n)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(BencodeObject::Integer(n))` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:162:13 [INFO] [stderr] | [INFO] [stderr] 162 | return Ok(BencodeObject::List(vec)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(BencodeObject::List(vec))` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:180:13 [INFO] [stderr] | [INFO] [stderr] 180 | return Ok(BencodeObject::Dict(map)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(BencodeObject::Dict(map))` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | return Ok(BencodeObject::Bytes(bytes.to_vec())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(BencodeObject::Bytes(bytes.to_vec()))` [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: unused variable: `node` [INFO] [stderr] --> src/kademlia.rs:145:23 [INFO] [stderr] | [INFO] [stderr] 145 | fn add(&mut self, node: Node) -> bool { [INFO] [stderr] | ^^^^ help: consider using `_node` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/kademlia.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | fn new(a: u32, b: u32, c: u32, d: u32, e: u32) -> NodeId { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `midpoint` [INFO] [stderr] --> src/kademlia.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | fn midpoint(&self, other: NodeId) -> NodeId { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `plus_one` [INFO] [stderr] --> src/kademlia.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | fn plus_one(&self) -> NodeId { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `distance` [INFO] [stderr] --> src/kademlia.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | fn distance(&self, other: NodeId) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `distance` [INFO] [stderr] --> src/kademlia.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | fn distance(&self, other: Node) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `KBucket` [INFO] [stderr] --> src/kademlia.rs:138:1 [INFO] [stderr] | [INFO] [stderr] 138 | struct KBucket { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add` [INFO] [stderr] --> src/kademlia.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | fn add(&mut self, node: Node) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `split` [INFO] [stderr] --> src/kademlia.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | fn split(&self) -> (KBucket, KBucket) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `has_in_range` [INFO] [stderr] --> src/kademlia.rs:174:5 [INFO] [stderr] | [INFO] [stderr] 174 | fn has_in_range(&self, node: Node) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `depth` [INFO] [stderr] --> src/kademlia.rs:178:5 [INFO] [stderr] | [INFO] [stderr] 178 | fn depth(&self) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `RoutingTable` [INFO] [stderr] --> src/kademlia.rs:183:1 [INFO] [stderr] | [INFO] [stderr] 183 | pub struct RoutingTable { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add` [INFO] [stderr] --> src/kademlia.rs:189:5 [INFO] [stderr] | [INFO] [stderr] 189 | fn add(&mut self, node: Node) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_bucket_for` [INFO] [stderr] --> src/kademlia.rs:209:5 [INFO] [stderr] | [INFO] [stderr] 209 | fn get_bucket_for(&self, node: &Node) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `split_bucket` [INFO] [stderr] --> src/kademlia.rs:218:5 [INFO] [stderr] | [INFO] [stderr] 218 | fn split_bucket(&mut self, index: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/kademlia.rs:16:30 [INFO] [stderr] | [INFO] [stderr] 16 | let mut self_div_2 = self.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/kademlia.rs:25:31 [INFO] [stderr] | [INFO] [stderr] 25 | let mut other_div_2 = other.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `other` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/kademlia.rs:37:26 [INFO] [stderr] | [INFO] [stderr] 37 | let datum1 = self_div_2.data[i] as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self_div_2.data[i])` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/kademlia.rs:38:26 [INFO] [stderr] | [INFO] [stderr] 38 | let datum2 = other_div_2.data[i] as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(other_div_2.data[i])` [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/kademlia.rs:39:45 [INFO] [stderr] | [INFO] [stderr] 39 | let mut val = datum1 + datum2 + carry as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(carry)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/kademlia.rs:48:31 [INFO] [stderr] | [INFO] [stderr] 48 | let mut new_node_id = self.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/kademlia.rs:192:43 [INFO] [stderr] | [INFO] [stderr] 192 | if self.buckets[bucket_index].add(node.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `node` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/kademlia.rs:197:17 [INFO] [stderr] | [INFO] [stderr] 197 | let ref bucket = self.buckets[bucket_index]; [INFO] [stderr] | ----^^^^^^^^^^------------------------------ help: try: `let bucket = &self.buckets[bucket_index];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/main.rs:36:19 [INFO] [stderr] | [INFO] [stderr] 36 | fn into_bytes(&self) -> Vec { [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: redundant closure found [INFO] [stderr] --> src/main.rs:227:14 [INFO] [stderr] | [INFO] [stderr] 227 | .map(|file_bytes| BencodeObject::parse(file_bytes)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `BencodeObject::parse` [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: unused variable: `node` [INFO] [stderr] --> src/kademlia.rs:145:23 [INFO] [stderr] | [INFO] [stderr] 145 | fn add(&mut self, node: Node) -> bool { [INFO] [stderr] | ^^^^ help: consider using `_node` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `distance` [INFO] [stderr] --> src/kademlia.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | fn distance(&self, other: Node) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `KBucket` [INFO] [stderr] --> src/kademlia.rs:138:1 [INFO] [stderr] | [INFO] [stderr] 138 | struct KBucket { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add` [INFO] [stderr] --> src/kademlia.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | fn add(&mut self, node: Node) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `split` [INFO] [stderr] --> src/kademlia.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | fn split(&self) -> (KBucket, KBucket) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `has_in_range` [INFO] [stderr] --> src/kademlia.rs:174:5 [INFO] [stderr] | [INFO] [stderr] 174 | fn has_in_range(&self, node: Node) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `depth` [INFO] [stderr] --> src/kademlia.rs:178:5 [INFO] [stderr] | [INFO] [stderr] 178 | fn depth(&self) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `RoutingTable` [INFO] [stderr] --> src/kademlia.rs:183:1 [INFO] [stderr] | [INFO] [stderr] 183 | pub struct RoutingTable { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add` [INFO] [stderr] --> src/kademlia.rs:189:5 [INFO] [stderr] | [INFO] [stderr] 189 | fn add(&mut self, node: Node) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_bucket_for` [INFO] [stderr] --> src/kademlia.rs:209:5 [INFO] [stderr] | [INFO] [stderr] 209 | fn get_bucket_for(&self, node: &Node) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `split_bucket` [INFO] [stderr] --> src/kademlia.rs:218:5 [INFO] [stderr] | [INFO] [stderr] 218 | fn split_bucket(&mut self, index: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/kademlia.rs:16:30 [INFO] [stderr] | [INFO] [stderr] 16 | let mut self_div_2 = self.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/kademlia.rs:25:31 [INFO] [stderr] | [INFO] [stderr] 25 | let mut other_div_2 = other.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `other` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/kademlia.rs:37:26 [INFO] [stderr] | [INFO] [stderr] 37 | let datum1 = self_div_2.data[i] as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self_div_2.data[i])` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/kademlia.rs:38:26 [INFO] [stderr] | [INFO] [stderr] 38 | let datum2 = other_div_2.data[i] as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(other_div_2.data[i])` [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/kademlia.rs:39:45 [INFO] [stderr] | [INFO] [stderr] 39 | let mut val = datum1 + datum2 + carry as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(carry)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/kademlia.rs:48:31 [INFO] [stderr] | [INFO] [stderr] 48 | let mut new_node_id = self.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/kademlia.rs:192:43 [INFO] [stderr] | [INFO] [stderr] 192 | if self.buckets[bucket_index].add(node.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `node` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/kademlia.rs:197:17 [INFO] [stderr] | [INFO] [stderr] 197 | let ref bucket = self.buckets[bucket_index]; [INFO] [stderr] | ----^^^^^^^^^^------------------------------ help: try: `let bucket = &self.buckets[bucket_index];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/main.rs:36:19 [INFO] [stderr] | [INFO] [stderr] 36 | fn into_bytes(&self) -> Vec { [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: redundant closure found [INFO] [stderr] --> src/main.rs:227:14 [INFO] [stderr] | [INFO] [stderr] 227 | .map(|file_bytes| BencodeObject::parse(file_bytes)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `BencodeObject::parse` [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] Finished dev [unoptimized + debuginfo] target(s) in 1.09s [INFO] running `"docker" "inspect" "5234f481344683eba6c6b630d95a25d35543b590d39f4c84eea08ebd10e0f74e"` [INFO] running `"docker" "rm" "-f" "5234f481344683eba6c6b630d95a25d35543b590d39f4c84eea08ebd10e0f74e"` [INFO] [stdout] 5234f481344683eba6c6b630d95a25d35543b590d39f4c84eea08ebd10e0f74e