[INFO] updating cached repository Tahler/snoss [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Tahler/snoss [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Tahler/snoss" "work/ex/clippy-test-run/sources/stable/gh/Tahler/snoss"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Tahler/snoss'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Tahler/snoss" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Tahler/snoss"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Tahler/snoss'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] d4dca754c3e97fa7119cc71170c5f54a8a3e71d8 [INFO] sha for GitHub repo Tahler/snoss: d4dca754c3e97fa7119cc71170c5f54a8a3e71d8 [INFO] validating manifest of Tahler/snoss 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 Tahler/snoss 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 Tahler/snoss [INFO] finished frobbing Tahler/snoss [INFO] frobbed toml for Tahler/snoss written to work/ex/clippy-test-run/sources/stable/gh/Tahler/snoss/Cargo.toml [INFO] started frobbing Tahler/snoss [INFO] finished frobbing Tahler/snoss [INFO] frobbed toml for Tahler/snoss written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Tahler/snoss/Cargo.toml [INFO] crate Tahler/snoss has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting Tahler/snoss against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Tahler/snoss:/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] adc58c62e6dcc7d05b58488b3f33c77e73b0d741e2e7c0c760b9063e553622f4 [INFO] running `"docker" "start" "-a" "adc58c62e6dcc7d05b58488b3f33c77e73b0d741e2e7c0c760b9063e553622f4"` [INFO] [stderr] Checking ordered-float v0.4.0 [INFO] [stderr] Checking serde_yaml v0.6.1 [INFO] [stderr] Checking chrono v0.3.0 [INFO] [stderr] Checking serde-value v0.4.0 [INFO] [stderr] Checking log4rs v0.6.1 [INFO] [stderr] Checking snoss v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/sh/cmd.rs:17:21 [INFO] [stderr] | [INFO] [stderr] 17 | cmd: cmd, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cmd` [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/sh/cmd.rs:18:21 [INFO] [stderr] | [INFO] [stderr] 18 | args: args, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [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/sh/sh.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | system: system, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `system` [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/sh/sh.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | prompt: prompt, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `prompt` [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/os/exec.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | use_term: use_term, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `use_term` [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/os/instr/instr.rs:13:23 [INFO] [stderr] | [INFO] [stderr] 13 | Instruction { bytes: bytes } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [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/os/ps/pcb.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | instr: instr, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `instr` [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/os/ps/pcb.rs:47:17 [INFO] [stderr] | [INFO] [stderr] 47 | exe_file_name: exe_file_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `exe_file_name` [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/os/sys.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | cpu: cpu, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cpu` [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/os/sys.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | proc_tbl: proc_tbl, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `proc_tbl` [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/os/sys.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | exit_tx: exit_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `exit_tx` [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/sh/cmd.rs:17:21 [INFO] [stderr] | [INFO] [stderr] 17 | cmd: cmd, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cmd` [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/sh/cmd.rs:18:21 [INFO] [stderr] | [INFO] [stderr] 18 | args: args, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [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/sh/sh.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | system: system, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `system` [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/sh/sh.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | prompt: prompt, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `prompt` [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/os/exec.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | use_term: use_term, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `use_term` [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/os/instr/instr.rs:13:23 [INFO] [stderr] | [INFO] [stderr] 13 | Instruction { bytes: bytes } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [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/os/ps/pcb.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | instr: instr, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `instr` [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/os/ps/pcb.rs:47:17 [INFO] [stderr] | [INFO] [stderr] 47 | exe_file_name: exe_file_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `exe_file_name` [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/os/sys.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | cpu: cpu, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cpu` [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/os/sys.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | proc_tbl: proc_tbl, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `proc_tbl` [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/os/sys.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | exit_tx: exit_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `exit_tx` [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: this is a decimal constant [INFO] [stderr] --> src/byte_utils.rs:25:39 [INFO] [stderr] | [INFO] [stderr] 25 | let byte_2 = (bytes[2] as u32) << 08; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_prefixed_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 25 | let byte_2 = (bytes[2] as u32) << 8; [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 25 | let byte_2 = (bytes[2] as u32) << 0o8; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/byte_utils.rs:31:20 [INFO] [stderr] | [INFO] [stderr] 31 | let byte_0 = ((0xFF000000 & val) >> 24) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFF00_0000` [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/byte_utils.rs:32:20 [INFO] [stderr] | [INFO] [stderr] 32 | let byte_1 = ((0x00FF0000 & val) >> 16) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00FF_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/byte_utils.rs:33:20 [INFO] [stderr] | [INFO] [stderr] 33 | let byte_2 = ((0x0000FF00 & val) >> 08) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_FF00` [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: this is a decimal constant [INFO] [stderr] --> src/byte_utils.rs:33:41 [INFO] [stderr] | [INFO] [stderr] 33 | let byte_2 = ((0x0000FF00 & val) >> 08) as u8; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 33 | let byte_2 = ((0x0000FF00 & val) >> 8) as u8; [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 33 | let byte_2 = ((0x0000FF00 & val) >> 0o8) as u8; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/byte_utils.rs:34:20 [INFO] [stderr] | [INFO] [stderr] 34 | let byte_3 = ((0x000000FF & val) >> 00) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_00FF` [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: module has the same name as its containing module [INFO] [stderr] --> src/sh/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | mod sh; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/os/instr/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | mod instr; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/os/sys.rs:16:37 [INFO] [stderr] | [INFO] [stderr] 16 | pub const CORE_DUMP_FILE_NAME: &'static str = "coredump"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | const PROMPT: &'static str = "> "; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/byte_utils.rs:25:39 [INFO] [stderr] | [INFO] [stderr] 25 | let byte_2 = (bytes[2] as u32) << 08; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_prefixed_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 25 | let byte_2 = (bytes[2] as u32) << 8; [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 25 | let byte_2 = (bytes[2] as u32) << 0o8; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/byte_utils.rs:31:20 [INFO] [stderr] | [INFO] [stderr] 31 | let byte_0 = ((0xFF000000 & val) >> 24) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFF00_0000` [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/byte_utils.rs:32:20 [INFO] [stderr] | [INFO] [stderr] 32 | let byte_1 = ((0x00FF0000 & val) >> 16) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00FF_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/byte_utils.rs:33:20 [INFO] [stderr] | [INFO] [stderr] 33 | let byte_2 = ((0x0000FF00 & val) >> 08) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_FF00` [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: this is a decimal constant [INFO] [stderr] --> src/byte_utils.rs:33:41 [INFO] [stderr] | [INFO] [stderr] 33 | let byte_2 = ((0x0000FF00 & val) >> 08) as u8; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 33 | let byte_2 = ((0x0000FF00 & val) >> 8) as u8; [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 33 | let byte_2 = ((0x0000FF00 & val) >> 0o8) as u8; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/byte_utils.rs:34:20 [INFO] [stderr] | [INFO] [stderr] 34 | let byte_3 = ((0x000000FF & val) >> 00) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_00FF` [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: module has the same name as its containing module [INFO] [stderr] --> src/sh/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | mod sh; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/os/instr/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | mod instr; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/os/sys.rs:16:37 [INFO] [stderr] | [INFO] [stderr] 16 | pub const CORE_DUMP_FILE_NAME: &'static str = "coredump"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | const PROMPT: &'static str = "> "; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/os/exec.rs:194:13 [INFO] [stderr] | [INFO] [stderr] 194 | let mut stack = pcb.get_stack_mut(); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/os/ps/pcb.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | let mut ctx = &mut self.header.ctx; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/byte_utils.rs:23:18 [INFO] [stderr] | [INFO] [stderr] 23 | let byte_0 = (bytes[0] as u32) << 24; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(bytes[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/byte_utils.rs:24:18 [INFO] [stderr] | [INFO] [stderr] 24 | let byte_1 = (bytes[1] as u32) << 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/byte_utils.rs:25:18 [INFO] [stderr] | [INFO] [stderr] 25 | let byte_2 = (bytes[2] as u32) << 08; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(bytes[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `(bytes[3] as u32)` [INFO] [stderr] --> src/byte_utils.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | let byte_3 = (bytes[3] as u32) << 00; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/byte_utils.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | let byte_3 = (bytes[3] as u32) << 00; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(bytes[3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `(0x000000FF & val)` [INFO] [stderr] --> src/byte_utils.rs:34:18 [INFO] [stderr] | [INFO] [stderr] 34 | let byte_3 = ((0x000000FF & val) >> 00) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/byte_utils.rs:39:21 [INFO] [stderr] | [INFO] [stderr] 39 | let high_byte = bytes[0] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/byte_utils.rs:40:20 [INFO] [stderr] | [INFO] [stderr] 40 | let low_byte = bytes[1] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/byte_utils.rs:54:12 [INFO] [stderr] | [INFO] [stderr] 54 | Ok(slice.clone_from_slice(&u16_bytes)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 54 | Ok(()) [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/sh/cmd.rs:35:24 [INFO] [stderr] | [INFO] [stderr] 35 | fn extract_cmd(tokens: &Vec<&str>) -> Option { [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/sh/cmd.rs:55:25 [INFO] [stderr] | [INFO] [stderr] 55 | fn extract_args(tokens: &Vec<&str>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[&str]` [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: length comparison to zero [INFO] [stderr] --> src/sh/cmd.rs:56:8 [INFO] [stderr] | [INFO] [stderr] 56 | if tokens.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tokens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/os/cpu.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | self.registers.get(addr).map(|val| *val).ok_or(()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.registers.get(addr).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/exec.rs:206:66 [INFO] [stderr] | [INFO] [stderr] 206 | fn dispatch(cpu: &mut Cpu, pcb: &mut Pcb, use_term: bool, instr: &Instruction) -> ExecResult { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Instruction` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/os/fs.rs:23:26 [INFO] [stderr] | [INFO] [stderr] 23 | paths.map(|path| format!("{}", path.unwrap().file_name().to_str().unwrap())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `path.unwrap().file_name().to_str().unwrap().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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/instr/instr.rs:20:21 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn get_type(&self) -> InstructionType { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/instr/instr.rs:30:22 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn get_reg_1(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/instr/instr.rs:34:22 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn get_reg_2(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/instr/instr.rs:38:22 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn get_reg_3(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/instr/instr.rs:42:26 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn get_literal_1(&self) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/instr/instr.rs:46:26 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn get_literal_2(&self) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `bytes` [INFO] [stderr] --> src/os/instr/instr_block.rs:18:22 [INFO] [stderr] | [INFO] [stderr] 18 | for i in 0..bytes.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] 18 | for (i, ) in bytes.iter().enumerate() { [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/os/ps/tbl.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | / match self.procs.remove(&proc_id) { [INFO] [stderr] 55 | | Some(_) => self.next_ids.push_front(proc_id), [INFO] [stderr] 56 | | None => (), [INFO] [stderr] 57 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(_) = self.procs.remove(&proc_id) { self.next_ids.push_front(proc_id) }` [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: useless use of `format!` [INFO] [stderr] --> src/os/sys.rs:67:22 [INFO] [stderr] | [INFO] [stderr] 67 | let header = format!("pid\tstate\tip\t1\t2\t3\t4\t5\t6\texe"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"pid\tstate\tip\t1\t2\t3\t4\t5\t6\texe".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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/os/sys.rs:116:14 [INFO] [stderr] | [INFO] [stderr] 116 | .ok_or("Could not allocate another process.".to_string())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "Could not allocate another process.".to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/os/exec.rs:194:13 [INFO] [stderr] | [INFO] [stderr] 194 | let mut stack = pcb.get_stack_mut(); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/os/ps/pcb.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | let mut ctx = &mut self.header.ctx; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/byte_utils.rs:23:18 [INFO] [stderr] | [INFO] [stderr] 23 | let byte_0 = (bytes[0] as u32) << 24; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(bytes[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/byte_utils.rs:24:18 [INFO] [stderr] | [INFO] [stderr] 24 | let byte_1 = (bytes[1] as u32) << 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/byte_utils.rs:25:18 [INFO] [stderr] | [INFO] [stderr] 25 | let byte_2 = (bytes[2] as u32) << 08; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(bytes[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `(bytes[3] as u32)` [INFO] [stderr] --> src/byte_utils.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | let byte_3 = (bytes[3] as u32) << 00; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/byte_utils.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | let byte_3 = (bytes[3] as u32) << 00; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(bytes[3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `(0x000000FF & val)` [INFO] [stderr] --> src/byte_utils.rs:34:18 [INFO] [stderr] | [INFO] [stderr] 34 | let byte_3 = ((0x000000FF & val) >> 00) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/byte_utils.rs:39:21 [INFO] [stderr] | [INFO] [stderr] 39 | let high_byte = bytes[0] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/byte_utils.rs:40:20 [INFO] [stderr] | [INFO] [stderr] 40 | let low_byte = bytes[1] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/byte_utils.rs:54:12 [INFO] [stderr] | [INFO] [stderr] 54 | Ok(slice.clone_from_slice(&u16_bytes)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 54 | Ok(()) [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/sh/cmd.rs:35:24 [INFO] [stderr] | [INFO] [stderr] 35 | fn extract_cmd(tokens: &Vec<&str>) -> Option { [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/sh/cmd.rs:55:25 [INFO] [stderr] | [INFO] [stderr] 55 | fn extract_args(tokens: &Vec<&str>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[&str]` [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: length comparison to zero [INFO] [stderr] --> src/sh/cmd.rs:56:8 [INFO] [stderr] | [INFO] [stderr] 56 | if tokens.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tokens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/os/cpu.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | self.registers.get(addr).map(|val| *val).ok_or(()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.registers.get(addr).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/exec.rs:206:66 [INFO] [stderr] | [INFO] [stderr] 206 | fn dispatch(cpu: &mut Cpu, pcb: &mut Pcb, use_term: bool, instr: &Instruction) -> ExecResult { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Instruction` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/os/fs.rs:23:26 [INFO] [stderr] | [INFO] [stderr] 23 | paths.map(|path| format!("{}", path.unwrap().file_name().to_str().unwrap())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `path.unwrap().file_name().to_str().unwrap().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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/instr/instr.rs:20:21 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn get_type(&self) -> InstructionType { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/instr/instr.rs:30:22 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn get_reg_1(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/instr/instr.rs:34:22 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn get_reg_2(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/instr/instr.rs:38:22 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn get_reg_3(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/instr/instr.rs:42:26 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn get_literal_1(&self) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/instr/instr.rs:46:26 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn get_literal_2(&self) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `bytes` [INFO] [stderr] --> src/os/instr/instr_block.rs:18:22 [INFO] [stderr] | [INFO] [stderr] 18 | for i in 0..bytes.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] 18 | for (i, ) in bytes.iter().enumerate() { [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/os/ps/tbl.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | / match self.procs.remove(&proc_id) { [INFO] [stderr] 55 | | Some(_) => self.next_ids.push_front(proc_id), [INFO] [stderr] 56 | | None => (), [INFO] [stderr] 57 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(_) = self.procs.remove(&proc_id) { self.next_ids.push_front(proc_id) }` [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: useless use of `format!` [INFO] [stderr] --> src/os/sys.rs:67:22 [INFO] [stderr] | [INFO] [stderr] 67 | let header = format!("pid\tstate\tip\t1\t2\t3\t4\t5\t6\texe"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"pid\tstate\tip\t1\t2\t3\t4\t5\t6\texe".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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/os/sys.rs:116:14 [INFO] [stderr] | [INFO] [stderr] 116 | .ok_or("Could not allocate another process.".to_string())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "Could not allocate another process.".to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 10.93s [INFO] running `"docker" "inspect" "adc58c62e6dcc7d05b58488b3f33c77e73b0d741e2e7c0c760b9063e553622f4"` [INFO] running `"docker" "rm" "-f" "adc58c62e6dcc7d05b58488b3f33c77e73b0d741e2e7c0c760b9063e553622f4"` [INFO] [stdout] adc58c62e6dcc7d05b58488b3f33c77e73b0d741e2e7c0c760b9063e553622f4