[INFO] crate reustmann 0.1.2 is already in cache [INFO] extracting crate reustmann 0.1.2 into work/ex/clippy-test-run/sources/stable/reg/reustmann/0.1.2 [INFO] extracting crate reustmann 0.1.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/reustmann/0.1.2 [INFO] validating manifest of reustmann-0.1.2 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 reustmann-0.1.2 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 reustmann-0.1.2 [INFO] finished frobbing reustmann-0.1.2 [INFO] frobbed toml for reustmann-0.1.2 written to work/ex/clippy-test-run/sources/stable/reg/reustmann/0.1.2/Cargo.toml [INFO] started frobbing reustmann-0.1.2 [INFO] finished frobbing reustmann-0.1.2 [INFO] frobbed toml for reustmann-0.1.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/reustmann/0.1.2/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 reustmann-0.1.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/reustmann/0.1.2:/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] 1139a160a5c37852cccfbd4aa3a2d3aef19ec7178b337a1743c012af2c8e4682 [INFO] running `"docker" "start" "-a" "1139a160a5c37852cccfbd4aa3a2d3aef19ec7178b337a1743c012af2c8e4682"` [INFO] [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently [INFO] [stderr] disables Cargo from automatically inferring other binary targets. [INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following [INFO] [stderr] files will be included as a binary target: [INFO] [stderr] [INFO] [stderr] * /opt/crater/workdir/src/bin/display.rs [INFO] [stderr] * /opt/crater/workdir/src/bin/command.rs [INFO] [stderr] * /opt/crater/workdir/src/bin/main.rs [INFO] [stderr] * /opt/crater/workdir/src/bin/debugger.rs [INFO] [stderr] * /opt/crater/workdir/src/bin/sink_debug.rs [INFO] [stderr] * /opt/crater/workdir/src/bin/debugger_error.rs [INFO] [stderr] [INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be [INFO] [stderr] ready to be compiled as a binary target today. You can future-proof yourself [INFO] [stderr] and disable this warning by adding `autobins = false` to your [package] [INFO] [stderr] section. You may also move the files to a location where Cargo would not [INFO] [stderr] automatically infer them to be a target, such as in subfolders. [INFO] [stderr] [INFO] [stderr] For more information on this warning you can consult [INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330 [INFO] [stderr] warning: path `/opt/crater/workdir/src/bin/main.rs` was erroneously implicitly accepted for binary `reustmann`, [INFO] [stderr] please set bin.path in Cargo.toml [INFO] [stderr] Checking colorify v0.2.3 [INFO] [stderr] Checking rustyline v0.2.3 [INFO] [stderr] Checking reustmann v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/interpreter.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | memory: memory, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `memory` [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/interpreter.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | memory: memory, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `memory` [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: unused import: `memory::OpCodes` [INFO] [stderr] --> src/program.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use memory::OpCodes; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `memory::OpCodes` [INFO] [stderr] --> src/program.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use memory::OpCodes; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `endl` [INFO] [stderr] --> src/program.rs:27:17 [INFO] [stderr] | [INFO] [stderr] 27 | let endl = '\n' as u8; [INFO] [stderr] | ^^^^ help: consider using `_endl` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `endl` [INFO] [stderr] --> src/program.rs:28:26 [INFO] [stderr] | [INFO] [stderr] 28 | if let Some(&endl) = instructions.last() { // FIXME '\r\n' for windows [INFO] [stderr] | ^^^^ help: consider using `_endl` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `trunc` [INFO] [stderr] --> src/interpreter.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | fn trunc(&self, val: u8) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/program.rs:26:12 [INFO] [stderr] | [INFO] [stderr] 26 | if ignore_last_newline == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `ignore_last_newline` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/program.rs:27:24 [INFO] [stderr] | [INFO] [stderr] 27 | let endl = '\n' as u8; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\n' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `mnemos` [INFO] [stderr] --> src/interpreter.rs:65:18 [INFO] [stderr] | [INFO] [stderr] 65 | for i in 0..min(mnemos.len(), mnemos.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 65 | for (i, ) in mnemos.iter().enumerate().take(min(mnemos.len(), mnemos.len())) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/interpreter.rs:134:24 [INFO] [stderr] | [INFO] [stderr] 134 | if let Err(_) = input.read(&mut buffer) { // FIXME save/return error ??? [INFO] [stderr] | _________________- ^^^^^^ [INFO] [stderr] 135 | | status = false; [INFO] [stderr] 136 | | } [INFO] [stderr] | |_________________- help: try this: `if input.read(&mut buffer).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/interpreter.rs:145:24 [INFO] [stderr] | [INFO] [stderr] 145 | if let Err(_) = output.write(&[val]) { // FIXME save/return error ??? [INFO] [stderr] | _________________- ^^^^^^ [INFO] [stderr] 146 | | status = false; [INFO] [stderr] 147 | | } [INFO] [stderr] | |_________________- help: try this: `if output.write(&[val]).is_err()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/interpreter.rs:331:20 [INFO] [stderr] | [INFO] [stderr] 331 | if self.nz == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.nz` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/interpreter.rs:338:20 [INFO] [stderr] | [INFO] [stderr] 338 | if self.nz == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.nz` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/interpreter.rs:394:20 [INFO] [stderr] | [INFO] [stderr] 394 | if found == false { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try simplifying it as shown: `!found` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/interpreter.rs:411:20 [INFO] [stderr] | [INFO] [stderr] 411 | if found == false { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try simplifying it as shown: `!found` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/interpreter.rs:426:20 [INFO] [stderr] | [INFO] [stderr] 426 | if found == false { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try simplifying it as shown: `!found` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: unused variable: `endl` [INFO] [stderr] --> src/program.rs:27:17 [INFO] [stderr] | [INFO] [stderr] 27 | let endl = '\n' as u8; [INFO] [stderr] | ^^^^ help: consider using `_endl` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `endl` [INFO] [stderr] --> src/program.rs:28:26 [INFO] [stderr] | [INFO] [stderr] 28 | if let Some(&endl) = instructions.last() { // FIXME '\r\n' for windows [INFO] [stderr] | ^^^^ help: consider using `_endl` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `trunc` [INFO] [stderr] --> src/interpreter.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | fn trunc(&self, val: u8) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/program.rs:26:12 [INFO] [stderr] | [INFO] [stderr] 26 | if ignore_last_newline == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `ignore_last_newline` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/program.rs:27:24 [INFO] [stderr] | [INFO] [stderr] 27 | let endl = '\n' as u8; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\n' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `mnemos` [INFO] [stderr] --> src/interpreter.rs:65:18 [INFO] [stderr] | [INFO] [stderr] 65 | for i in 0..min(mnemos.len(), mnemos.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 65 | for (i, ) in mnemos.iter().enumerate().take(min(mnemos.len(), mnemos.len())) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/interpreter.rs:134:24 [INFO] [stderr] | [INFO] [stderr] 134 | if let Err(_) = input.read(&mut buffer) { // FIXME save/return error ??? [INFO] [stderr] | _________________- ^^^^^^ [INFO] [stderr] 135 | | status = false; [INFO] [stderr] 136 | | } [INFO] [stderr] | |_________________- help: try this: `if input.read(&mut buffer).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/interpreter.rs:145:24 [INFO] [stderr] | [INFO] [stderr] 145 | if let Err(_) = output.write(&[val]) { // FIXME save/return error ??? [INFO] [stderr] | _________________- ^^^^^^ [INFO] [stderr] 146 | | status = false; [INFO] [stderr] 147 | | } [INFO] [stderr] | |_________________- help: try this: `if output.write(&[val]).is_err()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/interpreter.rs:331:20 [INFO] [stderr] | [INFO] [stderr] 331 | if self.nz == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.nz` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/interpreter.rs:338:20 [INFO] [stderr] | [INFO] [stderr] 338 | if self.nz == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.nz` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/interpreter.rs:394:20 [INFO] [stderr] | [INFO] [stderr] 394 | if found == false { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try simplifying it as shown: `!found` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/interpreter.rs:411:20 [INFO] [stderr] | [INFO] [stderr] 411 | if found == false { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try simplifying it as shown: `!found` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/interpreter.rs:426:20 [INFO] [stderr] | [INFO] [stderr] 426 | if found == false { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try simplifying it as shown: `!found` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: unused import: `alphanumeric` [INFO] [stderr] --> src/bin/command.rs:3:39 [INFO] [stderr] | [INFO] [stderr] 3 | use nom::{IResult, eof, space, digit, alphanumeric, is_space}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `sink_debug::sink_debug` [INFO] [stderr] --> src/bin/main.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use sink_debug::sink_debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::empty` [INFO] [stderr] --> src/bin/main.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use std::io::empty; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `alphanumeric` [INFO] [stderr] --> src/bin/command.rs:3:39 [INFO] [stderr] | [INFO] [stderr] 3 | use nom::{IResult, eof, space, digit, alphanumeric, is_space}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `sink_debug::sink_debug` [INFO] [stderr] --> src/bin/main.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use sink_debug::sink_debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::empty` [INFO] [stderr] --> src/bin/main.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use std::io::empty; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `SinkDebug` [INFO] [stderr] --> src/bin/sink_debug.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub struct SinkDebug(Sink); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] warning: struct is never constructed: `SinkDebug` [INFO] [stderr] --> src/bin/sink_debug.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub struct SinkDebug(Sink); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sink_debug` [INFO] [stderr] --> src/bin/sink_debug.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn sink_debug() -> SinkDebug { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sink_debug` [INFO] [stderr] --> src/bin/sink_debug.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn sink_debug() -> SinkDebug { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/bin/debugger.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | fn create_program_from_file(filename: &String, ignore_nl: bool) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/bin/debugger.rs:15:39 [INFO] [stderr] | [INFO] [stderr] 15 | fn create_program_from_file(filename: &String, ignore_nl: bool) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/bin/debugger.rs:173:16 [INFO] [stderr] | [INFO] [stderr] 173 | if let None = self.interpreter { [INFO] [stderr] | _________- ^^^^ [INFO] [stderr] 174 | | Err(DebuggerError::NoInterpreter) [INFO] [stderr] 175 | | } [INFO] [stderr] 176 | | else { [INFO] [stderr] 177 | | self.interpreter = None; [INFO] [stderr] 178 | | Ok(()) [INFO] [stderr] 179 | | } [INFO] [stderr] | |_________- help: try this: `if self.interpreter.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/bin/debugger.rs:173:16 [INFO] [stderr] | [INFO] [stderr] 173 | if let None = self.interpreter { [INFO] [stderr] | _________- ^^^^ [INFO] [stderr] 174 | | Err(DebuggerError::NoInterpreter) [INFO] [stderr] 175 | | } [INFO] [stderr] 176 | | else { [INFO] [stderr] 177 | | self.interpreter = None; [INFO] [stderr] 178 | | Ok(()) [INFO] [stderr] 179 | | } [INFO] [stderr] | |_________- help: try this: `if self.interpreter.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [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/bin/debugger.rs:214:21 [INFO] [stderr] | [INFO] [stderr] 214 | / match statement { [INFO] [stderr] 215 | | Statement(op_codes::HALT, _) => break, [INFO] [stderr] 216 | | _ => (), [INFO] [stderr] 217 | | } [INFO] [stderr] | |_____________________^ help: try this: `if let Statement(op_codes::HALT, _) = statement { break }` [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/bin/debugger.rs:214:21 [INFO] [stderr] | [INFO] [stderr] 214 | / match statement { [INFO] [stderr] 215 | | Statement(op_codes::HALT, _) => break, [INFO] [stderr] 216 | | _ => (), [INFO] [stderr] 217 | | } [INFO] [stderr] | |_____________________^ help: try this: `if let Statement(op_codes::HALT, _) = statement { break }` [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: equality checks against true are unnecessary [INFO] [stderr] --> src/bin/display.rs:37:8 [INFO] [stderr] | [INFO] [stderr] 37 | if is_visible(value) == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `is_visible(value)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/bin/display.rs:52:12 [INFO] [stderr] | [INFO] [stderr] 52 | if indicators == true { format!("{} {}", colorify!(red: "pc"), pc_side) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `indicators` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/display.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | format!("") [INFO] [stderr] | ^^^^^^^^^^^ help: consider using .to_string(): `"".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/bin/display.rs:59:12 [INFO] [stderr] | [INFO] [stderr] 59 | if indicators == true { format!("{} {}", colorify!(red: "sp"), sp_side) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `indicators` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/display.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | format!("") [INFO] [stderr] | ^^^^^^^^^^^ help: consider using .to_string(): `"".to_string()` [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/bin/display.rs:37:8 [INFO] [stderr] | [INFO] [stderr] 37 | if is_visible(value) == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `is_visible(value)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/bin/display.rs:52:12 [INFO] [stderr] | [INFO] [stderr] 52 | if indicators == true { format!("{} {}", colorify!(red: "pc"), pc_side) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `indicators` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/display.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | format!("") [INFO] [stderr] | ^^^^^^^^^^^ help: consider using .to_string(): `"".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/bin/display.rs:59:12 [INFO] [stderr] | [INFO] [stderr] 59 | if indicators == true { format!("{} {}", colorify!(red: "sp"), sp_side) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `indicators` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bin/display.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | format!("") [INFO] [stderr] | ^^^^^^^^^^^ help: consider using .to_string(): `"".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/bin/main.rs:25:12 [INFO] [stderr] | [INFO] [stderr] 25 | if let Err(_) = rustyline.load_history("history.txt") { [INFO] [stderr] | _____- ^^^^^^ [INFO] [stderr] 26 | | printlnc!(yellow: "No previous history."); [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____- help: try this: `if rustyline.load_history("history.txt").is_err()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/bin/main.rs:25:12 [INFO] [stderr] | [INFO] [stderr] 25 | if let Err(_) = rustyline.load_history("history.txt") { [INFO] [stderr] | _____- ^^^^^^ [INFO] [stderr] 26 | | printlnc!(yellow: "No previous history."); [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____- help: try this: `if rustyline.load_history("history.txt").is_err()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.34s [INFO] running `"docker" "inspect" "1139a160a5c37852cccfbd4aa3a2d3aef19ec7178b337a1743c012af2c8e4682"` [INFO] running `"docker" "rm" "-f" "1139a160a5c37852cccfbd4aa3a2d3aef19ec7178b337a1743c012af2c8e4682"` [INFO] [stdout] 1139a160a5c37852cccfbd4aa3a2d3aef19ec7178b337a1743c012af2c8e4682