[INFO] crate qr-encode 0.1.9 is already in cache [INFO] extracting crate qr-encode 0.1.9 into work/ex/clippy-test-run/sources/stable/reg/qr-encode/0.1.9 [INFO] extracting crate qr-encode 0.1.9 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/qr-encode/0.1.9 [INFO] validating manifest of qr-encode-0.1.9 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 qr-encode-0.1.9 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 qr-encode-0.1.9 [INFO] finished frobbing qr-encode-0.1.9 [INFO] frobbed toml for qr-encode-0.1.9 written to work/ex/clippy-test-run/sources/stable/reg/qr-encode/0.1.9/Cargo.toml [INFO] started frobbing qr-encode-0.1.9 [INFO] finished frobbing qr-encode-0.1.9 [INFO] frobbed toml for qr-encode-0.1.9 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/qr-encode/0.1.9/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 qr-encode-0.1.9 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/qr-encode/0.1.9:/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] de909b4b924e52394d44bda1995289283f3bcbba5f529259c3d7188fb8d1ec30 [INFO] running `"docker" "start" "-a" "de909b4b924e52394d44bda1995289283f3bcbba5f529259c3d7188fb8d1ec30"` [INFO] [stderr] Checking reed-solomon v0.2.1 [INFO] [stderr] Checking png v0.12.0 [INFO] [stderr] Checking image v0.19.0 [INFO] [stderr] Checking qr-encode v0.1.9 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/qr_encoder/util.rs:172:9 [INFO] [stderr] | [INFO] [stderr] 172 | capacity: capacity, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `capacity` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/qr_encoder/util.rs:315:9 [INFO] [stderr] | [INFO] [stderr] 315 | version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [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/qr_encoder/util.rs:316:9 [INFO] [stderr] | [INFO] [stderr] 316 | 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/qr_encoder/util.rs:318:9 [INFO] [stderr] | [INFO] [stderr] 318 | codeword_properties: codeword_properties, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `codeword_properties` [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/qr_encoder/util.rs:322:9 [INFO] [stderr] | [INFO] [stderr] 322 | debug_mode: debug_mode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `debug_mode` [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/qr_encoder/config.rs:1013:66 [INFO] [stderr] | [INFO] [stderr] 1013 | let plot_point = PlotPoint { point: Point(x, y), color: color }; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `color` [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/qr_encoder/util.rs:172:9 [INFO] [stderr] | [INFO] [stderr] 172 | capacity: capacity, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `capacity` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/qr_encoder/util.rs:315:9 [INFO] [stderr] | [INFO] [stderr] 315 | version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [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/qr_encoder/util.rs:316:9 [INFO] [stderr] | [INFO] [stderr] 316 | 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/qr_encoder/util.rs:318:9 [INFO] [stderr] | [INFO] [stderr] 318 | codeword_properties: codeword_properties, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `codeword_properties` [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/qr_encoder/util.rs:322:9 [INFO] [stderr] | [INFO] [stderr] 322 | debug_mode: debug_mode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `debug_mode` [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/qr_encoder/config.rs:1013:66 [INFO] [stderr] | [INFO] [stderr] 1013 | let plot_point = PlotPoint { point: Point(x, y), color: color }; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `color` [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: unused imports: `CellType`, `Color` [INFO] [stderr] --> src/qr_encoder/qr.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | CellType, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 5 | Color [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `get_index_value`, `set_color` [INFO] [stderr] --> src/qr_encoder/qr.rs:9:24 [INFO] [stderr] | [INFO] [stderr] 9 | use qr_encoder::util::{set_color, get_index_value}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BitXorAssign` [INFO] [stderr] --> src/qr_encoder/config.rs:3:16 [INFO] [stderr] | [INFO] [stderr] 3 | use std::ops::{BitXorAssign}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Binary`, `Debug` [INFO] [stderr] --> src/qr_encoder/config.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fmt::{Binary, Debug}; [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/qr_encoder/config.rs:374:9 [INFO] [stderr] | [INFO] [stderr] 374 | total [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/qr_encoder/config.rs:372:21 [INFO] [stderr] | [INFO] [stderr] 372 | let total = one + two + three + four; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/qr_encoder/config.rs:407:33 [INFO] [stderr] | [INFO] [stderr] 407 | let pattern_mask: u16 = 0b00001011101; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0b000_0101_1101` [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/qr_encoder/config.rs:408:33 [INFO] [stderr] | [INFO] [stderr] 408 | let reverse_mask: u16 = 0b10111010000; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0b101_1101_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/qr_encoder/config.rs:409:34 [INFO] [stderr] | [INFO] [stderr] 409 | let remap_pattern: u16 = 0b11111111111; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0b111_1111_1111` [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/qr_encoder/config.rs:431:33 [INFO] [stderr] | [INFO] [stderr] 431 | let pattern_mask: u16 = 0b00001011101; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0b000_0101_1101` [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/qr_encoder/config.rs:432:33 [INFO] [stderr] | [INFO] [stderr] 432 | let reverse_mask: u16 = 0b10111010000; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0b101_1101_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/qr_encoder/config.rs:433:34 [INFO] [stderr] | [INFO] [stderr] 433 | let remap_pattern: u16 = 0b11111111111; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0b111_1111_1111` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/qr_encoder/config.rs:980:17 [INFO] [stderr] | [INFO] [stderr] 980 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/qr_encoder/config.rs:975:30 [INFO] [stderr] | [INFO] [stderr] 975 | let result = match cell.module_type { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 976 | | CellType::None => true, [INFO] [stderr] 977 | | _ => false [INFO] [stderr] 978 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CellType`, `Color` [INFO] [stderr] --> src/qr_encoder/qr.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | CellType, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 5 | Color [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `get_index_value`, `set_color` [INFO] [stderr] --> src/qr_encoder/qr.rs:9:24 [INFO] [stderr] | [INFO] [stderr] 9 | use qr_encoder::util::{set_color, get_index_value}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BitXorAssign` [INFO] [stderr] --> src/qr_encoder/config.rs:3:16 [INFO] [stderr] | [INFO] [stderr] 3 | use std::ops::{BitXorAssign}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Binary`, `Debug` [INFO] [stderr] --> src/qr_encoder/config.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fmt::{Binary, Debug}; [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/qr_encoder/config.rs:374:9 [INFO] [stderr] | [INFO] [stderr] 374 | total [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/qr_encoder/config.rs:372:21 [INFO] [stderr] | [INFO] [stderr] 372 | let total = one + two + three + four; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/qr_encoder/config.rs:407:33 [INFO] [stderr] | [INFO] [stderr] 407 | let pattern_mask: u16 = 0b00001011101; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0b000_0101_1101` [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/qr_encoder/config.rs:408:33 [INFO] [stderr] | [INFO] [stderr] 408 | let reverse_mask: u16 = 0b10111010000; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0b101_1101_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/qr_encoder/config.rs:409:34 [INFO] [stderr] | [INFO] [stderr] 409 | let remap_pattern: u16 = 0b11111111111; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0b111_1111_1111` [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/qr_encoder/config.rs:431:33 [INFO] [stderr] | [INFO] [stderr] 431 | let pattern_mask: u16 = 0b00001011101; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0b000_0101_1101` [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/qr_encoder/config.rs:432:33 [INFO] [stderr] | [INFO] [stderr] 432 | let reverse_mask: u16 = 0b10111010000; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0b101_1101_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/qr_encoder/config.rs:433:34 [INFO] [stderr] | [INFO] [stderr] 433 | let remap_pattern: u16 = 0b11111111111; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `0b111_1111_1111` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/qr_encoder/config.rs:980:17 [INFO] [stderr] | [INFO] [stderr] 980 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/qr_encoder/config.rs:975:30 [INFO] [stderr] | [INFO] [stderr] 975 | let result = match cell.module_type { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 976 | | CellType::None => true, [INFO] [stderr] 977 | | _ => false [INFO] [stderr] 978 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: value assigned to `second_byte` is never read [INFO] [stderr] --> src/qr_encoder/config.rs:634:21 [INFO] [stderr] | [INFO] [stderr] 634 | let mut second_byte: u8 = data_length as u8; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `end_y` is never read [INFO] [stderr] --> src/qr_encoder/config.rs:839:17 [INFO] [stderr] | [INFO] [stderr] 839 | let mut end_y = 0; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/qr_encoder/util.rs:163:49 [INFO] [stderr] | [INFO] [stderr] 163 | let (ec_cw_count, blocks): (usize, usize) = match err_correction_level { [INFO] [stderr] | _________________________________________________^ [INFO] [stderr] 164 | | &ECLevel::Low => (ecc_settings.0, block_count.0), [INFO] [stderr] 165 | | &ECLevel::Medium => (ecc_settings.1, block_count.1), [INFO] [stderr] 166 | | &ECLevel::Q => (ecc_settings.2, block_count.2), [INFO] [stderr] 167 | | &ECLevel::High => (ecc_settings.3, block_count.3) [INFO] [stderr] 168 | | }; [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] 163 | let (ec_cw_count, blocks): (usize, usize) = match *err_correction_level { [INFO] [stderr] 164 | ECLevel::Low => (ecc_settings.0, block_count.0), [INFO] [stderr] 165 | ECLevel::Medium => (ecc_settings.1, block_count.1), [INFO] [stderr] 166 | ECLevel::Q => (ecc_settings.2, block_count.2), [INFO] [stderr] 167 | ECLevel::High => (ecc_settings.3, block_count.3) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get_mut().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/qr_encoder/config.rs:54:16 [INFO] [stderr] | [INFO] [stderr] 54 | let cell = body.get_mut(index).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `body[index]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: value assigned to `second_byte` is never read [INFO] [stderr] --> src/qr_encoder/config.rs:634:21 [INFO] [stderr] | [INFO] [stderr] 634 | let mut second_byte: u8 = data_length as u8; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `end_y` is never read [INFO] [stderr] --> src/qr_encoder/config.rs:839:17 [INFO] [stderr] | [INFO] [stderr] 839 | let mut end_y = 0; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:269:13 [INFO] [stderr] | [INFO] [stderr] 269 | / match body.get_mut(*i) { [INFO] [stderr] 270 | | Some(c) => c.color = color, [INFO] [stderr] 271 | | None => {} [INFO] [stderr] 272 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(c) = body.get_mut(*i) { c.color = color }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | / match body.get_mut(*idx) { [INFO] [stderr] 283 | | Some(c) => c.color = color, [INFO] [stderr] 284 | | None => {} [INFO] [stderr] 285 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(c) = body.get_mut(*idx) { c.color = color }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/qr_encoder/config.rs:298:41 [INFO] [stderr] | [INFO] [stderr] 298 | let format_str = ecc_format_u16(data as u16, GEN_POLY_FORMAT, ECC_FORMAT_MASK); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(data)` [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: called `.get_mut().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/qr_encoder/config.rs:314:24 [INFO] [stderr] | [INFO] [stderr] 314 | let cell = body.get_mut(idx).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `body[idx]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:353:13 [INFO] [stderr] | [INFO] [stderr] 353 | / match cell.module_type { [INFO] [stderr] 354 | | CellType::Message => { [INFO] [stderr] 355 | | let flip_module = pattern(cell.point.0, cell.point.1); [INFO] [stderr] 356 | | if flip_module && cell.is_black() { [INFO] [stderr] ... | [INFO] [stderr] 362 | | _ => {} [INFO] [stderr] 363 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 353 | if let CellType::Message = cell.module_type { [INFO] [stderr] 354 | let flip_module = pattern(cell.point.0, cell.point.1); [INFO] [stderr] 355 | if flip_module && cell.is_black() { [INFO] [stderr] 356 | cell.color = Color { r: 255, g: 255, b: 255 }; [INFO] [stderr] 357 | } else if flip_module { [INFO] [stderr] 358 | cell.color = Color { r: 0, g: 0, b: 0 }; [INFO] [stderr] ... [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/qr_encoder/config.rs:367:45 [INFO] [stderr] | [INFO] [stderr] 367 | pub fn eval_penalty_scores(&self, body: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/qr_encoder/config.rs:377:48 [INFO] [stderr] | [INFO] [stderr] 377 | pub fn penalty_score_eval_two(&self, body: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/qr_encoder/config.rs:391:46 [INFO] [stderr] | [INFO] [stderr] 391 | let square = adjacent_coords.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [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/qr_encoder/config.rs:405:34 [INFO] [stderr] | [INFO] [stderr] 405 | fn check_column(&self, body: &Vec, column: isize) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/qr_encoder/config.rs:429:31 [INFO] [stderr] | [INFO] [stderr] 429 | fn check_row(&self, body: &Vec, row: isize) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/qr_encoder/config.rs:453:50 [INFO] [stderr] | [INFO] [stderr] 453 | pub fn penalty_score_eval_three(&self, body: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/qr_encoder/config.rs:463:48 [INFO] [stderr] | [INFO] [stderr] 463 | pub fn penalty_score_eval_one(&self, body: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/qr_encoder/config.rs:528:49 [INFO] [stderr] | [INFO] [stderr] 528 | pub fn penalty_score_eval_four(&self, body: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/qr_encoder/config.rs:576:13 [INFO] [stderr] | [INFO] [stderr] 576 | let ref data = self.data; [INFO] [stderr] | ----^^^^^^^^------------- help: try: `let data = &self.data;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/qr_encoder/config.rs:577:13 [INFO] [stderr] | [INFO] [stderr] 577 | let ref codewords = self.codewords; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let codewords = &self.codewords;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/qr_encoder/config.rs:744:34 [INFO] [stderr] | [INFO] [stderr] 744 | for index in indices.into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:745:17 [INFO] [stderr] | [INFO] [stderr] 745 | / match body.get_mut(*index) { [INFO] [stderr] 746 | | Some(cell) => { [INFO] [stderr] 747 | | cell.module_type = CellType::VersionInformation; [INFO] [stderr] 748 | | cell.color = Color { r: 200, g: 200, b: 123 }; [INFO] [stderr] 749 | | }, [INFO] [stderr] 750 | | None => {} [INFO] [stderr] 751 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 745 | if let Some(cell) = body.get_mut(*index) { [INFO] [stderr] 746 | cell.module_type = CellType::VersionInformation; [INFO] [stderr] 747 | cell.color = Color { r: 200, g: 200, b: 123 }; [INFO] [stderr] 748 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:771:13 [INFO] [stderr] | [INFO] [stderr] 771 | / match body.get_mut(idx) { [INFO] [stderr] 772 | | Some(cell) => { [INFO] [stderr] 773 | | cell.module_type = CellType::Format; [INFO] [stderr] 774 | | cell.color = Color { r: 10, g: 140, b: 230 }; [INFO] [stderr] 775 | | }, [INFO] [stderr] 776 | | None => {} [INFO] [stderr] 777 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 771 | if let Some(cell) = body.get_mut(idx) { [INFO] [stderr] 772 | cell.module_type = CellType::Format; [INFO] [stderr] 773 | cell.color = Color { r: 10, g: 140, b: 230 }; [INFO] [stderr] 774 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:788:13 [INFO] [stderr] | [INFO] [stderr] 788 | / match body.get_mut(idx) { [INFO] [stderr] 789 | | Some(cell) => { [INFO] [stderr] 790 | | cell.module_type = CellType::Format; [INFO] [stderr] 791 | | cell.color = Color { r: 10, g: 140, b: 230 }; [INFO] [stderr] 792 | | }, [INFO] [stderr] 793 | | None => {} [INFO] [stderr] 794 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 788 | if let Some(cell) = body.get_mut(idx) { [INFO] [stderr] 789 | cell.module_type = CellType::Format; [INFO] [stderr] 790 | cell.color = Color { r: 10, g: 140, b: 230 }; [INFO] [stderr] 791 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:808:9 [INFO] [stderr] | [INFO] [stderr] 808 | / match body.get_mut(idx) { [INFO] [stderr] 809 | | Some(cell) => { [INFO] [stderr] 810 | | cell.module_type = CellType::DarkModule; [INFO] [stderr] 811 | | cell.color = Color { r: 0, g: 0, b: 0 }; [INFO] [stderr] 812 | | }, [INFO] [stderr] 813 | | None => {} [INFO] [stderr] 814 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 808 | if let Some(cell) = body.get_mut(idx) { [INFO] [stderr] 809 | cell.module_type = CellType::DarkModule; [INFO] [stderr] 810 | cell.color = Color { r: 0, g: 0, b: 0 }; [INFO] [stderr] 811 | } [INFO] [stderr] | [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/qr_encoder/config.rs:817:74 [INFO] [stderr] | [INFO] [stderr] 817 | pub fn apply_alignment_patterns(&self, body: &mut Vec, points: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[PlotPoint]` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:820:13 [INFO] [stderr] | [INFO] [stderr] 820 | / match body.get_mut(idx) { [INFO] [stderr] 821 | | Some(cell) => { [INFO] [stderr] 822 | | cell.module_type = CellType::Alignment; [INFO] [stderr] 823 | | cell.color = plot_point.color [INFO] [stderr] 824 | | }, [INFO] [stderr] 825 | | None => {} [INFO] [stderr] 826 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 820 | if let Some(cell) = body.get_mut(idx) { [INFO] [stderr] 821 | cell.module_type = CellType::Alignment; [INFO] [stderr] 822 | cell.color = plot_point.color [INFO] [stderr] 823 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/qr_encoder/config.rs:876:48 [INFO] [stderr] | [INFO] [stderr] 876 | } else if end_y > y && start_x > y { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 877 | | y += 1; [INFO] [stderr] 878 | | } else if (end_x > 0 && end_x - 1 > x) && end_y == y { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/qr_encoder/config.rs:874:51 [INFO] [stderr] | [INFO] [stderr] 874 | } else if end_x == x && end_y - 1 > y { [INFO] [stderr] | ___________________________________________________^ [INFO] [stderr] 875 | | y += 1; [INFO] [stderr] 876 | | } else if end_y > y && start_x > y { [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:889:13 [INFO] [stderr] | [INFO] [stderr] 889 | / match body.get_mut(idx) { [INFO] [stderr] 890 | | Some(cell) => { [INFO] [stderr] 891 | | cell.module_type = CellType::Finder; [INFO] [stderr] 892 | | cell.color = plot_point.color [INFO] [stderr] 893 | | }, [INFO] [stderr] 894 | | None => {} [INFO] [stderr] 895 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 889 | if let Some(cell) = body.get_mut(idx) { [INFO] [stderr] 890 | cell.module_type = CellType::Finder; [INFO] [stderr] 891 | cell.color = plot_point.color [INFO] [stderr] 892 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:907:13 [INFO] [stderr] | [INFO] [stderr] 907 | / match body.get_mut(idx) { [INFO] [stderr] 908 | | Some(cell) => { [INFO] [stderr] 909 | | match cell.module_type { [INFO] [stderr] 910 | | CellType::None | CellType::Format => { [INFO] [stderr] ... | [INFO] [stderr] 924 | | None => {} [INFO] [stderr] 925 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 907 | if let Some(cell) = body.get_mut(idx) { [INFO] [stderr] 908 | match cell.module_type { [INFO] [stderr] 909 | CellType::None | CellType::Format => { [INFO] [stderr] 910 | let direction = if y > x { [INFO] [stderr] 911 | y [INFO] [stderr] 912 | } else { [INFO] [stderr] ... [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/qr_encoder/config.rs:937:46 [INFO] [stderr] | [INFO] [stderr] 937 | pub fn get_alignment_points(&self, body: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: called `cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stderr] --> src/qr_encoder/config.rs:992:36 [INFO] [stderr] | [INFO] [stderr] 992 | let xnumbers: Vec = numbers.iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_cloned_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `qr-encode`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/qr_encoder/util.rs:163:49 [INFO] [stderr] | [INFO] [stderr] 163 | let (ec_cw_count, blocks): (usize, usize) = match err_correction_level { [INFO] [stderr] | _________________________________________________^ [INFO] [stderr] 164 | | &ECLevel::Low => (ecc_settings.0, block_count.0), [INFO] [stderr] 165 | | &ECLevel::Medium => (ecc_settings.1, block_count.1), [INFO] [stderr] 166 | | &ECLevel::Q => (ecc_settings.2, block_count.2), [INFO] [stderr] 167 | | &ECLevel::High => (ecc_settings.3, block_count.3) [INFO] [stderr] 168 | | }; [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] 163 | let (ec_cw_count, blocks): (usize, usize) = match *err_correction_level { [INFO] [stderr] 164 | ECLevel::Low => (ecc_settings.0, block_count.0), [INFO] [stderr] 165 | ECLevel::Medium => (ecc_settings.1, block_count.1), [INFO] [stderr] 166 | ECLevel::Q => (ecc_settings.2, block_count.2), [INFO] [stderr] 167 | ECLevel::High => (ecc_settings.3, block_count.3) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get_mut().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/qr_encoder/config.rs:54:16 [INFO] [stderr] | [INFO] [stderr] 54 | let cell = body.get_mut(index).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `body[index]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:269:13 [INFO] [stderr] | [INFO] [stderr] 269 | / match body.get_mut(*i) { [INFO] [stderr] 270 | | Some(c) => c.color = color, [INFO] [stderr] 271 | | None => {} [INFO] [stderr] 272 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(c) = body.get_mut(*i) { c.color = color }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | / match body.get_mut(*idx) { [INFO] [stderr] 283 | | Some(c) => c.color = color, [INFO] [stderr] 284 | | None => {} [INFO] [stderr] 285 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(c) = body.get_mut(*idx) { c.color = color }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/qr_encoder/config.rs:298:41 [INFO] [stderr] | [INFO] [stderr] 298 | let format_str = ecc_format_u16(data as u16, GEN_POLY_FORMAT, ECC_FORMAT_MASK); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(data)` [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: called `.get_mut().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/qr_encoder/config.rs:314:24 [INFO] [stderr] | [INFO] [stderr] 314 | let cell = body.get_mut(idx).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `body[idx]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:353:13 [INFO] [stderr] | [INFO] [stderr] 353 | / match cell.module_type { [INFO] [stderr] 354 | | CellType::Message => { [INFO] [stderr] 355 | | let flip_module = pattern(cell.point.0, cell.point.1); [INFO] [stderr] 356 | | if flip_module && cell.is_black() { [INFO] [stderr] ... | [INFO] [stderr] 362 | | _ => {} [INFO] [stderr] 363 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 353 | if let CellType::Message = cell.module_type { [INFO] [stderr] 354 | let flip_module = pattern(cell.point.0, cell.point.1); [INFO] [stderr] 355 | if flip_module && cell.is_black() { [INFO] [stderr] 356 | cell.color = Color { r: 255, g: 255, b: 255 }; [INFO] [stderr] 357 | } else if flip_module { [INFO] [stderr] 358 | cell.color = Color { r: 0, g: 0, b: 0 }; [INFO] [stderr] ... [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/qr_encoder/config.rs:367:45 [INFO] [stderr] | [INFO] [stderr] 367 | pub fn eval_penalty_scores(&self, body: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/qr_encoder/config.rs:377:48 [INFO] [stderr] | [INFO] [stderr] 377 | pub fn penalty_score_eval_two(&self, body: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/qr_encoder/config.rs:391:46 [INFO] [stderr] | [INFO] [stderr] 391 | let square = adjacent_coords.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [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/qr_encoder/config.rs:405:34 [INFO] [stderr] | [INFO] [stderr] 405 | fn check_column(&self, body: &Vec, column: isize) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/qr_encoder/config.rs:429:31 [INFO] [stderr] | [INFO] [stderr] 429 | fn check_row(&self, body: &Vec, row: isize) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/qr_encoder/config.rs:453:50 [INFO] [stderr] | [INFO] [stderr] 453 | pub fn penalty_score_eval_three(&self, body: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/qr_encoder/config.rs:463:48 [INFO] [stderr] | [INFO] [stderr] 463 | pub fn penalty_score_eval_one(&self, body: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/qr_encoder/config.rs:528:49 [INFO] [stderr] | [INFO] [stderr] 528 | pub fn penalty_score_eval_four(&self, body: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/qr_encoder/config.rs:576:13 [INFO] [stderr] | [INFO] [stderr] 576 | let ref data = self.data; [INFO] [stderr] | ----^^^^^^^^------------- help: try: `let data = &self.data;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/qr_encoder/config.rs:577:13 [INFO] [stderr] | [INFO] [stderr] 577 | let ref codewords = self.codewords; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let codewords = &self.codewords;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/qr_encoder/config.rs:744:34 [INFO] [stderr] | [INFO] [stderr] 744 | for index in indices.into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:745:17 [INFO] [stderr] | [INFO] [stderr] 745 | / match body.get_mut(*index) { [INFO] [stderr] 746 | | Some(cell) => { [INFO] [stderr] 747 | | cell.module_type = CellType::VersionInformation; [INFO] [stderr] 748 | | cell.color = Color { r: 200, g: 200, b: 123 }; [INFO] [stderr] 749 | | }, [INFO] [stderr] 750 | | None => {} [INFO] [stderr] 751 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 745 | if let Some(cell) = body.get_mut(*index) { [INFO] [stderr] 746 | cell.module_type = CellType::VersionInformation; [INFO] [stderr] 747 | cell.color = Color { r: 200, g: 200, b: 123 }; [INFO] [stderr] 748 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:771:13 [INFO] [stderr] | [INFO] [stderr] 771 | / match body.get_mut(idx) { [INFO] [stderr] 772 | | Some(cell) => { [INFO] [stderr] 773 | | cell.module_type = CellType::Format; [INFO] [stderr] 774 | | cell.color = Color { r: 10, g: 140, b: 230 }; [INFO] [stderr] 775 | | }, [INFO] [stderr] 776 | | None => {} [INFO] [stderr] 777 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 771 | if let Some(cell) = body.get_mut(idx) { [INFO] [stderr] 772 | cell.module_type = CellType::Format; [INFO] [stderr] 773 | cell.color = Color { r: 10, g: 140, b: 230 }; [INFO] [stderr] 774 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:788:13 [INFO] [stderr] | [INFO] [stderr] 788 | / match body.get_mut(idx) { [INFO] [stderr] 789 | | Some(cell) => { [INFO] [stderr] 790 | | cell.module_type = CellType::Format; [INFO] [stderr] 791 | | cell.color = Color { r: 10, g: 140, b: 230 }; [INFO] [stderr] 792 | | }, [INFO] [stderr] 793 | | None => {} [INFO] [stderr] 794 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 788 | if let Some(cell) = body.get_mut(idx) { [INFO] [stderr] 789 | cell.module_type = CellType::Format; [INFO] [stderr] 790 | cell.color = Color { r: 10, g: 140, b: 230 }; [INFO] [stderr] 791 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:808:9 [INFO] [stderr] | [INFO] [stderr] 808 | / match body.get_mut(idx) { [INFO] [stderr] 809 | | Some(cell) => { [INFO] [stderr] 810 | | cell.module_type = CellType::DarkModule; [INFO] [stderr] 811 | | cell.color = Color { r: 0, g: 0, b: 0 }; [INFO] [stderr] 812 | | }, [INFO] [stderr] 813 | | None => {} [INFO] [stderr] 814 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 808 | if let Some(cell) = body.get_mut(idx) { [INFO] [stderr] 809 | cell.module_type = CellType::DarkModule; [INFO] [stderr] 810 | cell.color = Color { r: 0, g: 0, b: 0 }; [INFO] [stderr] 811 | } [INFO] [stderr] | [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/qr_encoder/config.rs:817:74 [INFO] [stderr] | [INFO] [stderr] 817 | pub fn apply_alignment_patterns(&self, body: &mut Vec, points: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[PlotPoint]` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:820:13 [INFO] [stderr] | [INFO] [stderr] 820 | / match body.get_mut(idx) { [INFO] [stderr] 821 | | Some(cell) => { [INFO] [stderr] 822 | | cell.module_type = CellType::Alignment; [INFO] [stderr] 823 | | cell.color = plot_point.color [INFO] [stderr] 824 | | }, [INFO] [stderr] 825 | | None => {} [INFO] [stderr] 826 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 820 | if let Some(cell) = body.get_mut(idx) { [INFO] [stderr] 821 | cell.module_type = CellType::Alignment; [INFO] [stderr] 822 | cell.color = plot_point.color [INFO] [stderr] 823 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/qr_encoder/config.rs:876:48 [INFO] [stderr] | [INFO] [stderr] 876 | } else if end_y > y && start_x > y { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 877 | | y += 1; [INFO] [stderr] 878 | | } else if (end_x > 0 && end_x - 1 > x) && end_y == y { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/qr_encoder/config.rs:874:51 [INFO] [stderr] | [INFO] [stderr] 874 | } else if end_x == x && end_y - 1 > y { [INFO] [stderr] | ___________________________________________________^ [INFO] [stderr] 875 | | y += 1; [INFO] [stderr] 876 | | } else if end_y > y && start_x > y { [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:889:13 [INFO] [stderr] | [INFO] [stderr] 889 | / match body.get_mut(idx) { [INFO] [stderr] 890 | | Some(cell) => { [INFO] [stderr] 891 | | cell.module_type = CellType::Finder; [INFO] [stderr] 892 | | cell.color = plot_point.color [INFO] [stderr] 893 | | }, [INFO] [stderr] 894 | | None => {} [INFO] [stderr] 895 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 889 | if let Some(cell) = body.get_mut(idx) { [INFO] [stderr] 890 | cell.module_type = CellType::Finder; [INFO] [stderr] 891 | cell.color = plot_point.color [INFO] [stderr] 892 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/qr_encoder/config.rs:907:13 [INFO] [stderr] | [INFO] [stderr] 907 | / match body.get_mut(idx) { [INFO] [stderr] 908 | | Some(cell) => { [INFO] [stderr] 909 | | match cell.module_type { [INFO] [stderr] 910 | | CellType::None | CellType::Format => { [INFO] [stderr] ... | [INFO] [stderr] 924 | | None => {} [INFO] [stderr] 925 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 907 | if let Some(cell) = body.get_mut(idx) { [INFO] [stderr] 908 | match cell.module_type { [INFO] [stderr] 909 | CellType::None | CellType::Format => { [INFO] [stderr] 910 | let direction = if y > x { [INFO] [stderr] 911 | y [INFO] [stderr] 912 | } else { [INFO] [stderr] ... [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/qr_encoder/config.rs:937:46 [INFO] [stderr] | [INFO] [stderr] 937 | pub fn get_alignment_points(&self, body: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cell]` [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: called `cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stderr] --> src/qr_encoder/config.rs:992:36 [INFO] [stderr] | [INFO] [stderr] 992 | let xnumbers: Vec = numbers.iter().cloned().collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_cloned_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `qr-encode`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "de909b4b924e52394d44bda1995289283f3bcbba5f529259c3d7188fb8d1ec30"` [INFO] running `"docker" "rm" "-f" "de909b4b924e52394d44bda1995289283f3bcbba5f529259c3d7188fb8d1ec30"` [INFO] [stdout] de909b4b924e52394d44bda1995289283f3bcbba5f529259c3d7188fb8d1ec30