[INFO] updating cached repository cpearce/arm-rs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/cpearce/arm-rs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/cpearce/arm-rs" "work/ex/clippy-test-run/sources/stable/gh/cpearce/arm-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/cpearce/arm-rs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/cpearce/arm-rs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cpearce/arm-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cpearce/arm-rs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 14c2e00a8d6ab6f081714af58d773f04f6321a4b [INFO] sha for GitHub repo cpearce/arm-rs: 14c2e00a8d6ab6f081714af58d773f04f6321a4b [INFO] validating manifest of cpearce/arm-rs 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 cpearce/arm-rs 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 cpearce/arm-rs [INFO] finished frobbing cpearce/arm-rs [INFO] frobbed toml for cpearce/arm-rs written to work/ex/clippy-test-run/sources/stable/gh/cpearce/arm-rs/Cargo.toml [INFO] started frobbing cpearce/arm-rs [INFO] finished frobbing cpearce/arm-rs [INFO] frobbed toml for cpearce/arm-rs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cpearce/arm-rs/Cargo.toml [INFO] crate cpearce/arm-rs 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 cpearce/arm-rs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/cpearce/arm-rs:/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] 32581f62355f9a541030aac48ac5cd629dba6605889916f6f11ef2b5f1ca0c80 [INFO] running `"docker" "start" "-a" "32581f62355f9a541030aac48ac5cd629dba6605889916f6f11ef2b5f1ca0c80"` [INFO] [stderr] Checking arm v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/fptree.rs:212:13 [INFO] [stderr] | [INFO] [stderr] 212 | count: count, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `count` [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/fptree.rs:212:13 [INFO] [stderr] | [INFO] [stderr] 212 | count: count, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `count` [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/item.rs:25:16 [INFO] [stderr] | [INFO] [stderr] 25 | Item { id: id } [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/item.rs:25:16 [INFO] [stderr] | [INFO] [stderr] 25 | Item { id: id } [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/transaction_reader.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | reader: reader, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/transaction_reader.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | reader: reader, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [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/fptree.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | return tree; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `tree` [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/fptree.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | return tree; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `tree` [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/generate_rules.rs:281:26 [INFO] [stderr] | [INFO] [stderr] 281 | (vec![1, 6], 132113), [INFO] [stderr] | ^^^^^^ help: consider: `132_113` [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/generate_rules.rs:282:23 [INFO] [stderr] | [INFO] [stderr] 282 | (vec![1], 197522), [INFO] [stderr] | ^^^^^^ help: consider: `197_522` [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/generate_rules.rs:285:23 [INFO] [stderr] | [INFO] [stderr] 285 | (vec![6], 601374), [INFO] [stderr] | ^^^^^^ help: consider: `601_374` [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/generate_rules.rs:286:30 [INFO] [stderr] | [INFO] [stderr] 286 | (vec![3, 6, 11], 143682), [INFO] [stderr] | ^^^^^^ help: consider: `143_682` [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/generate_rules.rs:287:27 [INFO] [stderr] | [INFO] [stderr] 287 | (vec![3, 11], 161286), [INFO] [stderr] | ^^^^^^ help: consider: `161_286` [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/generate_rules.rs:288:27 [INFO] [stderr] | [INFO] [stderr] 288 | (vec![6, 11], 324013), [INFO] [stderr] | ^^^^^^ help: consider: `324_013` [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/generate_rules.rs:289:24 [INFO] [stderr] | [INFO] [stderr] 289 | (vec![11], 364065), [INFO] [stderr] | ^^^^^^ help: consider: `364_065` [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/generate_rules.rs:306:26 [INFO] [stderr] | [INFO] [stderr] 306 | (vec![3, 6], 265180), [INFO] [stderr] | ^^^^^^ help: consider: `265_180` [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/generate_rules.rs:307:23 [INFO] [stderr] | [INFO] [stderr] 307 | (vec![3], 450031), [INFO] [stderr] | ^^^^^^ help: consider: `450_031` [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/generate_rules.rs:381:63 [INFO] [stderr] | [INFO] [stderr] 381 | let generated_rules = super::generate_rules(&kosarak, 990002, 0.05, Some(1.5)); [INFO] [stderr] | ^^^^^^ help: consider: `990_002` [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/generate_rules.rs:385:58 [INFO] [stderr] | [INFO] [stderr] 385 | let naive_rules = naive_generate_rules(&kosarak, 990002, 0.05, Some(1.5)); [INFO] [stderr] | ^^^^^^ help: consider: `990_002` [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: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/command_line_args.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | args.min_lift.as_ref().map(|&min_lift| { [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 108 | || if min_lift < 1.0 { [INFO] [stderr] 109 | || println!("Minimum lift must be in range [1,∞]"); [INFO] [stderr] 110 | || process::exit(1); [INFO] [stderr] 111 | || } [INFO] [stderr] 112 | || }); [INFO] [stderr] | ||______^- help: try this: `if let Some(&min_lift) = args.min_lift.as_ref() { ... }` [INFO] [stderr] | |_______| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/fptree.rs:211:20 [INFO] [stderr] | [INFO] [stderr] 211 | items: items.iter().map(|&x| x).sorted(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `items.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/generate_rules.rs:24:36 [INFO] [stderr] | [INFO] [stderr] 24 | fn create_support_lookup(itemsets: &Vec, dataset_size: u32) -> ItemsetSupport { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[ItemSet]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/generate_rules.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | itemset.count as f64 / dataset_size as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(itemset.count)` [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/generate_rules.rs:30:40 [INFO] [stderr] | [INFO] [stderr] 30 | itemset.count as f64 / dataset_size as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(dataset_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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/generate_rules.rs:140:15 [INFO] [stderr] | [INFO] [stderr] 140 | itemsets: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[ItemSet]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/generate_rules.rs:155:27 [INFO] [stderr] | [INFO] [stderr] 155 | let support = i.count as f64 / dataset_size as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(i.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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/generate_rules.rs:155:44 [INFO] [stderr] | [INFO] [stderr] 155 | let support = i.count as f64 / dataset_size as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(dataset_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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/item.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn as_index(&self) -> usize { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/item.rs:30:20 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn is_null(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/item_counter.rs:25:33 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn add(&mut self, item: &Item, count: u32) { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Item` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/item_counter.rs:32:29 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn get(&self, item: &Item) -> u32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Item` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/item_counter.rs:40:33 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn set(&mut self, item: &Item, count: u32) { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Item` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/transaction_reader.rs:47:24 [INFO] [stderr] | [INFO] [stderr] 47 | .split(",") [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/transaction_reader.rs:56:16 [INFO] [stderr] | [INFO] [stderr] 56 | if splits.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!splits.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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:58:43 [INFO] [stderr] | [INFO] [stderr] 58 | (duration.as_secs() * 1_000 as u64) + (duration.subsec_nanos() / 1_000_000) as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos() / 1_000_000)` [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/main.rs:58:43 [INFO] [stderr] | [INFO] [stderr] 58 | (duration.as_secs() * 1_000 as u64) + (duration.subsec_nanos() / 1_000_000) as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/main.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | &vec![], [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:157:12 [INFO] [stderr] | [INFO] [stderr] 157 | rules: &Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/main.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | output.write(item.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `arm`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/command_line_args.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | args.min_lift.as_ref().map(|&min_lift| { [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 108 | || if min_lift < 1.0 { [INFO] [stderr] 109 | || println!("Minimum lift must be in range [1,∞]"); [INFO] [stderr] 110 | || process::exit(1); [INFO] [stderr] 111 | || } [INFO] [stderr] 112 | || }); [INFO] [stderr] | ||______^- help: try this: `if let Some(&min_lift) = args.min_lift.as_ref() { ... }` [INFO] [stderr] | |_______| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/fptree.rs:211:20 [INFO] [stderr] | [INFO] [stderr] 211 | items: items.iter().map(|&x| x).sorted(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `items.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/generate_rules.rs:24:36 [INFO] [stderr] | [INFO] [stderr] 24 | fn create_support_lookup(itemsets: &Vec, dataset_size: u32) -> ItemsetSupport { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[ItemSet]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/generate_rules.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | itemset.count as f64 / dataset_size as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(itemset.count)` [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/generate_rules.rs:30:40 [INFO] [stderr] | [INFO] [stderr] 30 | itemset.count as f64 / dataset_size as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(dataset_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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/generate_rules.rs:140:15 [INFO] [stderr] | [INFO] [stderr] 140 | itemsets: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[ItemSet]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/generate_rules.rs:155:27 [INFO] [stderr] | [INFO] [stderr] 155 | let support = i.count as f64 / dataset_size as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(i.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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/generate_rules.rs:155:44 [INFO] [stderr] | [INFO] [stderr] 155 | let support = i.count as f64 / dataset_size as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(dataset_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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/generate_rules.rs:235:19 [INFO] [stderr] | [INFO] [stderr] 235 | itemsets: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[ItemSet]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/generate_rules.rs:316:29 [INFO] [stderr] | [INFO] [stderr] 316 | let expected_rules: HashMap<(Vec, Vec), (f64, f64, f64)> = [ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:122:34 [INFO] [stderr] | [INFO] [stderr] 122 | assert_eq!(index.support(&vec![itemizer.id_of("a")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("a")]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 122 | assert_eq!(index.support(&vec![itemizer.id_of("a")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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/index.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 122 | assert_eq!(index.support(&vec![itemizer.id_of("a")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:123:34 [INFO] [stderr] | [INFO] [stderr] 123 | assert_eq!(index.support(&vec![itemizer.id_of("b")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("b")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | assert_eq!(index.support(&vec![itemizer.id_of("b")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | assert_eq!(index.support(&vec![itemizer.id_of("b")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:124:34 [INFO] [stderr] | [INFO] [stderr] 124 | assert_eq!(index.support(&vec![itemizer.id_of("c")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("c")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | assert_eq!(index.support(&vec![itemizer.id_of("c")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | assert_eq!(index.support(&vec![itemizer.id_of("c")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:125:34 [INFO] [stderr] | [INFO] [stderr] 125 | assert_eq!(index.support(&vec![itemizer.id_of("d")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("d")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | assert_eq!(index.support(&vec![itemizer.id_of("d")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | assert_eq!(index.support(&vec![itemizer.id_of("d")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:126:34 [INFO] [stderr] | [INFO] [stderr] 126 | assert_eq!(index.support(&vec![itemizer.id_of("e")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("e")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | assert_eq!(index.support(&vec![itemizer.id_of("e")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | assert_eq!(index.support(&vec![itemizer.id_of("e")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:127:34 [INFO] [stderr] | [INFO] [stderr] 127 | assert_eq!(index.support(&vec![itemizer.id_of("f")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("f")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | assert_eq!(index.support(&vec![itemizer.id_of("f")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | assert_eq!(index.support(&vec![itemizer.id_of("f")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:128:34 [INFO] [stderr] | [INFO] [stderr] 128 | assert_eq!(index.support(&vec![itemizer.id_of("h")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("h")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | assert_eq!(index.support(&vec![itemizer.id_of("h")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | assert_eq!(index.support(&vec![itemizer.id_of("h")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:129:34 [INFO] [stderr] | [INFO] [stderr] 129 | assert_eq!(index.support(&vec![itemizer.id_of("i")]), 2.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("i")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | assert_eq!(index.support(&vec![itemizer.id_of("i")]), 2.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | assert_eq!(index.support(&vec![itemizer.id_of("i")]), 2.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:130:34 [INFO] [stderr] | [INFO] [stderr] 130 | assert_eq!(index.support(&vec![itemizer.id_of("j")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("j")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | assert_eq!(index.support(&vec![itemizer.id_of("j")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | assert_eq!(index.support(&vec![itemizer.id_of("j")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:131:34 [INFO] [stderr] | [INFO] [stderr] 131 | assert_eq!(index.support(&vec![itemizer.id_of("k")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("k")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | assert_eq!(index.support(&vec![itemizer.id_of("k")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | assert_eq!(index.support(&vec![itemizer.id_of("k")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:132:34 [INFO] [stderr] | [INFO] [stderr] 132 | assert_eq!(index.support(&vec![itemizer.id_of("l")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("l")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | assert_eq!(index.support(&vec![itemizer.id_of("l")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | assert_eq!(index.support(&vec![itemizer.id_of("l")]), 1.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:133:34 [INFO] [stderr] | [INFO] [stderr] 133 | assert_eq!(index.support(&vec![itemizer.id_of("z")]), 4.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("z")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | assert_eq!(index.support(&vec![itemizer.id_of("z")]), 4.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | assert_eq!(index.support(&vec![itemizer.id_of("z")]), 4.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:134:34 [INFO] [stderr] | [INFO] [stderr] 134 | assert_eq!(index.support(&vec![itemizer.id_of("x")]), 4.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("x")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | assert_eq!(index.support(&vec![itemizer.id_of("x")]), 4.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | assert_eq!(index.support(&vec![itemizer.id_of("x")]), 4.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:135:34 [INFO] [stderr] | [INFO] [stderr] 135 | assert_eq!(index.support(&vec![itemizer.id_of("y")]), 2.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("y")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | assert_eq!(index.support(&vec![itemizer.id_of("y")]), 2.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | assert_eq!(index.support(&vec![itemizer.id_of("y")]), 2.0 / 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:137:27 [INFO] [stderr] | [INFO] [stderr] 137 | index.support(&vec![itemizer.id_of("x"), itemizer.id_of("z")]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[itemizer.id_of("x"), itemizer.id_of("z")]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | / assert_eq!( [INFO] [stderr] 137 | | index.support(&vec![itemizer.id_of("x"), itemizer.id_of("z")]), [INFO] [stderr] 138 | | 4.0 / 6.0 [INFO] [stderr] 139 | | ); [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | / assert_eq!( [INFO] [stderr] 137 | | index.support(&vec![itemizer.id_of("x"), itemizer.id_of("z")]), [INFO] [stderr] 138 | | 4.0 / 6.0 [INFO] [stderr] 139 | | ); [INFO] [stderr] | |__________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/index.rs:141:13 [INFO] [stderr] | [INFO] [stderr] 141 | / index.support(&vec![ [INFO] [stderr] 142 | | itemizer.id_of("x"), [INFO] [stderr] 143 | | itemizer.id_of("y"), [INFO] [stderr] 144 | | itemizer.id_of("z"), [INFO] [stderr] 145 | | ]) == 2.0 / 6.0 [INFO] [stderr] | |___________________________^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/index.rs:141:13 [INFO] [stderr] | [INFO] [stderr] 141 | / index.support(&vec![ [INFO] [stderr] 142 | | itemizer.id_of("x"), [INFO] [stderr] 143 | | itemizer.id_of("y"), [INFO] [stderr] 144 | | itemizer.id_of("z"), [INFO] [stderr] 145 | | ]) == 2.0 / 6.0 [INFO] [stderr] | |___________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 141 | (index.support(&vec![ [INFO] [stderr] 142 | itemizer.id_of("x"), [INFO] [stderr] 143 | itemizer.id_of("y"), [INFO] [stderr] 144 | itemizer.id_of("z"), [INFO] [stderr] 145 | ]) - 2.0 / 6.0).abs() < error [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/index.rs:141:27 [INFO] [stderr] | [INFO] [stderr] 141 | index.support(&vec![ [INFO] [stderr] | ___________________________^ [INFO] [stderr] 142 | | itemizer.id_of("x"), [INFO] [stderr] 143 | | itemizer.id_of("y"), [INFO] [stderr] 144 | | itemizer.id_of("z"), [INFO] [stderr] 145 | | ]) == 2.0 / 6.0 [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] help: you can use a slice directly [INFO] [stderr] | [INFO] [stderr] 141 | index.support(&[itemizer.id_of("x"), [INFO] [stderr] 142 | itemizer.id_of("y"), [INFO] [stderr] 143 | itemizer.id_of("z")]) == 2.0 / 6.0 [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/item.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn as_index(&self) -> usize { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/item.rs:30:20 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn is_null(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/item_counter.rs:25:33 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn add(&mut self, item: &Item, count: u32) { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Item` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/item_counter.rs:32:29 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn get(&self, item: &Item) -> u32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Item` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/item_counter.rs:40:33 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn set(&mut self, item: &Item, count: u32) { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Item` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/transaction_reader.rs:47:24 [INFO] [stderr] | [INFO] [stderr] 47 | .split(",") [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/transaction_reader.rs:56:16 [INFO] [stderr] | [INFO] [stderr] 56 | if splits.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!splits.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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/vec_sets.rs:132:20 [INFO] [stderr] | [INFO] [stderr] 132 | let cases: Vec<(Vec, Item, (Vec, Vec))> = [ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:58:43 [INFO] [stderr] | [INFO] [stderr] 58 | (duration.as_secs() * 1_000 as u64) + (duration.subsec_nanos() / 1_000_000) as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos() / 1_000_000)` [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/main.rs:58:43 [INFO] [stderr] | [INFO] [stderr] 58 | (duration.as_secs() * 1_000 as u64) + (duration.subsec_nanos() / 1_000_000) as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/main.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | &vec![], [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:157:12 [INFO] [stderr] | [INFO] [stderr] 157 | rules: &Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/main.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | output.write(item.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: aborting due to 17 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `arm`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "32581f62355f9a541030aac48ac5cd629dba6605889916f6f11ef2b5f1ca0c80"` [INFO] running `"docker" "rm" "-f" "32581f62355f9a541030aac48ac5cd629dba6605889916f6f11ef2b5f1ca0c80"` [INFO] [stdout] 32581f62355f9a541030aac48ac5cd629dba6605889916f6f11ef2b5f1ca0c80