[INFO] crate mortal 0.1.5 is already in cache [INFO] extracting crate mortal 0.1.5 into work/ex/clippy-test-run/sources/stable/reg/mortal/0.1.5 [INFO] extracting crate mortal 0.1.5 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mortal/0.1.5 [INFO] validating manifest of mortal-0.1.5 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 mortal-0.1.5 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 mortal-0.1.5 [INFO] finished frobbing mortal-0.1.5 [INFO] frobbed toml for mortal-0.1.5 written to work/ex/clippy-test-run/sources/stable/reg/mortal/0.1.5/Cargo.toml [INFO] started frobbing mortal-0.1.5 [INFO] finished frobbing mortal-0.1.5 [INFO] frobbed toml for mortal-0.1.5 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/mortal/0.1.5/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 mortal-0.1.5 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/mortal/0.1.5:/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] 62021b8178a52340ff182dc9d907ee77e16ca14ba9874f27ed1cbafc211cad6a [INFO] running `"docker" "start" "-a" "62021b8178a52340ff182dc9d907ee77e16ca14ba9874f27ed1cbafc211cad6a"` [INFO] [stderr] Checking smallstr v0.1.0 [INFO] [stderr] Compiling terminfo v0.6.1 [INFO] [stderr] Checking mortal v0.1.5 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/buffer.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/unix/screen.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | term: term, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `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/buffer.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/unix/screen.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | term: term, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `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: this if statement can be collapsed [INFO] [stderr] --> src/unix/terminal.rs:373:9 [INFO] [stderr] | [INFO] [stderr] 373 | / if config.enable_mouse { [INFO] [stderr] 374 | | if writer.enable_mouse(config.always_track_motion)? { [INFO] [stderr] 375 | | state.restore_mouse = true; [INFO] [stderr] 376 | | } [INFO] [stderr] 377 | | } [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] 373 | if config.enable_mouse && writer.enable_mouse(config.always_track_motion)? { [INFO] [stderr] 374 | state.restore_mouse = true; [INFO] [stderr] 375 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/unix/terminal.rs:379:9 [INFO] [stderr] | [INFO] [stderr] 379 | / if config.enable_keypad { [INFO] [stderr] 380 | | if writer.enable_keypad()? { [INFO] [stderr] 381 | | state.restore_keypad = true; [INFO] [stderr] 382 | | } [INFO] [stderr] 383 | | } [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] 379 | if config.enable_keypad && writer.enable_keypad()? { [INFO] [stderr] 380 | state.restore_keypad = true; [INFO] [stderr] 381 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/unix/terminal.rs:373:9 [INFO] [stderr] | [INFO] [stderr] 373 | / if config.enable_mouse { [INFO] [stderr] 374 | | if writer.enable_mouse(config.always_track_motion)? { [INFO] [stderr] 375 | | state.restore_mouse = true; [INFO] [stderr] 376 | | } [INFO] [stderr] 377 | | } [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] 373 | if config.enable_mouse && writer.enable_mouse(config.always_track_motion)? { [INFO] [stderr] 374 | state.restore_mouse = true; [INFO] [stderr] 375 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/unix/terminal.rs:379:9 [INFO] [stderr] | [INFO] [stderr] 379 | / if config.enable_keypad { [INFO] [stderr] 380 | | if writer.enable_keypad()? { [INFO] [stderr] 381 | | state.restore_keypad = true; [INFO] [stderr] 382 | | } [INFO] [stderr] 383 | | } [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] 379 | if config.enable_keypad && writer.enable_keypad()? { [INFO] [stderr] 380 | state.restore_keypad = true; [INFO] [stderr] 381 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/signal.rs:31:15 [INFO] [stderr] | [INFO] [stderr] 31 | fn as_bit(&self) -> u8 { [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/signal.rs:76:21 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn contains(&self, sig: Signal) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/signal.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | pub fn contains_all(&self, other: SignalSet) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/signal.rs:86:23 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn intersects(&self, other: SignalSet) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/signal.rs:91:21 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn is_empty(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/signal.rs:120:23 [INFO] [stderr] | [INFO] [stderr] 120 | pub fn difference(&self, other: SignalSet) -> SignalSet { [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/signal.rs:130:33 [INFO] [stderr] | [INFO] [stderr] 130 | pub fn symmetric_difference(&self, other: SignalSet) -> SignalSet { [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/signal.rs:140:25 [INFO] [stderr] | [INFO] [stderr] 140 | pub fn intersection(&self, other: SignalSet) -> SignalSet { [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/signal.rs:149:18 [INFO] [stderr] | [INFO] [stderr] 149 | pub fn union(&self, other: SignalSet) -> SignalSet { [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/signal.rs:158:20 [INFO] [stderr] | [INFO] [stderr] 158 | pub fn inverse(&self) -> SignalSet { [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 operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/terminal.rs:46:27 [INFO] [stderr] | [INFO] [stderr] 46 | const BOLD = 1 << 0; [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: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/terminal.rs:297:23 [INFO] [stderr] | [INFO] [stderr] 297 | const ALT = 1 << 0; [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:46:10 [INFO] [stderr] | [INFO] [stderr] 46 | ch & (CTRL_MASK as u32) == ch [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(CTRL_MASK)` [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: redundant closure found [INFO] [stderr] --> src/unix/screen.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | |a, b| ScreenWriteGuard::new(a, b)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ScreenWriteGuard::new` [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] --> src/unix/screen.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | |a, b| ScreenWriteGuard::new(a, b)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ScreenWriteGuard::new` [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: the function has a cyclomatic complexity of 46 [INFO] [stderr] --> src/unix/terminal.rs:1067:1 [INFO] [stderr] | [INFO] [stderr] 1067 | / fn sequences(info: &Database) -> SeqMap { [INFO] [stderr] 1068 | | let mut sequences = SequenceMap::new(); [INFO] [stderr] 1069 | | [INFO] [stderr] 1070 | | macro_rules! add { [INFO] [stderr] ... | [INFO] [stderr] 1107 | | sequences [INFO] [stderr] 1108 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/unix/terminal.rs:1155:34 [INFO] [stderr] | [INFO] [stderr] 1155 | let res = unsafe { ioctl(fd, TIOCGWINSZ.into(), &mut winsz) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `TIOCGWINSZ` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/unix/terminal.rs:1191:18 [INFO] [stderr] | [INFO] [stderr] 1191 | tv_usec: nano as suseconds_t / 1_000, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(nano)` [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/unix/terminal.rs:1310:34 [INFO] [stderr] | [INFO] [stderr] 1310 | .checked_add((b - b'0') as u32)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(b - b'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: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> examples/attribute_test.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | write!(term, "\n") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: the loop variable `line` is used to index `lines` [INFO] [stderr] --> src/buffer.rs:549:21 [INFO] [stderr] | [INFO] [stderr] 549 | for line in 0..size.lines { [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] 549 | for (line, ) in lines.iter().enumerate().take(size.lines) { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/signal.rs:31:15 [INFO] [stderr] | [INFO] [stderr] 31 | fn as_bit(&self) -> u8 { [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/signal.rs:76:21 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn contains(&self, sig: Signal) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/signal.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | pub fn contains_all(&self, other: SignalSet) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/signal.rs:86:23 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn intersects(&self, other: SignalSet) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/signal.rs:91:21 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn is_empty(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/signal.rs:120:23 [INFO] [stderr] | [INFO] [stderr] 120 | pub fn difference(&self, other: SignalSet) -> SignalSet { [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/signal.rs:130:33 [INFO] [stderr] | [INFO] [stderr] 130 | pub fn symmetric_difference(&self, other: SignalSet) -> SignalSet { [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/signal.rs:140:25 [INFO] [stderr] | [INFO] [stderr] 140 | pub fn intersection(&self, other: SignalSet) -> SignalSet { [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/signal.rs:149:18 [INFO] [stderr] | [INFO] [stderr] 149 | pub fn union(&self, other: SignalSet) -> SignalSet { [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/signal.rs:158:20 [INFO] [stderr] | [INFO] [stderr] 158 | pub fn inverse(&self) -> SignalSet { [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 operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/terminal.rs:46:27 [INFO] [stderr] | [INFO] [stderr] 46 | const BOLD = 1 << 0; [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: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/terminal.rs:297:23 [INFO] [stderr] | [INFO] [stderr] 297 | const ALT = 1 << 0; [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:46:10 [INFO] [stderr] | [INFO] [stderr] 46 | ch & (CTRL_MASK as u32) == ch [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(CTRL_MASK)` [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: redundant closure found [INFO] [stderr] --> src/unix/screen.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | |a, b| ScreenWriteGuard::new(a, b)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ScreenWriteGuard::new` [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] --> src/unix/screen.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | |a, b| ScreenWriteGuard::new(a, b)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ScreenWriteGuard::new` [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: the function has a cyclomatic complexity of 46 [INFO] [stderr] --> src/unix/terminal.rs:1067:1 [INFO] [stderr] | [INFO] [stderr] 1067 | / fn sequences(info: &Database) -> SeqMap { [INFO] [stderr] 1068 | | let mut sequences = SequenceMap::new(); [INFO] [stderr] 1069 | | [INFO] [stderr] 1070 | | macro_rules! add { [INFO] [stderr] ... | [INFO] [stderr] 1107 | | sequences [INFO] [stderr] 1108 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/unix/terminal.rs:1155:34 [INFO] [stderr] | [INFO] [stderr] 1155 | let res = unsafe { ioctl(fd, TIOCGWINSZ.into(), &mut winsz) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `TIOCGWINSZ` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/unix/terminal.rs:1191:18 [INFO] [stderr] | [INFO] [stderr] 1191 | tv_usec: nano as suseconds_t / 1_000, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(nano)` [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/unix/terminal.rs:1310:34 [INFO] [stderr] | [INFO] [stderr] 1310 | .checked_add((b - b'0') as u32)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(b - b'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: the loop variable `i` is used to index `colors` [INFO] [stderr] --> examples/threads.rs:34:14 [INFO] [stderr] | [INFO] [stderr] 34 | for i in 0..5 { [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] 34 | for (i, ) in colors.iter().enumerate().take(5) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `colors` [INFO] [stderr] --> examples/screen_threads.rs:46:14 [INFO] [stderr] | [INFO] [stderr] 46 | for i in 0..5 { [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] 46 | for (i, ) in colors.iter().enumerate().take(5) { [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] --> examples/screen_threads.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | / match sender.try_send(()) { [INFO] [stderr] 89 | | Err(TrySendError::Disconnected(_)) => break, [INFO] [stderr] 90 | | _ => () [INFO] [stderr] 91 | | } [INFO] [stderr] | |_________^ help: try this: `if let Err(TrySendError::Disconnected(_)) = sender.try_send(()) { 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: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stderr] --> examples/raw_input.rs:39:44 [INFO] [stderr] | [INFO] [stderr] 39 | if n == 1 && buf[0] == b'q' as RawUnit { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 27.05s [INFO] running `"docker" "inspect" "62021b8178a52340ff182dc9d907ee77e16ca14ba9874f27ed1cbafc211cad6a"` [INFO] running `"docker" "rm" "-f" "62021b8178a52340ff182dc9d907ee77e16ca14ba9874f27ed1cbafc211cad6a"` [INFO] [stdout] 62021b8178a52340ff182dc9d907ee77e16ca14ba9874f27ed1cbafc211cad6a