[INFO] updating cached repository barafael/tiny_blink [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/barafael/tiny_blink [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/barafael/tiny_blink" "work/ex/clippy-test-run/sources/stable/gh/barafael/tiny_blink"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/barafael/tiny_blink'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/barafael/tiny_blink" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/barafael/tiny_blink"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/barafael/tiny_blink'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 7d45017f7eb12c334fb0d47c3bc29e4270e1f704 [INFO] sha for GitHub repo barafael/tiny_blink: 7d45017f7eb12c334fb0d47c3bc29e4270e1f704 [INFO] validating manifest of barafael/tiny_blink 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 barafael/tiny_blink 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 barafael/tiny_blink [INFO] finished frobbing barafael/tiny_blink [INFO] frobbed toml for barafael/tiny_blink written to work/ex/clippy-test-run/sources/stable/gh/barafael/tiny_blink/Cargo.toml [INFO] started frobbing barafael/tiny_blink [INFO] finished frobbing barafael/tiny_blink [INFO] frobbed toml for barafael/tiny_blink written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/barafael/tiny_blink/Cargo.toml [INFO] crate barafael/tiny_blink 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 barafael/tiny_blink 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/barafael/tiny_blink:/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] 0f67e29245cef4b6babc007b6ce40e4e4765204f9e605e2af79dfe8e73825d7e [INFO] running `"docker" "start" "-a" "0f67e29245cef4b6babc007b6ce40e4e4765204f9e605e2af79dfe8e73825d7e"` [INFO] [stderr] Compiling gdk-pixbuf v0.2.0 [INFO] [stderr] Compiling gio v0.2.0 [INFO] [stderr] Compiling cairo-rs v0.2.0 [INFO] [stderr] Compiling gdk v0.6.0 [INFO] [stderr] Compiling gtk v0.2.0 [INFO] [stderr] Compiling gio-sys v0.4.0 [INFO] [stderr] Compiling pango-sys v0.4.0 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.4.0 [INFO] [stderr] Compiling cairo-sys-rs v0.4.0 [INFO] [stderr] Compiling gdk-sys v0.4.0 [INFO] [stderr] Compiling atk-sys v0.4.0 [INFO] [stderr] Compiling gtk-sys v0.4.0 [INFO] [stderr] Checking nom v3.2.1 [INFO] [stderr] Checking glib-sys v0.4.0 [INFO] [stderr] Checking gobject-sys v0.4.0 [INFO] [stderr] Checking glib v0.3.1 [INFO] [stderr] Checking pango v0.2.0 [INFO] [stderr] Checking tiny_blink v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/graph.rs:12:13 [INFO] [stderr] | [INFO] [stderr] 12 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/graph.rs:12:13 [INFO] [stderr] | [INFO] [stderr] 12 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/graph.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | g [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/graph.rs:11:17 [INFO] [stderr] | [INFO] [stderr] 11 | let g = Graph { [INFO] [stderr] | _________________^ [INFO] [stderr] 12 | | data: data, [INFO] [stderr] 13 | | area: graph_area, [INFO] [stderr] 14 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/graph.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | g [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/graph.rs:11:17 [INFO] [stderr] | [INFO] [stderr] 11 | let g = Graph { [INFO] [stderr] | _________________^ [INFO] [stderr] 12 | | data: data, [INFO] [stderr] 13 | | area: graph_area, [INFO] [stderr] 14 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blink_seq.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | / match cmd { [INFO] [stderr] 36 | | &Command::Wait { ref duration, .. } => num_timesteps += *duration, [INFO] [stderr] 37 | | &Command::Fade { ref duration, .. } => num_timesteps += *duration, [INFO] [stderr] 38 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 35 | match *cmd { [INFO] [stderr] 36 | Command::Wait { ref duration, .. } => num_timesteps += *duration, [INFO] [stderr] 37 | Command::Fade { ref duration, .. } => num_timesteps += *duration, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blink_seq.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | / match cmd { [INFO] [stderr] 46 | | &mut Command::Wait { ref mut duration, .. } => { [INFO] [stderr] 47 | | let dur: f64 = *duration as f64; [INFO] [stderr] 48 | | *duration = (dur * factor) as usize; [INFO] [stderr] ... | [INFO] [stderr] 53 | | } [INFO] [stderr] 54 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 45 | match *cmd { [INFO] [stderr] 46 | Command::Wait { ref mut duration, .. } => { [INFO] [stderr] 47 | let dur: f64 = *duration as f64; [INFO] [stderr] 48 | *duration = (dur * factor) as usize; [INFO] [stderr] 49 | } [INFO] [stderr] 50 | Command::Fade { ref mut duration, .. } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blink_seq.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | / match cmd { [INFO] [stderr] 59 | | &Command::Wait { ref duration, .. } => timesteps_scaled += *duration, [INFO] [stderr] 60 | | &Command::Fade { ref duration, .. } => timesteps_scaled += *duration, [INFO] [stderr] 61 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 58 | match *cmd { [INFO] [stderr] 59 | Command::Wait { ref duration, .. } => timesteps_scaled += *duration, [INFO] [stderr] 60 | Command::Fade { ref duration, .. } => timesteps_scaled += *duration, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blink_seq.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | / match self.commands.last_mut().unwrap() { [INFO] [stderr] 67 | | &mut Command::Wait { ref mut duration, .. } => *duration += difference, [INFO] [stderr] 68 | | &mut Command::Fade { ref mut duration, .. } => *duration += difference, [INFO] [stderr] 69 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 66 | match *self.commands.last_mut().unwrap() { [INFO] [stderr] 67 | Command::Wait { ref mut duration, .. } => *duration += difference, [INFO] [stderr] 68 | Command::Fade { ref mut duration, .. } => *duration += difference, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blink_seq.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | / match cmd { [INFO] [stderr] 78 | | &Command::Wait { ref level, ref duration } => { [INFO] [stderr] 79 | | println!("waiting on {} for {} steps", level, duration); [INFO] [stderr] 80 | | let formula = format!("return {};\n", level); [INFO] [stderr] ... | [INFO] [stderr] 105 | | } [INFO] [stderr] 106 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 77 | match *cmd { [INFO] [stderr] 78 | Command::Wait { ref level, ref duration } => { [INFO] [stderr] 79 | println!("waiting on {} for {} steps", level, duration); [INFO] [stderr] 80 | let formula = format!("return {};\n", level); [INFO] [stderr] 81 | let condition_formula = format!("if (index >= {} && index < {}) {}", [INFO] [stderr] 82 | ticks, ticks as usize + duration - 1, formula); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/blink_seq.rs:90:25 [INFO] [stderr] | [INFO] [stderr] 90 | / match &self.commands[index + 1] { [INFO] [stderr] 91 | | &Command::Wait { ref level, .. } => level, [INFO] [stderr] 92 | | &Command::Fade { ref level, .. } => level, [INFO] [stderr] 93 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 90 | match self.commands[index + 1] { [INFO] [stderr] 91 | Command::Wait { ref level, .. } => level, [INFO] [stderr] 92 | Command::Fade { ref level, .. } => level, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/blink_seq.rs:98:35 [INFO] [stderr] | [INFO] [stderr] 98 | let m: f64 = (*end_val as f64 - *start_val as f64) / *duration as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(*end_val)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/blink_seq.rs:98:53 [INFO] [stderr] | [INFO] [stderr] 98 | let m: f64 = (*end_val as f64 - *start_val as f64) / *duration as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(*start_val)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/blink_seq.rs:99:34 [INFO] [stderr] | [INFO] [stderr] 99 | let n: f64 = *start_val as f64 - m * ticks as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(*start_val)` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blink_seq.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | / match cmd { [INFO] [stderr] 116 | | &Command::Wait { ref level, ref duration } => { [INFO] [stderr] 117 | | for _ in 0..*duration { [INFO] [stderr] 118 | | values.push(*level); [INFO] [stderr] ... | [INFO] [stderr] 137 | | } [INFO] [stderr] 138 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 115 | match *cmd { [INFO] [stderr] 116 | Command::Wait { ref level, ref duration } => { [INFO] [stderr] 117 | for _ in 0..*duration { [INFO] [stderr] 118 | values.push(*level); [INFO] [stderr] 119 | } [INFO] [stderr] 120 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/blink_seq.rs:125:25 [INFO] [stderr] | [INFO] [stderr] 125 | / match &self.commands[index + 1] { [INFO] [stderr] 126 | | &Command::Wait { ref level, .. } => level, [INFO] [stderr] 127 | | &Command::Fade { ref level, .. } => level, [INFO] [stderr] 128 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 125 | match self.commands[index + 1] { [INFO] [stderr] 126 | Command::Wait { ref level, .. } => level, [INFO] [stderr] 127 | Command::Fade { ref level, .. } => level, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/blink_seq.rs:132:37 [INFO] [stderr] | [INFO] [stderr] 132 | let step: f64 = (*end_val as i8 - *start_val as i8) as f64 / *duration as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(*end_val as i8 - *start_val as i8)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/graph.rs:48:26 [INFO] [stderr] | [INFO] [stderr] 48 | c.line_to(x, (*y as f64) / height); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(*y)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:109:20 [INFO] [stderr] | [INFO] [stderr] 109 | w.get_allocated_width() as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(w.get_allocated_width())` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:110:20 [INFO] [stderr] | [INFO] [stderr] 110 | w.get_allocated_height() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(w.get_allocated_height())` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blink_seq.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | / match cmd { [INFO] [stderr] 36 | | &Command::Wait { ref duration, .. } => num_timesteps += *duration, [INFO] [stderr] 37 | | &Command::Fade { ref duration, .. } => num_timesteps += *duration, [INFO] [stderr] 38 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 35 | match *cmd { [INFO] [stderr] 36 | Command::Wait { ref duration, .. } => num_timesteps += *duration, [INFO] [stderr] 37 | Command::Fade { ref duration, .. } => num_timesteps += *duration, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blink_seq.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | / match cmd { [INFO] [stderr] 46 | | &mut Command::Wait { ref mut duration, .. } => { [INFO] [stderr] 47 | | let dur: f64 = *duration as f64; [INFO] [stderr] 48 | | *duration = (dur * factor) as usize; [INFO] [stderr] ... | [INFO] [stderr] 53 | | } [INFO] [stderr] 54 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 45 | match *cmd { [INFO] [stderr] 46 | Command::Wait { ref mut duration, .. } => { [INFO] [stderr] 47 | let dur: f64 = *duration as f64; [INFO] [stderr] 48 | *duration = (dur * factor) as usize; [INFO] [stderr] 49 | } [INFO] [stderr] 50 | Command::Fade { ref mut duration, .. } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blink_seq.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | / match cmd { [INFO] [stderr] 59 | | &Command::Wait { ref duration, .. } => timesteps_scaled += *duration, [INFO] [stderr] 60 | | &Command::Fade { ref duration, .. } => timesteps_scaled += *duration, [INFO] [stderr] 61 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 58 | match *cmd { [INFO] [stderr] 59 | Command::Wait { ref duration, .. } => timesteps_scaled += *duration, [INFO] [stderr] 60 | Command::Fade { ref duration, .. } => timesteps_scaled += *duration, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blink_seq.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | / match self.commands.last_mut().unwrap() { [INFO] [stderr] 67 | | &mut Command::Wait { ref mut duration, .. } => *duration += difference, [INFO] [stderr] 68 | | &mut Command::Fade { ref mut duration, .. } => *duration += difference, [INFO] [stderr] 69 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 66 | match *self.commands.last_mut().unwrap() { [INFO] [stderr] 67 | Command::Wait { ref mut duration, .. } => *duration += difference, [INFO] [stderr] 68 | Command::Fade { ref mut duration, .. } => *duration += difference, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blink_seq.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | / match cmd { [INFO] [stderr] 78 | | &Command::Wait { ref level, ref duration } => { [INFO] [stderr] 79 | | println!("waiting on {} for {} steps", level, duration); [INFO] [stderr] 80 | | let formula = format!("return {};\n", level); [INFO] [stderr] ... | [INFO] [stderr] 105 | | } [INFO] [stderr] 106 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 77 | match *cmd { [INFO] [stderr] 78 | Command::Wait { ref level, ref duration } => { [INFO] [stderr] 79 | println!("waiting on {} for {} steps", level, duration); [INFO] [stderr] 80 | let formula = format!("return {};\n", level); [INFO] [stderr] 81 | let condition_formula = format!("if (index >= {} && index < {}) {}", [INFO] [stderr] 82 | ticks, ticks as usize + duration - 1, formula); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/blink_seq.rs:90:25 [INFO] [stderr] | [INFO] [stderr] 90 | / match &self.commands[index + 1] { [INFO] [stderr] 91 | | &Command::Wait { ref level, .. } => level, [INFO] [stderr] 92 | | &Command::Fade { ref level, .. } => level, [INFO] [stderr] 93 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 90 | match self.commands[index + 1] { [INFO] [stderr] 91 | Command::Wait { ref level, .. } => level, [INFO] [stderr] 92 | Command::Fade { ref level, .. } => level, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/blink_seq.rs:98:35 [INFO] [stderr] | [INFO] [stderr] 98 | let m: f64 = (*end_val as f64 - *start_val as f64) / *duration as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(*end_val)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/blink_seq.rs:98:53 [INFO] [stderr] | [INFO] [stderr] 98 | let m: f64 = (*end_val as f64 - *start_val as f64) / *duration as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(*start_val)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/blink_seq.rs:99:34 [INFO] [stderr] | [INFO] [stderr] 99 | let n: f64 = *start_val as f64 - m * ticks as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(*start_val)` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blink_seq.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | / match cmd { [INFO] [stderr] 116 | | &Command::Wait { ref level, ref duration } => { [INFO] [stderr] 117 | | for _ in 0..*duration { [INFO] [stderr] 118 | | values.push(*level); [INFO] [stderr] ... | [INFO] [stderr] 137 | | } [INFO] [stderr] 138 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 115 | match *cmd { [INFO] [stderr] 116 | Command::Wait { ref level, ref duration } => { [INFO] [stderr] 117 | for _ in 0..*duration { [INFO] [stderr] 118 | values.push(*level); [INFO] [stderr] 119 | } [INFO] [stderr] 120 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/blink_seq.rs:125:25 [INFO] [stderr] | [INFO] [stderr] 125 | / match &self.commands[index + 1] { [INFO] [stderr] 126 | | &Command::Wait { ref level, .. } => level, [INFO] [stderr] 127 | | &Command::Fade { ref level, .. } => level, [INFO] [stderr] 128 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 125 | match self.commands[index + 1] { [INFO] [stderr] 126 | Command::Wait { ref level, .. } => level, [INFO] [stderr] 127 | Command::Fade { ref level, .. } => level, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/blink_seq.rs:132:37 [INFO] [stderr] | [INFO] [stderr] 132 | let step: f64 = (*end_val as i8 - *start_val as i8) as f64 / *duration as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(*end_val as i8 - *start_val as i8)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/graph.rs:48:26 [INFO] [stderr] | [INFO] [stderr] 48 | c.line_to(x, (*y as f64) / height); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(*y)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:109:20 [INFO] [stderr] | [INFO] [stderr] 109 | w.get_allocated_width() as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(w.get_allocated_width())` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:110:20 [INFO] [stderr] | [INFO] [stderr] 110 | w.get_allocated_height() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(w.get_allocated_height())` [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] Finished dev [unoptimized + debuginfo] target(s) in 1m 03s [INFO] running `"docker" "inspect" "0f67e29245cef4b6babc007b6ce40e4e4765204f9e605e2af79dfe8e73825d7e"` [INFO] running `"docker" "rm" "-f" "0f67e29245cef4b6babc007b6ce40e4e4765204f9e605e2af79dfe8e73825d7e"` [INFO] [stdout] 0f67e29245cef4b6babc007b6ce40e4e4765204f9e605e2af79dfe8e73825d7e