[INFO] crate mycon 0.2.0 is already in cache [INFO] extracting crate mycon 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/mycon/0.2.0 [INFO] extracting crate mycon 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mycon/0.2.0 [INFO] validating manifest of mycon-0.2.0 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 mycon-0.2.0 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 mycon-0.2.0 [INFO] finished frobbing mycon-0.2.0 [INFO] frobbed toml for mycon-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/mycon/0.2.0/Cargo.toml [INFO] started frobbing mycon-0.2.0 [INFO] finished frobbing mycon-0.2.0 [INFO] frobbed toml for mycon-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mycon/0.2.0/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 mycon-0.2.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/mycon/0.2.0:/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] 15987ebd5e479b9b770e3c44eb9e76e4101617ca74d0f787d34050b6878442ff [INFO] running `"docker" "start" "-a" "15987ebd5e479b9b770e3c44eb9e76e4101617ca74d0f787d34050b6878442ff"` [INFO] [stderr] Checking criterion-plot v0.3.0 [INFO] [stderr] Checking rand_xoshiro v0.1.0 [INFO] [stderr] Checking mycon v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/program/ip/instruction.rs:406:17 [INFO] [stderr] | [INFO] [stderr] 406 | let w = self.pop(); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/program/ip/instruction.rs:410:21 [INFO] [stderr] | [INFO] [stderr] 410 | let mut i; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/program/ip/instruction.rs:411:21 [INFO] [stderr] | [INFO] [stderr] 411 | let mut j = y; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 8th binding whose name is just one char [INFO] [stderr] --> src/program/ip/instruction.rs:412:21 [INFO] [stderr] | [INFO] [stderr] 412 | let mut s = String::new(); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/program/ip/instruction.rs:486:21 [INFO] [stderr] | [INFO] [stderr] 486 | let mut j = y; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/program/ip/instruction.rs:488:21 [INFO] [stderr] | [INFO] [stderr] 488 | let mut w = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/config.rs:231:9 [INFO] [stderr] | [INFO] [stderr] 231 | / if self.input_buffer.is_empty() { [INFO] [stderr] 232 | | if self.input.read_line(&mut self.input_buffer).is_err() { [INFO] [stderr] 233 | | return None; [INFO] [stderr] 234 | | } [INFO] [stderr] 235 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 231 | if self.input_buffer.is_empty() && self.input.read_line(&mut self.input_buffer).is_err() { [INFO] [stderr] 232 | return None; [INFO] [stderr] 233 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/config.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | / if self.input_buffer.is_empty() { [INFO] [stderr] 270 | | if self.input.read_line(&mut self.input_buffer).is_err() { [INFO] [stderr] 271 | | return None; [INFO] [stderr] 272 | | } [INFO] [stderr] 273 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 269 | if self.input_buffer.is_empty() && self.input.read_line(&mut self.input_buffer).is_err() { [INFO] [stderr] 270 | return None; [INFO] [stderr] 271 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/data/space/tree.rs:103:9 [INFO] [stderr] | [INFO] [stderr] 103 | return (true, nonspace); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(true, nonspace)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/data/space/tree.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | return (false, nonspace); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(false, nonspace)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/program/ip/instruction.rs:25:24 [INFO] [stderr] | [INFO] [stderr] 25 | const HANDPRINT: i32 = 0x4a474d59; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x4a47_4d59` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/program/ip/instruction.rs:26:17 [INFO] [stderr] | [INFO] [stderr] 26 | const VERSION: &'static str = env!("CARGO_PKG_VERSION"); [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: operator precedence can trip the unwary [INFO] [stderr] --> src/program/ip/instruction.rs:652:20 [INFO] [stderr] | [INFO] [stderr] 652 | self.push((dt.year() - 1900 << 16) + ((dt.month() << 8) + dt.day()) as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(dt.year() - 1900) << 16` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] Checking criterion v0.2.9 [INFO] [stderr] warning: you should consider adding a `Default` implementation for `config::Config<'env>` [INFO] [stderr] --> src/config.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | / pub fn new() -> Self { [INFO] [stderr] 123 | | Config { [INFO] [stderr] 124 | | trace: false, [INFO] [stderr] 125 | | fmt_trace: Box::new(|trace| { [INFO] [stderr] ... | [INFO] [stderr] 134 | | } [INFO] [stderr] 135 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 120 | impl Default for config::Config<'env> { [INFO] [stderr] 121 | fn default() -> Self { [INFO] [stderr] 122 | Self::new() [INFO] [stderr] 123 | } [INFO] [stderr] 124 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/config.rs:244:24 [INFO] [stderr] | [INFO] [stderr] 244 | ret += (b - '0' as u8) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(b - '0' as u8)` [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 character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/config.rs:244:29 [INFO] [stderr] | [INFO] [stderr] 244 | ret += (b - '0' as u8) as i32; [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'0' [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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/config.rs:246:25 [INFO] [stderr] | [INFO] [stderr] 246 | if b == '\n' as u8 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [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: this loop could be written as a `for` loop [INFO] [stderr] --> src/data/space/tree.rs:90:33 [INFO] [stderr] | [INFO] [stderr] 90 | while let Some(value) = values.next() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `for value in values { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/data/mod.rs:57:27 [INFO] [stderr] | [INFO] [stderr] 57 | pub(crate) fn reverse(&self) -> Self { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/data/mod.rs:65:31 [INFO] [stderr] | [INFO] [stderr] 65 | pub(crate) fn rotate_left(&self) -> Self { [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/data/mod.rs:73:32 [INFO] [stderr] | [INFO] [stderr] 73 | pub(crate) fn rotate_right(&self) -> Self { [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/program/ip/instruction.rs:630:13 [INFO] [stderr] | [INFO] [stderr] 630 | for ref a in io.cmd_args() { [INFO] [stderr] | ^^^^^ ------------- help: try: `let a = &io.cmd_args();` [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: you should consider adding a `Default` implementation for `program::Program<'env>` [INFO] [stderr] --> src/program/mod.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | / pub fn new() -> Self { [INFO] [stderr] 63 | | Program::init(Space::new(), Config::new()) [INFO] [stderr] 64 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 37 | impl Default for program::Program<'env> { [INFO] [stderr] 38 | fn default() -> Self { [INFO] [stderr] 39 | Self::new() [INFO] [stderr] 40 | } [INFO] [stderr] 41 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/main.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | start.map(|t| { [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 120 | || let elapsed = t.elapsed(); [INFO] [stderr] 121 | || let _ = io::stdout().flush(); [INFO] [stderr] 122 | || print_info!("executed in {:?}", elapsed); [INFO] [stderr] 123 | || }); [INFO] [stderr] | ||______^- help: try this: `if let Some(t) = start { ... }` [INFO] [stderr] | |_______| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/program/ip/instruction.rs:406:17 [INFO] [stderr] | [INFO] [stderr] 406 | let w = self.pop(); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/program/ip/instruction.rs:410:21 [INFO] [stderr] | [INFO] [stderr] 410 | let mut i; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/program/ip/instruction.rs:411:21 [INFO] [stderr] | [INFO] [stderr] 411 | let mut j = y; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 8th binding whose name is just one char [INFO] [stderr] --> src/program/ip/instruction.rs:412:21 [INFO] [stderr] | [INFO] [stderr] 412 | let mut s = String::new(); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/program/ip/instruction.rs:486:21 [INFO] [stderr] | [INFO] [stderr] 486 | let mut j = y; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/program/ip/instruction.rs:488:21 [INFO] [stderr] | [INFO] [stderr] 488 | let mut w = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/config.rs:231:9 [INFO] [stderr] | [INFO] [stderr] 231 | / if self.input_buffer.is_empty() { [INFO] [stderr] 232 | | if self.input.read_line(&mut self.input_buffer).is_err() { [INFO] [stderr] 233 | | return None; [INFO] [stderr] 234 | | } [INFO] [stderr] 235 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 231 | if self.input_buffer.is_empty() && self.input.read_line(&mut self.input_buffer).is_err() { [INFO] [stderr] 232 | return None; [INFO] [stderr] 233 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/config.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | / if self.input_buffer.is_empty() { [INFO] [stderr] 270 | | if self.input.read_line(&mut self.input_buffer).is_err() { [INFO] [stderr] 271 | | return None; [INFO] [stderr] 272 | | } [INFO] [stderr] 273 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 269 | if self.input_buffer.is_empty() && self.input.read_line(&mut self.input_buffer).is_err() { [INFO] [stderr] 270 | return None; [INFO] [stderr] 271 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/data/space/tree.rs:103:9 [INFO] [stderr] | [INFO] [stderr] 103 | return (true, nonspace); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(true, nonspace)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/data/space/tree.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | return (false, nonspace); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(false, nonspace)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/data/space/mod.rs:332:35 [INFO] [stderr] | [INFO] [stderr] 332 | let position = Point { x: 2147483647, y: -1029771328 }; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_647` [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/data/space/mod.rs:332:51 [INFO] [stderr] | [INFO] [stderr] 332 | let position = Point { x: 2147483647, y: -1029771328 }; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_029_771_328` [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/data/space/mod.rs:333:21 [INFO] [stderr] | [INFO] [stderr] 333 | let value = 1307812; [INFO] [stderr] | ^^^^^^^ help: consider: `1_307_812` [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/program/ip/instruction.rs:25:24 [INFO] [stderr] | [INFO] [stderr] 25 | const HANDPRINT: i32 = 0x4a474d59; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x4a47_4d59` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/program/ip/instruction.rs:26:17 [INFO] [stderr] | [INFO] [stderr] 26 | const VERSION: &'static str = env!("CARGO_PKG_VERSION"); [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: operator precedence can trip the unwary [INFO] [stderr] --> src/program/ip/instruction.rs:652:20 [INFO] [stderr] | [INFO] [stderr] 652 | self.push((dt.year() - 1900 << 16) + ((dt.month() << 8) + dt.day()) as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(dt.year() - 1900) << 16` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `config::Config<'env>` [INFO] [stderr] --> src/config.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | / pub fn new() -> Self { [INFO] [stderr] 123 | | Config { [INFO] [stderr] 124 | | trace: false, [INFO] [stderr] 125 | | fmt_trace: Box::new(|trace| { [INFO] [stderr] ... | [INFO] [stderr] 134 | | } [INFO] [stderr] 135 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 120 | impl Default for config::Config<'env> { [INFO] [stderr] 121 | fn default() -> Self { [INFO] [stderr] 122 | Self::new() [INFO] [stderr] 123 | } [INFO] [stderr] 124 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/config.rs:244:24 [INFO] [stderr] | [INFO] [stderr] 244 | ret += (b - '0' as u8) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(b - '0' as u8)` [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 character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/config.rs:244:29 [INFO] [stderr] | [INFO] [stderr] 244 | ret += (b - '0' as u8) as i32; [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'0' [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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/config.rs:246:25 [INFO] [stderr] | [INFO] [stderr] 246 | if b == '\n' as u8 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [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: this loop could be written as a `for` loop [INFO] [stderr] --> src/data/space/tree.rs:90:33 [INFO] [stderr] | [INFO] [stderr] 90 | while let Some(value) = values.next() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `for value in values { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/data/mod.rs:57:27 [INFO] [stderr] | [INFO] [stderr] 57 | pub(crate) fn reverse(&self) -> Self { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/data/mod.rs:65:31 [INFO] [stderr] | [INFO] [stderr] 65 | pub(crate) fn rotate_left(&self) -> Self { [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/data/mod.rs:73:32 [INFO] [stderr] | [INFO] [stderr] 73 | pub(crate) fn rotate_right(&self) -> Self { [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: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/main.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | start.map(|t| { [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 120 | || let elapsed = t.elapsed(); [INFO] [stderr] 121 | || let _ = io::stdout().flush(); [INFO] [stderr] 122 | || print_info!("executed in {:?}", elapsed); [INFO] [stderr] 123 | || }); [INFO] [stderr] | ||______^- help: try this: `if let Some(t) = start { ... }` [INFO] [stderr] | |_______| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/program/ip/instruction.rs:630:13 [INFO] [stderr] | [INFO] [stderr] 630 | for ref a in io.cmd_args() { [INFO] [stderr] | ^^^^^ ------------- help: try: `let a = &io.cmd_args();` [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: you should consider adding a `Default` implementation for `program::Program<'env>` [INFO] [stderr] --> src/program/mod.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | / pub fn new() -> Self { [INFO] [stderr] 63 | | Program::init(Space::new(), Config::new()) [INFO] [stderr] 64 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 37 | impl Default for program::Program<'env> { [INFO] [stderr] 38 | fn default() -> Self { [INFO] [stderr] 39 | Self::new() [INFO] [stderr] 40 | } [INFO] [stderr] 41 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> benches/example_programs.rs:41:42 [INFO] [stderr] | [INFO] [stderr] 41 | c.bench_function("hello", |b| b.iter(|| hello())); [INFO] [stderr] | ^^^^^^^^^^ help: remove closure as shown: `hello` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> benches/example_programs.rs:51:42 [INFO] [stderr] | [INFO] [stderr] 51 | c.bench_function("quine", |b| b.iter(|| quine())); [INFO] [stderr] | ^^^^^^^^^^ help: remove closure as shown: `quine` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> benches/example_programs.rs:61:41 [INFO] [stderr] | [INFO] [stderr] 61 | c.bench_function("fibo", |b| b.iter(|| fibo())); [INFO] [stderr] | ^^^^^^^^^ help: remove closure as shown: `fibo` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 12.38s [INFO] running `"docker" "inspect" "15987ebd5e479b9b770e3c44eb9e76e4101617ca74d0f787d34050b6878442ff"` [INFO] running `"docker" "rm" "-f" "15987ebd5e479b9b770e3c44eb9e76e4101617ca74d0f787d34050b6878442ff"` [INFO] [stdout] 15987ebd5e479b9b770e3c44eb9e76e4101617ca74d0f787d34050b6878442ff