[INFO] crate fountain_codes 0.2.1 is already in cache [INFO] extracting crate fountain_codes 0.2.1 into work/ex/clippy-test-run/sources/stable/reg/fountain_codes/0.2.1 [INFO] extracting crate fountain_codes 0.2.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/fountain_codes/0.2.1 [INFO] validating manifest of fountain_codes-0.2.1 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 fountain_codes-0.2.1 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 fountain_codes-0.2.1 [INFO] finished frobbing fountain_codes-0.2.1 [INFO] frobbed toml for fountain_codes-0.2.1 written to work/ex/clippy-test-run/sources/stable/reg/fountain_codes/0.2.1/Cargo.toml [INFO] started frobbing fountain_codes-0.2.1 [INFO] finished frobbing fountain_codes-0.2.1 [INFO] frobbed toml for fountain_codes-0.2.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/fountain_codes/0.2.1/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 fountain_codes-0.2.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/fountain_codes/0.2.1:/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] 56cb4224260b73f7a2c37369c5248931a13e2b787435b4590540a96d7df9a696 [INFO] running `"docker" "start" "-a" "56cb4224260b73f7a2c37369c5248931a13e2b787435b4590540a96d7df9a696"` [INFO] [stderr] Checking fountain_codes v0.2.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/metadata.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | data_bytes: data_bytes [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `data_bytes` [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/lt.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | blocks: blocks, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `blocks` [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/lt.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | distribution: distribution [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `distribution` [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/lt.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | metadata: metadata, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `metadata` [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/lt.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | distribution: distribution, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `distribution` [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/lt.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | data: data [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/lt.rs:334:13 [INFO] [stderr] | [INFO] [stderr] 334 | combined_blocks: combined_blocks, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `combined_blocks` [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/lt.rs:335:13 [INFO] [stderr] | [INFO] [stderr] 335 | data: data [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/distributions.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | limit: limit, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `limit` [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/distributions.rs:104:13 [INFO] [stderr] | [INFO] [stderr] 104 | failure_probability: failure_probability, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `failure_probability` [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/distributions.rs:111:13 [INFO] [stderr] | [INFO] [stderr] 111 | failure_probability: failure_probability, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `failure_probability` [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/metadata.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | data_bytes: data_bytes [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `data_bytes` [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/lt.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | blocks: blocks, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `blocks` [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/lt.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | distribution: distribution [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `distribution` [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/lt.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | metadata: metadata, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `metadata` [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/lt.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | distribution: distribution, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `distribution` [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/lt.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | data: data [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/lt.rs:334:13 [INFO] [stderr] | [INFO] [stderr] 334 | combined_blocks: combined_blocks, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `combined_blocks` [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/lt.rs:335:13 [INFO] [stderr] | [INFO] [stderr] 335 | data: data [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/distributions.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | limit: limit, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `limit` [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/distributions.rs:104:13 [INFO] [stderr] | [INFO] [stderr] 104 | failure_probability: failure_probability, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `failure_probability` [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/distributions.rs:111:13 [INFO] [stderr] | [INFO] [stderr] 111 | failure_probability: failure_probability, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `failure_probability` [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: unnecessary parentheses around function argument [INFO] [stderr] --> src/lt.rs:35:36 [INFO] [stderr] | [INFO] [stderr] 35 | let extra_block = cmp::min((data_bytes % BLOCK_BYTES as u64), 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/lt.rs:116:36 [INFO] [stderr] | [INFO] [stderr] 116 | let extra_block = cmp::min((data_bytes % BLOCK_BYTES as u64), 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lt.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 158 | return Some(LtPacket::new(blocks, new_block)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(LtPacket::new(blocks, new_block))` [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/lt.rs:291:9 [INFO] [stderr] | [INFO] [stderr] 291 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [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: unnecessary parentheses around function argument [INFO] [stderr] --> src/lt.rs:35:36 [INFO] [stderr] | [INFO] [stderr] 35 | let extra_block = cmp::min((data_bytes % BLOCK_BYTES as u64), 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/lt.rs:116:36 [INFO] [stderr] | [INFO] [stderr] 116 | let extra_block = cmp::min((data_bytes % BLOCK_BYTES as u64), 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lt.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 158 | return Some(LtPacket::new(blocks, new_block)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(LtPacket::new(blocks, new_block))` [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/lt.rs:291:9 [INFO] [stderr] | [INFO] [stderr] 291 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [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 argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/metadata.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn data_bytes(&self) -> u64 { [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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lt.rs:38:26 [INFO] [stderr] | [INFO] [stderr] 38 | if block_count > (u32::max_value() as u64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(u32::max_value())` [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: it looks like you're manually copying between slices [INFO] [stderr] --> src/lt.rs:45:22 [INFO] [stderr] | [INFO] [stderr] 45 | for i in 0..chunk.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try replacing the loop by: `block[..chunk.len()].clone_from_slice(&chunk[..])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lt.rs:52:93 [INFO] [stderr] | [INFO] [stderr] 52 | let distribution = Distribution::new(&density_function, block_count as u32).map_err(|e| CreationError::RandomInitializationError(e))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `CreationError::RandomInitializationError` [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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lt.rs:119:26 [INFO] [stderr] | [INFO] [stderr] 119 | if block_count > (u32::max_value() as u64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(u32::max_value())` [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: redundant closure found [INFO] [stderr] --> src/lt.rs:124:93 [INFO] [stderr] | [INFO] [stderr] 124 | let distribution = Distribution::new(&density_function, block_count as u32).map_err(|e| CreationError::RandomInitializationError(e))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `CreationError::RandomInitializationError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lt.rs:147:12 [INFO] [stderr] | [INFO] [stderr] 147 | if blocks.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `blocks.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lt.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | new_block = new_block ^ self.decoded_blocks.index(block_id); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `new_block ^= self.decoded_blocks.index(block_id)` [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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/lt.rs:201:17 [INFO] [stderr] | [INFO] [stderr] 201 | / if !self.decoded_blocks.contains_key(&block_id) { [INFO] [stderr] 202 | | let mut data = packet.data; [INFO] [stderr] 203 | | for block_id in xor { [INFO] [stderr] 204 | | data = data ^ self.decoded_blocks.get(&block_id).expect("Blocks selected to be xor'd must exist"); [INFO] [stderr] ... | [INFO] [stderr] 222 | | } [INFO] [stderr] 223 | | } [INFO] [stderr] | |_________________^ help: consider using: `self.decoded_blocks.entry(block_id)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lt.rs:204:25 [INFO] [stderr] | [INFO] [stderr] 204 | data = data ^ self.decoded_blocks.get(&block_id).expect("Blocks selected to be xor'd must exist"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `data ^= self.decoded_blocks.get(&block_id).expect("Blocks selected to be xor'd must exist")` [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: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/lt.rs:236:13 [INFO] [stderr] | [INFO] [stderr] 236 | / if block_option.is_none() { [INFO] [stderr] 237 | | // TODO: Figure out whether we should panic here, since it indicates bad entries in the decoded_blocks map [INFO] [stderr] 238 | | return None; [INFO] [stderr] 239 | | } [INFO] [stderr] | |_____________^ help: replace_it_with: `block_option?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lt.rs:248:46 [INFO] [stderr] | [INFO] [stderr] 248 | (self.decoded_blocks.len() as f64) / (self.block_count as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.block_count)` [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: needlessly taken reference of both operands [INFO] [stderr] --> src/lt.rs:312:9 [INFO] [stderr] | [INFO] [stderr] 312 | &self.data[..] == &other.data[..] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 312 | self.data[..] == other.data[..] [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `block_data`. [INFO] [stderr] --> src/lt.rs:352:18 [INFO] [stderr] | [INFO] [stderr] 352 | for i in 0..BLOCK_BYTES { [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] 352 | for in block_data.iter_mut().take(BLOCK_BYTES) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/distributions.rs:23:19 [INFO] [stderr] | [INFO] [stderr] 23 | for i in 1..(limit + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `1..=limit` [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: an inclusive range would be more readable [INFO] [stderr] --> src/distributions.rs:38:18 [INFO] [stderr] | [INFO] [stderr] 38 | for i in 1..(self.limit + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `1..=self.limit` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/distributions.rs:87:19 [INFO] [stderr] | [INFO] [stderr] 87 | 1.0 / (limit as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(limit)` [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/distributions.rs:89:20 [INFO] [stderr] | [INFO] [stderr] 89 | 1.0 / ((point as f64) * (point as f64 - 1.0)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(point)` [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/distributions.rs:89:38 [INFO] [stderr] | [INFO] [stderr] 89 | 1.0 / ((point as f64) * (point as f64 - 1.0)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(point)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/distributions.rs:119:18 [INFO] [stderr] | [INFO] [stderr] 119 | for i in 1..(limit + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `1..=limit` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/distributions.rs:130:29 [INFO] [stderr] | [INFO] [stderr] 130 | let switch_point = (limit as f64 / expected_ripple_size) as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(limit)` [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/distributions.rs:135:36 [INFO] [stderr] | [INFO] [stderr] 135 | expected_ripple_size / ((point * limit) as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(point * limit)` [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/distributions.rs:137:90 [INFO] [stderr] | [INFO] [stderr] 137 | (expected_ripple_size * (expected_ripple_size / failure_probability).ln()) / (limit as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(limit)` [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/distributions.rs:169:9 [INFO] [stderr] | [INFO] [stderr] 169 | / match self { [INFO] [stderr] 170 | | &ExpectedRippleSize::Exactly(val) => { [INFO] [stderr] 171 | | val [INFO] [stderr] 172 | | } [INFO] [stderr] ... | [INFO] [stderr] 176 | | } [INFO] [stderr] 177 | | } [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] 169 | match *self { [INFO] [stderr] 170 | ExpectedRippleSize::Exactly(val) => { [INFO] [stderr] 171 | val [INFO] [stderr] 172 | } [INFO] [stderr] 173 | // TODO: Figure out if the hint_constant can sensibly be bigger than 1 [INFO] [stderr] 174 | ExpectedRippleSize::BasedOnHeuristic(hint_constant) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/distributions.rs:175:34 [INFO] [stderr] | [INFO] [stderr] 175 | hint_constant * (limit as f64 / failure_probability).ln() * (limit as f64).sqrt() [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(limit)` [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/distributions.rs:175:77 [INFO] [stderr] | [INFO] [stderr] 175 | hint_constant * (limit as f64 / failure_probability).ln() * (limit as f64).sqrt() [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(limit)` [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/metadata.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn data_bytes(&self) -> u64 { [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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lt.rs:38:26 [INFO] [stderr] | [INFO] [stderr] 38 | if block_count > (u32::max_value() as u64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(u32::max_value())` [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: it looks like you're manually copying between slices [INFO] [stderr] --> src/lt.rs:45:22 [INFO] [stderr] | [INFO] [stderr] 45 | for i in 0..chunk.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try replacing the loop by: `block[..chunk.len()].clone_from_slice(&chunk[..])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lt.rs:52:93 [INFO] [stderr] | [INFO] [stderr] 52 | let distribution = Distribution::new(&density_function, block_count as u32).map_err(|e| CreationError::RandomInitializationError(e))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `CreationError::RandomInitializationError` [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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lt.rs:119:26 [INFO] [stderr] | [INFO] [stderr] 119 | if block_count > (u32::max_value() as u64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(u32::max_value())` [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: redundant closure found [INFO] [stderr] --> src/lt.rs:124:93 [INFO] [stderr] | [INFO] [stderr] 124 | let distribution = Distribution::new(&density_function, block_count as u32).map_err(|e| CreationError::RandomInitializationError(e))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `CreationError::RandomInitializationError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lt.rs:147:12 [INFO] [stderr] | [INFO] [stderr] 147 | if blocks.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `blocks.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lt.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | new_block = new_block ^ self.decoded_blocks.index(block_id); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `new_block ^= self.decoded_blocks.index(block_id)` [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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/lt.rs:201:17 [INFO] [stderr] | [INFO] [stderr] 201 | / if !self.decoded_blocks.contains_key(&block_id) { [INFO] [stderr] 202 | | let mut data = packet.data; [INFO] [stderr] 203 | | for block_id in xor { [INFO] [stderr] 204 | | data = data ^ self.decoded_blocks.get(&block_id).expect("Blocks selected to be xor'd must exist"); [INFO] [stderr] ... | [INFO] [stderr] 222 | | } [INFO] [stderr] 223 | | } [INFO] [stderr] | |_________________^ help: consider using: `self.decoded_blocks.entry(block_id)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lt.rs:204:25 [INFO] [stderr] | [INFO] [stderr] 204 | data = data ^ self.decoded_blocks.get(&block_id).expect("Blocks selected to be xor'd must exist"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `data ^= self.decoded_blocks.get(&block_id).expect("Blocks selected to be xor'd must exist")` [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: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/lt.rs:236:13 [INFO] [stderr] | [INFO] [stderr] 236 | / if block_option.is_none() { [INFO] [stderr] 237 | | // TODO: Figure out whether we should panic here, since it indicates bad entries in the decoded_blocks map [INFO] [stderr] 238 | | return None; [INFO] [stderr] 239 | | } [INFO] [stderr] | |_____________^ help: replace_it_with: `block_option?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lt.rs:248:46 [INFO] [stderr] | [INFO] [stderr] 248 | (self.decoded_blocks.len() as f64) / (self.block_count as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.block_count)` [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: needlessly taken reference of both operands [INFO] [stderr] --> src/lt.rs:312:9 [INFO] [stderr] | [INFO] [stderr] 312 | &self.data[..] == &other.data[..] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 312 | self.data[..] == other.data[..] [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `block_data`. [INFO] [stderr] --> src/lt.rs:352:18 [INFO] [stderr] | [INFO] [stderr] 352 | for i in 0..BLOCK_BYTES { [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] 352 | for in block_data.iter_mut().take(BLOCK_BYTES) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/distributions.rs:23:19 [INFO] [stderr] | [INFO] [stderr] 23 | for i in 1..(limit + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `1..=limit` [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: an inclusive range would be more readable [INFO] [stderr] --> src/distributions.rs:38:18 [INFO] [stderr] | [INFO] [stderr] 38 | for i in 1..(self.limit + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `1..=self.limit` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/distributions.rs:87:19 [INFO] [stderr] | [INFO] [stderr] 87 | 1.0 / (limit as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(limit)` [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/distributions.rs:89:20 [INFO] [stderr] | [INFO] [stderr] 89 | 1.0 / ((point as f64) * (point as f64 - 1.0)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(point)` [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/distributions.rs:89:38 [INFO] [stderr] | [INFO] [stderr] 89 | 1.0 / ((point as f64) * (point as f64 - 1.0)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(point)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/distributions.rs:119:18 [INFO] [stderr] | [INFO] [stderr] 119 | for i in 1..(limit + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `1..=limit` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/distributions.rs:130:29 [INFO] [stderr] | [INFO] [stderr] 130 | let switch_point = (limit as f64 / expected_ripple_size) as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(limit)` [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/distributions.rs:135:36 [INFO] [stderr] | [INFO] [stderr] 135 | expected_ripple_size / ((point * limit) as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(point * limit)` [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/distributions.rs:137:90 [INFO] [stderr] | [INFO] [stderr] 137 | (expected_ripple_size * (expected_ripple_size / failure_probability).ln()) / (limit as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(limit)` [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/distributions.rs:169:9 [INFO] [stderr] | [INFO] [stderr] 169 | / match self { [INFO] [stderr] 170 | | &ExpectedRippleSize::Exactly(val) => { [INFO] [stderr] 171 | | val [INFO] [stderr] 172 | | } [INFO] [stderr] ... | [INFO] [stderr] 176 | | } [INFO] [stderr] 177 | | } [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] 169 | match *self { [INFO] [stderr] 170 | ExpectedRippleSize::Exactly(val) => { [INFO] [stderr] 171 | val [INFO] [stderr] 172 | } [INFO] [stderr] 173 | // TODO: Figure out if the hint_constant can sensibly be bigger than 1 [INFO] [stderr] 174 | ExpectedRippleSize::BasedOnHeuristic(hint_constant) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/distributions.rs:175:34 [INFO] [stderr] | [INFO] [stderr] 175 | hint_constant * (limit as f64 / failure_probability).ln() * (limit as f64).sqrt() [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(limit)` [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/distributions.rs:175:77 [INFO] [stderr] | [INFO] [stderr] 175 | hint_constant * (limit as f64 / failure_probability).ln() * (limit as f64).sqrt() [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(limit)` [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: long literal lacking separators [INFO] [stderr] --> tests/lt_coding_test.rs:43:17 [INFO] [stderr] | [INFO] [stderr] 43 | for _ in 0..100000 { [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [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] Finished dev [unoptimized + debuginfo] target(s) in 2.35s [INFO] running `"docker" "inspect" "56cb4224260b73f7a2c37369c5248931a13e2b787435b4590540a96d7df9a696"` [INFO] running `"docker" "rm" "-f" "56cb4224260b73f7a2c37369c5248931a13e2b787435b4590540a96d7df9a696"` [INFO] [stdout] 56cb4224260b73f7a2c37369c5248931a13e2b787435b4590540a96d7df9a696