[INFO] updating cached repository hjarrell/rust-hashing-analysis [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/hjarrell/rust-hashing-analysis [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/hjarrell/rust-hashing-analysis" "work/ex/clippy-test-run/sources/stable/gh/hjarrell/rust-hashing-analysis"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/hjarrell/rust-hashing-analysis'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/hjarrell/rust-hashing-analysis" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/hjarrell/rust-hashing-analysis"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/hjarrell/rust-hashing-analysis'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] f2a198c752495b911211d40198ad667b9ba12df3 [INFO] sha for GitHub repo hjarrell/rust-hashing-analysis: f2a198c752495b911211d40198ad667b9ba12df3 [INFO] validating manifest of hjarrell/rust-hashing-analysis 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 hjarrell/rust-hashing-analysis 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 hjarrell/rust-hashing-analysis [INFO] finished frobbing hjarrell/rust-hashing-analysis [INFO] frobbed toml for hjarrell/rust-hashing-analysis written to work/ex/clippy-test-run/sources/stable/gh/hjarrell/rust-hashing-analysis/Cargo.toml [INFO] started frobbing hjarrell/rust-hashing-analysis [INFO] finished frobbing hjarrell/rust-hashing-analysis [INFO] frobbed toml for hjarrell/rust-hashing-analysis written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/hjarrell/rust-hashing-analysis/Cargo.toml [INFO] crate hjarrell/rust-hashing-analysis 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 hjarrell/rust-hashing-analysis 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/hjarrell/rust-hashing-analysis:/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] d9440253966774417024644b230cd690231bc5f866488fdfb89ada4e69ba2fee [INFO] running `"docker" "start" "-a" "d9440253966774417024644b230cd690231bc5f866488fdfb89ada4e69ba2fee"` [INFO] [stderr] Checking svg v0.5.11 [INFO] [stderr] Checking plotlib v0.3.0 [INFO] [stderr] Checking hashing_analysis_rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/hashtable.rs:82:23 [INFO] [stderr] | [INFO] [stderr] 82 | OAHashTable { capacity: capacity, size: 0, collisions: 0, entries: vec![HashEntry::Null; capacity as usize], hash_type: hash_type } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `capacity` [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/hashtable.rs:82:118 [INFO] [stderr] | [INFO] [stderr] 82 | OAHashTable { capacity: capacity, size: 0, collisions: 0, entries: vec![HashEntry::Null; capacity as usize], hash_type: hash_type } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hash_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/hashtable.rs:180:23 [INFO] [stderr] | [INFO] [stderr] 180 | SCHashTable { capacity: capacity, size: 0, collisions: 0, entries: vec![LinkedList::new(); capacity as usize], hash_type: hash_type } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `capacity` [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/hashtable.rs:180:120 [INFO] [stderr] | [INFO] [stderr] 180 | SCHashTable { capacity: capacity, size: 0, collisions: 0, entries: vec![LinkedList::new(); capacity as usize], hash_type: hash_type } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hash_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/hashtable.rs:82:23 [INFO] [stderr] | [INFO] [stderr] 82 | OAHashTable { capacity: capacity, size: 0, collisions: 0, entries: vec![HashEntry::Null; capacity as usize], hash_type: hash_type } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `capacity` [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/hashtable.rs:82:118 [INFO] [stderr] | [INFO] [stderr] 82 | OAHashTable { capacity: capacity, size: 0, collisions: 0, entries: vec![HashEntry::Null; capacity as usize], hash_type: hash_type } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hash_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/hashtable.rs:180:23 [INFO] [stderr] | [INFO] [stderr] 180 | SCHashTable { capacity: capacity, size: 0, collisions: 0, entries: vec![LinkedList::new(); capacity as usize], hash_type: hash_type } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `capacity` [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/hashtable.rs:180:120 [INFO] [stderr] | [INFO] [stderr] 180 | SCHashTable { capacity: capacity, size: 0, collisions: 0, entries: vec![LinkedList::new(); capacity as usize], hash_type: hash_type } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hash_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: unneeded return statement [INFO] [stderr] --> src/hashtable.rs:115:17 [INFO] [stderr] | [INFO] [stderr] 115 | return hash; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `hash` [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/hashtable.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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/hashtable.rs:205:17 [INFO] [stderr] | [INFO] [stderr] 205 | return hash; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `hash` [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/hashtable.rs:115:17 [INFO] [stderr] | [INFO] [stderr] 115 | return hash; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `hash` [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/hashtable.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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/hashtable.rs:205:17 [INFO] [stderr] | [INFO] [stderr] 205 | return hash; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `hash` [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: function is never used: `num_of_bits` [INFO] [stderr] --> src/hashtable.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | fn num_of_bits(input: &u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Deleted` [INFO] [stderr] --> src/hashtable.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | Deleted, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_deleted` [INFO] [stderr] --> src/hashtable.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | fn is_deleted(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/hashtable.rs:3:23 [INFO] [stderr] | [INFO] [stderr] 3 | fn num_of_bits(input: &u32) -> u32 { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `u32` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/hashtable.rs:4:25 [INFO] [stderr] | [INFO] [stderr] 4 | let mut copy: u32 = input.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try dereferencing it: `*input` [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: manual implementation of an assign operation [INFO] [stderr] --> src/hashtable.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | copy = copy >> 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `copy >>= 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | (self.size as f64) / (self.capacity as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.size)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:90:30 [INFO] [stderr] | [INFO] [stderr] 90 | (self.size as f64) / (self.capacity as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.capacity)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:110:32 [INFO] [stderr] | [INFO] [stderr] 110 | let max: f64 = ((self.capacity*self.capacity*9) as f64).log2().ceil(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.capacity*self.capacity*9)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:111:34 [INFO] [stderr] | [INFO] [stderr] 111 | let table: f64 = ((self.capacity) as f64).log2().ceil(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((self.capacity))` [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: manual implementation of an assign operation [INFO] [stderr] --> src/hashtable.rs:113:17 [INFO] [stderr] | [INFO] [stderr] 113 | hash = hash / ((diff/2).pow(2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hash /= ((diff/2).pow(2))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/hashtable.rs:114:17 [INFO] [stderr] | [INFO] [stderr] 114 | hash = hash % self.capacity; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hash %= self.capacity` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 188 | (self.size as f64) / (self.capacity as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.size)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:188:30 [INFO] [stderr] | [INFO] [stderr] 188 | (self.size as f64) / (self.capacity as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.capacity)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:200:32 [INFO] [stderr] | [INFO] [stderr] 200 | let max: f64 = ((self.capacity*self.capacity*9) as f64).log2().ceil(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.capacity*self.capacity*9)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:201:34 [INFO] [stderr] | [INFO] [stderr] 201 | let table: f64 = ((self.capacity) as f64).log2().ceil(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((self.capacity))` [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: manual implementation of an assign operation [INFO] [stderr] --> src/hashtable.rs:203:17 [INFO] [stderr] | [INFO] [stderr] 203 | hash = hash / ((diff/2).pow(2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hash /= ((diff/2).pow(2))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/hashtable.rs:204:17 [INFO] [stderr] | [INFO] [stderr] 204 | hash = hash % self.capacity; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hash %= self.capacity` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:20:11 [INFO] [stderr] | [INFO] [stderr] 20 | while hash_table.load_factor() != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(hash_table.load_factor() - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:20:11 [INFO] [stderr] | [INFO] [stderr] 20 | while hash_table.load_factor() != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | if hash_table.load_factor() != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(hash_table.load_factor() - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | if hash_table.load_factor() != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:25:36 [INFO] [stderr] | [INFO] [stderr] 25 | if !results.iter().any(|t| t.0 == hash_table.load_factor()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(t.0 - hash_table.load_factor()).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:25:36 [INFO] [stderr] | [INFO] [stderr] 25 | if !results.iter().any(|t| t.0 == hash_table.load_factor()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:26:53 [INFO] [stderr] | [INFO] [stderr] 26 | results.push((hash_table.load_factor(), hash_table.collisions() as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(hash_table.collisions())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:103:76 [INFO] [stderr] | [INFO] [stderr] 103 | make_graph(result_oa_keymod_1, result_oa_keymod_2, result_oa_keymod_3, EXPERIMENT_3_SIZE as f64, String::from("OpenAddress_Keymod.svg")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(EXPERIMENT_3_SIZE)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:104:85 [INFO] [stderr] | [INFO] [stderr] 104 | make_graph(result_oa_midsquare_1, result_oa_midsquare_2, result_oa_midsquare_3, EXPERIMENT_3_SIZE as f64, String::from("OpenAddress_MidSquare.svg")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(EXPERIMENT_3_SIZE)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:105:76 [INFO] [stderr] | [INFO] [stderr] 105 | make_graph(result_sc_keymod_1, result_sc_keymod_2, result_sc_keymod_3, EXPERIMENT_3_SIZE as f64, String::from("SeperateChaining_Keymod.svg")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(EXPERIMENT_3_SIZE)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:106:85 [INFO] [stderr] | [INFO] [stderr] 106 | make_graph(result_sc_midsquare_1, result_sc_midsquare_2, result_sc_midsquare_3, EXPERIMENT_3_SIZE as f64, String::from("SeperateChaining_MidSquare.svg")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(EXPERIMENT_3_SIZE)` [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] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `hashing_analysis_rust`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: function is never used: `num_of_bits` [INFO] [stderr] --> src/hashtable.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | fn num_of_bits(input: &u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Deleted` [INFO] [stderr] --> src/hashtable.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | Deleted, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_deleted` [INFO] [stderr] --> src/hashtable.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | fn is_deleted(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/hashtable.rs:3:23 [INFO] [stderr] | [INFO] [stderr] 3 | fn num_of_bits(input: &u32) -> u32 { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `u32` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/hashtable.rs:4:25 [INFO] [stderr] | [INFO] [stderr] 4 | let mut copy: u32 = input.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try dereferencing it: `*input` [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: manual implementation of an assign operation [INFO] [stderr] --> src/hashtable.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | copy = copy >> 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `copy >>= 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | (self.size as f64) / (self.capacity as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.size)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:90:30 [INFO] [stderr] | [INFO] [stderr] 90 | (self.size as f64) / (self.capacity as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.capacity)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:110:32 [INFO] [stderr] | [INFO] [stderr] 110 | let max: f64 = ((self.capacity*self.capacity*9) as f64).log2().ceil(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.capacity*self.capacity*9)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:111:34 [INFO] [stderr] | [INFO] [stderr] 111 | let table: f64 = ((self.capacity) as f64).log2().ceil(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((self.capacity))` [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: manual implementation of an assign operation [INFO] [stderr] --> src/hashtable.rs:113:17 [INFO] [stderr] | [INFO] [stderr] 113 | hash = hash / ((diff/2).pow(2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hash /= ((diff/2).pow(2))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/hashtable.rs:114:17 [INFO] [stderr] | [INFO] [stderr] 114 | hash = hash % self.capacity; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hash %= self.capacity` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 188 | (self.size as f64) / (self.capacity as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.size)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:188:30 [INFO] [stderr] | [INFO] [stderr] 188 | (self.size as f64) / (self.capacity as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.capacity)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:200:32 [INFO] [stderr] | [INFO] [stderr] 200 | let max: f64 = ((self.capacity*self.capacity*9) as f64).log2().ceil(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.capacity*self.capacity*9)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/hashtable.rs:201:34 [INFO] [stderr] | [INFO] [stderr] 201 | let table: f64 = ((self.capacity) as f64).log2().ceil(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((self.capacity))` [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: manual implementation of an assign operation [INFO] [stderr] --> src/hashtable.rs:203:17 [INFO] [stderr] | [INFO] [stderr] 203 | hash = hash / ((diff/2).pow(2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hash /= ((diff/2).pow(2))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/hashtable.rs:204:17 [INFO] [stderr] | [INFO] [stderr] 204 | hash = hash % self.capacity; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hash %= self.capacity` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:20:11 [INFO] [stderr] | [INFO] [stderr] 20 | while hash_table.load_factor() != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(hash_table.load_factor() - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:20:11 [INFO] [stderr] | [INFO] [stderr] 20 | while hash_table.load_factor() != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | if hash_table.load_factor() != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(hash_table.load_factor() - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | if hash_table.load_factor() != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/main.rs:25:36 [INFO] [stderr] | [INFO] [stderr] 25 | if !results.iter().any(|t| t.0 == hash_table.load_factor()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(t.0 - hash_table.load_factor()).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/main.rs:25:36 [INFO] [stderr] | [INFO] [stderr] 25 | if !results.iter().any(|t| t.0 == hash_table.load_factor()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:26:53 [INFO] [stderr] | [INFO] [stderr] 26 | results.push((hash_table.load_factor(), hash_table.collisions() as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(hash_table.collisions())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:103:76 [INFO] [stderr] | [INFO] [stderr] 103 | make_graph(result_oa_keymod_1, result_oa_keymod_2, result_oa_keymod_3, EXPERIMENT_3_SIZE as f64, String::from("OpenAddress_Keymod.svg")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(EXPERIMENT_3_SIZE)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:104:85 [INFO] [stderr] | [INFO] [stderr] 104 | make_graph(result_oa_midsquare_1, result_oa_midsquare_2, result_oa_midsquare_3, EXPERIMENT_3_SIZE as f64, String::from("OpenAddress_MidSquare.svg")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(EXPERIMENT_3_SIZE)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:105:76 [INFO] [stderr] | [INFO] [stderr] 105 | make_graph(result_sc_keymod_1, result_sc_keymod_2, result_sc_keymod_3, EXPERIMENT_3_SIZE as f64, String::from("SeperateChaining_Keymod.svg")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(EXPERIMENT_3_SIZE)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:106:85 [INFO] [stderr] | [INFO] [stderr] 106 | make_graph(result_sc_midsquare_1, result_sc_midsquare_2, result_sc_midsquare_3, EXPERIMENT_3_SIZE as f64, String::from("SeperateChaining_MidSquare.svg")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(EXPERIMENT_3_SIZE)` [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] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `hashing_analysis_rust`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "d9440253966774417024644b230cd690231bc5f866488fdfb89ada4e69ba2fee"` [INFO] running `"docker" "rm" "-f" "d9440253966774417024644b230cd690231bc5f866488fdfb89ada4e69ba2fee"` [INFO] [stdout] d9440253966774417024644b230cd690231bc5f866488fdfb89ada4e69ba2fee