[INFO] crate doryen-rs 0.1.0 is already in cache [INFO] extracting crate doryen-rs 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/doryen-rs/0.1.0 [INFO] extracting crate doryen-rs 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/doryen-rs/0.1.0 [INFO] validating manifest of doryen-rs-0.1.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 doryen-rs-0.1.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 doryen-rs-0.1.0 [INFO] finished frobbing doryen-rs-0.1.0 [INFO] frobbed toml for doryen-rs-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/doryen-rs/0.1.0/Cargo.toml [INFO] started frobbing doryen-rs-0.1.0 [INFO] finished frobbing doryen-rs-0.1.0 [INFO] frobbed toml for doryen-rs-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/doryen-rs/0.1.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 doryen-rs-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/doryen-rs/0.1.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] 6e986e177bc81b0ed86ccb40416b0e1efc368891e0459862e0645993e56b8960 [INFO] running `"docker" "start" "-a" "6e986e177bc81b0ed86ccb40416b0e1efc368891e0459862e0645993e56b8960"` [INFO] [stderr] Compiling num-derive v0.2.4 [INFO] [stderr] Checking uni-gl v0.1.0 [INFO] [stderr] Checking winit v0.16.2 [INFO] [stderr] Checking image v0.19.0 [INFO] [stderr] Checking glutin v0.17.0 [INFO] [stderr] Checking uni-app v0.1.0 [INFO] [stderr] Checking doryen-rs v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/app.rs:187:17 [INFO] [stderr] | [INFO] [stderr] 187 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/app.rs:188:17 [INFO] [stderr] | [INFO] [stderr] 188 | con: con, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `con` [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/app.rs:187:17 [INFO] [stderr] | [INFO] [stderr] 187 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/app.rs:188:17 [INFO] [stderr] | [INFO] [stderr] 188 | con: con, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `con` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/app.rs:13:19 [INFO] [stderr] | [INFO] [stderr] 13 | const DORYEN_VS: &'static str = include_str!("doryen_vs.glsl"); [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/app.rs:14:19 [INFO] [stderr] | [INFO] [stderr] 14 | const DORYEN_FS: &'static str = include_str!("doryen_fs.glsl"); [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/app.rs:326:9 [INFO] [stderr] | [INFO] [stderr] 326 | fps [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/app.rs:317:19 [INFO] [stderr] | [INFO] [stderr] 317 | let fps = FPS { [INFO] [stderr] | ___________________^ [INFO] [stderr] 318 | | counter: 0, [INFO] [stderr] 319 | | total_frames: 0, [INFO] [stderr] 320 | | start: now, [INFO] [stderr] ... | [INFO] [stderr] 323 | | average: 0, [INFO] [stderr] 324 | | }; [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: this if statement can be collapsed [INFO] [stderr] --> src/console.rs:463:17 [INFO] [stderr] | [INFO] [stderr] 463 | / if self.check_coords(xsrc + x, ysrc + y) { [INFO] [stderr] 464 | | if destination.check_coords(xdst + x, ydst + y) { [INFO] [stderr] 465 | | let src_idx = (off + x + xsrc) as usize; [INFO] [stderr] 466 | | let dest_idx = (doff + x + xdst) as usize; [INFO] [stderr] ... | [INFO] [stderr] 514 | | } [INFO] [stderr] 515 | | } [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] 463 | if self.check_coords(xsrc + x, ysrc + y) && destination.check_coords(xdst + x, ydst + y) { [INFO] [stderr] 464 | let src_idx = (off + x + xsrc) as usize; [INFO] [stderr] 465 | let dest_idx = (doff + x + xdst) as usize; [INFO] [stderr] 466 | let src_back = self.back[src_idx]; [INFO] [stderr] 467 | let dst_back = destination.back[dest_idx]; [INFO] [stderr] 468 | if back_alpha > 0.0 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/console.rs:496:40 [INFO] [stderr] | [INFO] [stderr] 496 | } else { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 497 | | if fore_alpha < 0.5 { [INFO] [stderr] 498 | | destination.fore[dest_idx] = [INFO] [stderr] 499 | | color_blend(&dst_fore, &dst_back, fore_alpha * 2.0); [INFO] [stderr] ... | [INFO] [stderr] 507 | | } [INFO] [stderr] 508 | | } [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] 496 | } else if fore_alpha < 0.5 { [INFO] [stderr] 497 | destination.fore[dest_idx] = [INFO] [stderr] 498 | color_blend(&dst_fore, &dst_back, fore_alpha * 2.0); [INFO] [stderr] 499 | } else { [INFO] [stderr] 500 | destination.ascii[dest_idx] = src_char; [INFO] [stderr] 501 | destination.fore[dest_idx] = color_blend( [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/file.rs:30:29 [INFO] [stderr] | [INFO] [stderr] 30 | return Ok(self.seq - 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(self.seq - 1)` [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/file.rs:33:29 [INFO] [stderr] | [INFO] [stderr] 33 | return Err(format!("Could not read file {} : {}\n", path, e)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("Could not read file {} : {}\n", path, e))` [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: unneeded return statement [INFO] [stderr] --> src/file.rs:41:21 [INFO] [stderr] | [INFO] [stderr] 41 | return Ok(self.seq - 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(self.seq - 1)` [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: unneeded return statement [INFO] [stderr] --> src/file.rs:45:17 [INFO] [stderr] | [INFO] [stderr] 45 | return Err(format!("Could not open file {} : {}\n", path, e)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("Could not open file {} : {}\n", path, e))` [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: unneeded return statement [INFO] [stderr] --> src/file.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/font.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/img.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/img.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/img.rs:303:24 [INFO] [stderr] | [INFO] [stderr] 303 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 304 | | if ascii >= 0 { [INFO] [stderr] 305 | | con.unsafe_back(conx, cony, back); [INFO] [stderr] 306 | | con.unsafe_fore(conx, cony, front.unwrap()); [INFO] [stderr] ... | [INFO] [stderr] 312 | | } [INFO] [stderr] 313 | | } [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] 303 | } else if ascii >= 0 { [INFO] [stderr] 304 | con.unsafe_back(conx, cony, back); [INFO] [stderr] 305 | con.unsafe_fore(conx, cony, front.unwrap()); [INFO] [stderr] 306 | con.unsafe_ascii(conx, cony, ascii as u16); [INFO] [stderr] 307 | } else { [INFO] [stderr] 308 | con.unsafe_back(conx, cony, front.unwrap()); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/img.rs:400:20 [INFO] [stderr] | [INFO] [stderr] 400 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 401 | | if dist1i <= dist01 { [INFO] [stderr] 402 | | // merge 1 and i [INFO] [stderr] 403 | | tmp_front = color_blend(&desired[i], &tmp_front, weight[1] / (1.0 + weight[1])); [INFO] [stderr] ... | [INFO] [stderr] 412 | | } [INFO] [stderr] 413 | | } [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] 400 | } else if dist1i <= dist01 { [INFO] [stderr] 401 | // merge 1 and i [INFO] [stderr] 402 | tmp_front = color_blend(&desired[i], &tmp_front, weight[1] / (1.0 + weight[1])); [INFO] [stderr] 403 | weight[1] += 1.0; [INFO] [stderr] 404 | flag |= 1 << (i - 1); [INFO] [stderr] 405 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/input.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:154:17 [INFO] [stderr] | [INFO] [stderr] 154 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:162:17 [INFO] [stderr] | [INFO] [stderr] 162 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/app.rs:13:19 [INFO] [stderr] | [INFO] [stderr] 13 | const DORYEN_VS: &'static str = include_str!("doryen_vs.glsl"); [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/app.rs:14:19 [INFO] [stderr] | [INFO] [stderr] 14 | const DORYEN_FS: &'static str = include_str!("doryen_fs.glsl"); [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/app.rs:326:9 [INFO] [stderr] | [INFO] [stderr] 326 | fps [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/app.rs:317:19 [INFO] [stderr] | [INFO] [stderr] 317 | let fps = FPS { [INFO] [stderr] | ___________________^ [INFO] [stderr] 318 | | counter: 0, [INFO] [stderr] 319 | | total_frames: 0, [INFO] [stderr] 320 | | start: now, [INFO] [stderr] ... | [INFO] [stderr] 323 | | average: 0, [INFO] [stderr] 324 | | }; [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: this if statement can be collapsed [INFO] [stderr] --> src/console.rs:463:17 [INFO] [stderr] | [INFO] [stderr] 463 | / if self.check_coords(xsrc + x, ysrc + y) { [INFO] [stderr] 464 | | if destination.check_coords(xdst + x, ydst + y) { [INFO] [stderr] 465 | | let src_idx = (off + x + xsrc) as usize; [INFO] [stderr] 466 | | let dest_idx = (doff + x + xdst) as usize; [INFO] [stderr] ... | [INFO] [stderr] 514 | | } [INFO] [stderr] 515 | | } [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] 463 | if self.check_coords(xsrc + x, ysrc + y) && destination.check_coords(xdst + x, ydst + y) { [INFO] [stderr] 464 | let src_idx = (off + x + xsrc) as usize; [INFO] [stderr] 465 | let dest_idx = (doff + x + xdst) as usize; [INFO] [stderr] 466 | let src_back = self.back[src_idx]; [INFO] [stderr] 467 | let dst_back = destination.back[dest_idx]; [INFO] [stderr] 468 | if back_alpha > 0.0 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/console.rs:496:40 [INFO] [stderr] | [INFO] [stderr] 496 | } else { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 497 | | if fore_alpha < 0.5 { [INFO] [stderr] 498 | | destination.fore[dest_idx] = [INFO] [stderr] 499 | | color_blend(&dst_fore, &dst_back, fore_alpha * 2.0); [INFO] [stderr] ... | [INFO] [stderr] 507 | | } [INFO] [stderr] 508 | | } [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] 496 | } else if fore_alpha < 0.5 { [INFO] [stderr] 497 | destination.fore[dest_idx] = [INFO] [stderr] 498 | color_blend(&dst_fore, &dst_back, fore_alpha * 2.0); [INFO] [stderr] 499 | } else { [INFO] [stderr] 500 | destination.ascii[dest_idx] = src_char; [INFO] [stderr] 501 | destination.fore[dest_idx] = color_blend( [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/file.rs:30:29 [INFO] [stderr] | [INFO] [stderr] 30 | return Ok(self.seq - 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(self.seq - 1)` [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/file.rs:33:29 [INFO] [stderr] | [INFO] [stderr] 33 | return Err(format!("Could not read file {} : {}\n", path, e)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("Could not read file {} : {}\n", path, e))` [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: unneeded return statement [INFO] [stderr] --> src/file.rs:41:21 [INFO] [stderr] | [INFO] [stderr] 41 | return Ok(self.seq - 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(self.seq - 1)` [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: unneeded return statement [INFO] [stderr] --> src/file.rs:45:17 [INFO] [stderr] | [INFO] [stderr] 45 | return Err(format!("Could not open file {} : {}\n", path, e)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("Could not open file {} : {}\n", path, e))` [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: unneeded return statement [INFO] [stderr] --> src/file.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/font.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/img.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/img.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/img.rs:303:24 [INFO] [stderr] | [INFO] [stderr] 303 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 304 | | if ascii >= 0 { [INFO] [stderr] 305 | | con.unsafe_back(conx, cony, back); [INFO] [stderr] 306 | | con.unsafe_fore(conx, cony, front.unwrap()); [INFO] [stderr] ... | [INFO] [stderr] 312 | | } [INFO] [stderr] 313 | | } [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] 303 | } else if ascii >= 0 { [INFO] [stderr] 304 | con.unsafe_back(conx, cony, back); [INFO] [stderr] 305 | con.unsafe_fore(conx, cony, front.unwrap()); [INFO] [stderr] 306 | con.unsafe_ascii(conx, cony, ascii as u16); [INFO] [stderr] 307 | } else { [INFO] [stderr] 308 | con.unsafe_back(conx, cony, front.unwrap()); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/img.rs:400:20 [INFO] [stderr] | [INFO] [stderr] 400 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 401 | | if dist1i <= dist01 { [INFO] [stderr] 402 | | // merge 1 and i [INFO] [stderr] 403 | | tmp_front = color_blend(&desired[i], &tmp_front, weight[1] / (1.0 + weight[1])); [INFO] [stderr] ... | [INFO] [stderr] 412 | | } [INFO] [stderr] 413 | | } [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] 400 | } else if dist1i <= dist01 { [INFO] [stderr] 401 | // merge 1 and i [INFO] [stderr] 402 | tmp_front = color_blend(&desired[i], &tmp_front, weight[1] / (1.0 + weight[1])); [INFO] [stderr] 403 | weight[1] += 1.0; [INFO] [stderr] 404 | flag |= 1 << (i - 1); [INFO] [stderr] 405 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/input.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:154:17 [INFO] [stderr] | [INFO] [stderr] 154 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:162:17 [INFO] [stderr] | [INFO] [stderr] 162 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/app.rs:237:13 [INFO] [stderr] | [INFO] [stderr] 237 | / match evt { [INFO] [stderr] 238 | | &uni_app::AppEvent::Resized(size) => { [INFO] [stderr] 239 | | self.gl.viewport(0, 0, size.0, size.1); [INFO] [stderr] 240 | | } [INFO] [stderr] 241 | | _ => (), [INFO] [stderr] 242 | | } [INFO] [stderr] | |_____________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 237 | if let &uni_app::AppEvent::Resized(size) = evt { [INFO] [stderr] 238 | self.gl.viewport(0, 0, size.0, size.1); [INFO] [stderr] 239 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/app.rs:237:13 [INFO] [stderr] | [INFO] [stderr] 237 | / match evt { [INFO] [stderr] 238 | | &uni_app::AppEvent::Resized(size) => { [INFO] [stderr] 239 | | self.gl.viewport(0, 0, size.0, size.1); [INFO] [stderr] 240 | | } [INFO] [stderr] 241 | | _ => (), [INFO] [stderr] 242 | | } [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] 237 | match *evt { [INFO] [stderr] 238 | uni_app::AppEvent::Resized(size) => { [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/color.rs:3:24 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn color_blend(c1: &Color, c2: &Color, alpha: f32) -> Color { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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/color.rs:3:36 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn color_blend(c1: &Color, c2: &Color, alpha: f32) -> Color { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:5:27 [INFO] [stderr] | [INFO] [stderr] 5 | (((1.0 - alpha) * c1.0 as f32) + alpha * (c2.0 as f32)) as u8, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f32::from(c1.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 f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:5:50 [INFO] [stderr] | [INFO] [stderr] 5 | (((1.0 - alpha) * c1.0 as f32) + alpha * (c2.0 as f32)) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(c2.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 f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:6:27 [INFO] [stderr] | [INFO] [stderr] 6 | (((1.0 - alpha) * c1.1 as f32) + alpha * (c2.1 as f32)) as u8, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f32::from(c1.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 f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:6:50 [INFO] [stderr] | [INFO] [stderr] 6 | (((1.0 - alpha) * c1.1 as f32) + alpha * (c2.1 as f32)) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(c2.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 f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:7:27 [INFO] [stderr] | [INFO] [stderr] 7 | (((1.0 - alpha) * c1.2 as f32) + alpha * (c2.2 as f32)) as u8, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f32::from(c1.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: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:7:50 [INFO] [stderr] | [INFO] [stderr] 7 | (((1.0 - alpha) * c1.2 as f32) + alpha * (c2.2 as f32)) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(c2.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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/color.rs:12:23 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn color_dist(c1: &Color, c2: &Color) -> i32 { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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/color.rs:12:35 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn color_dist(c1: &Color, c2: &Color) -> i32 { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:13:14 [INFO] [stderr] | [INFO] [stderr] 13 | let dr = c1.0 as i32 - c2.0 as i32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(c1.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 i32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:13:28 [INFO] [stderr] | [INFO] [stderr] 13 | let dr = c1.0 as i32 - c2.0 as i32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(c2.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 i32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:14:14 [INFO] [stderr] | [INFO] [stderr] 14 | let dg = c1.1 as i32 - c2.1 as i32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(c1.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 i32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:14:28 [INFO] [stderr] | [INFO] [stderr] 14 | let dg = c1.1 as i32 - c2.1 as i32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(c2.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 i32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:15:14 [INFO] [stderr] | [INFO] [stderr] 15 | let db = c1.2 as i32 - c2.2 as i32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(c1.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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:15:28 [INFO] [stderr] | [INFO] [stderr] 15 | let db = c1.2 as i32 - c2.2 as i32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(c2.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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/console.rs:183:27 [INFO] [stderr] | [INFO] [stderr] 183 | self.ascii[off] = ascii as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(ascii)` [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: single-character string constant used as pattern [INFO] [stderr] --> src/console.rs:222:43 [INFO] [stderr] | [INFO] [stderr] 222 | for line in text.to_owned().split("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/console.rs:233:16 [INFO] [stderr] | [INFO] [stderr] 233 | if color_span.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `color_span.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: single-character string constant used as pattern [INFO] [stderr] --> src/console.rs:236:49 [INFO] [stderr] | [INFO] [stderr] 236 | let mut col_text = color_span.split("}"); [INFO] [stderr] | ^^^ help: try using a char instead: `'}'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/console.rs:288:43 [INFO] [stderr] | [INFO] [stderr] 288 | for line in text.to_owned().split("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/console.rs:326:5 [INFO] [stderr] | [INFO] [stderr] 326 | / pub fn rectangle( [INFO] [stderr] 327 | | &mut self, [INFO] [stderr] 328 | | x: i32, [INFO] [stderr] 329 | | y: i32, [INFO] [stderr] ... | [INFO] [stderr] 356 | | } [INFO] [stderr] 357 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/console.rs:359:5 [INFO] [stderr] | [INFO] [stderr] 359 | / pub fn area( [INFO] [stderr] 360 | | &mut self, [INFO] [stderr] 361 | | x: i32, [INFO] [stderr] 362 | | y: i32, [INFO] [stderr] ... | [INFO] [stderr] 394 | | } [INFO] [stderr] 395 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/console.rs:375:55 [INFO] [stderr] | [INFO] [stderr] 375 | self.ascii[(off + ix) as usize] = fillchar as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(fillchar)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/console.rs:408:35 [INFO] [stderr] | [INFO] [stderr] 408 | self.ascii[off] = ascii as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(ascii)` [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: this function has too many arguments (11/7) [INFO] [stderr] --> src/console.rs:446:5 [INFO] [stderr] | [INFO] [stderr] 446 | / pub fn blit_ex( [INFO] [stderr] 447 | | &self, [INFO] [stderr] 448 | | xsrc: i32, [INFO] [stderr] 449 | | ysrc: i32, [INFO] [stderr] ... | [INFO] [stderr] 517 | | } [INFO] [stderr] 518 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `file::FileLoader` [INFO] [stderr] --> src/file.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | / pub fn new() -> Self { [INFO] [stderr] 15 | | Self { [INFO] [stderr] 16 | | files_to_load: HashMap::new(), [INFO] [stderr] 17 | | seq: 0, [INFO] [stderr] 18 | | } [INFO] [stderr] 19 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 8 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/file.rs:64:26 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn is_file_ready(&mut self, id: usize) -> bool { [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/app.rs:237:13 [INFO] [stderr] | [INFO] [stderr] 237 | / match evt { [INFO] [stderr] 238 | | &uni_app::AppEvent::Resized(size) => { [INFO] [stderr] 239 | | self.gl.viewport(0, 0, size.0, size.1); [INFO] [stderr] 240 | | } [INFO] [stderr] 241 | | _ => (), [INFO] [stderr] 242 | | } [INFO] [stderr] | |_____________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] 237 | if let &uni_app::AppEvent::Resized(size) = evt { [INFO] [stderr] 238 | self.gl.viewport(0, 0, size.0, size.1); [INFO] [stderr] 239 | } [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/app.rs:237:13 [INFO] [stderr] | [INFO] [stderr] 237 | / match evt { [INFO] [stderr] 238 | | &uni_app::AppEvent::Resized(size) => { [INFO] [stderr] 239 | | self.gl.viewport(0, 0, size.0, size.1); [INFO] [stderr] 240 | | } [INFO] [stderr] 241 | | _ => (), [INFO] [stderr] 242 | | } [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] 237 | match *evt { [INFO] [stderr] 238 | uni_app::AppEvent::Resized(size) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/font.rs:24:32 [INFO] [stderr] | [INFO] [stderr] 24 | let start = path.rfind("_").unwrap_or(0); [INFO] [stderr] | ^^^ help: try using a char instead: `'_'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/font.rs:25:30 [INFO] [stderr] | [INFO] [stderr] 25 | let end = path.rfind(".").unwrap_or(0); [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/font.rs:28:53 [INFO] [stderr] | [INFO] [stderr] 28 | let charsize: Vec<&str> = subpath.split("x").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'x'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [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/font.rs:53:40 [INFO] [stderr] | [INFO] [stderr] 53 | fn load_font_bytes(&mut self, buf: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/img.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | file_loader.load_file(file_path); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/img.rs:27:22 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn is_loaded(&mut self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [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/img.rs:38:40 [INFO] [stderr] | [INFO] [stderr] 38 | fn intialize_image(&mut self, buf: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/img.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / pub fn blit_ex( [INFO] [stderr] 93 | | &mut self, [INFO] [stderr] 94 | | con: &mut Console, [INFO] [stderr] 95 | | x: f32, [INFO] [stderr] ... | [INFO] [stderr] 178 | | } [INFO] [stderr] 179 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/color.rs:3:24 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn color_blend(c1: &Color, c2: &Color, alpha: f32) -> Color { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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/color.rs:3:36 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn color_blend(c1: &Color, c2: &Color, alpha: f32) -> Color { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:5:27 [INFO] [stderr] | [INFO] [stderr] 5 | (((1.0 - alpha) * c1.0 as f32) + alpha * (c2.0 as f32)) as u8, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f32::from(c1.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 f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:5:50 [INFO] [stderr] | [INFO] [stderr] 5 | (((1.0 - alpha) * c1.0 as f32) + alpha * (c2.0 as f32)) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(c2.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 f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:6:27 [INFO] [stderr] | [INFO] [stderr] 6 | (((1.0 - alpha) * c1.1 as f32) + alpha * (c2.1 as f32)) as u8, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f32::from(c1.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 f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:6:50 [INFO] [stderr] | [INFO] [stderr] 6 | (((1.0 - alpha) * c1.1 as f32) + alpha * (c2.1 as f32)) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(c2.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 f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:7:27 [INFO] [stderr] | [INFO] [stderr] 7 | (((1.0 - alpha) * c1.2 as f32) + alpha * (c2.2 as f32)) as u8, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f32::from(c1.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: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:7:50 [INFO] [stderr] | [INFO] [stderr] 7 | (((1.0 - alpha) * c1.2 as f32) + alpha * (c2.2 as f32)) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(c2.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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/color.rs:12:23 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn color_dist(c1: &Color, c2: &Color) -> i32 { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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/color.rs:12:35 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn color_dist(c1: &Color, c2: &Color) -> i32 { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:13:14 [INFO] [stderr] | [INFO] [stderr] 13 | let dr = c1.0 as i32 - c2.0 as i32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(c1.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 i32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:13:28 [INFO] [stderr] | [INFO] [stderr] 13 | let dr = c1.0 as i32 - c2.0 as i32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(c2.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 i32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:14:14 [INFO] [stderr] | [INFO] [stderr] 14 | let dg = c1.1 as i32 - c2.1 as i32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(c1.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 i32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:14:28 [INFO] [stderr] | [INFO] [stderr] 14 | let dg = c1.1 as i32 - c2.1 as i32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(c2.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 i32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:15:14 [INFO] [stderr] | [INFO] [stderr] 15 | let db = c1.2 as i32 - c2.2 as i32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(c1.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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:15:28 [INFO] [stderr] | [INFO] [stderr] 15 | let db = c1.2 as i32 - c2.2 as i32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(c2.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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/img.rs:108:12 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(scalex - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/img.rs:108:12 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/img.rs:108:29 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(scaley - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/img.rs:108:29 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/img.rs:108:62 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(rx.floor() - rx).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/img.rs:108:62 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/img.rs:108:82 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(ry.floor() - ry).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/img.rs:108:82 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/img.rs:193:5 [INFO] [stderr] | [INFO] [stderr] 193 | / pub fn blit_2x( [INFO] [stderr] 194 | | &mut self, [INFO] [stderr] 195 | | con: &mut Console, [INFO] [stderr] 196 | | dx: i32, [INFO] [stderr] ... | [INFO] [stderr] 209 | | } [INFO] [stderr] 210 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/img.rs:212:5 [INFO] [stderr] | [INFO] [stderr] 212 | / pub fn blit_2x_image( [INFO] [stderr] 213 | | img: &image::RgbaImage, [INFO] [stderr] 214 | | con: &mut Console, [INFO] [stderr] 215 | | dx: i32, [INFO] [stderr] ... | [INFO] [stderr] 317 | | } [INFO] [stderr] 318 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/console.rs:183:27 [INFO] [stderr] | [INFO] [stderr] 183 | self.ascii[off] = ascii as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(ascii)` [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: single-character string constant used as pattern [INFO] [stderr] --> src/console.rs:222:43 [INFO] [stderr] | [INFO] [stderr] 222 | for line in text.to_owned().split("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/console.rs:233:16 [INFO] [stderr] | [INFO] [stderr] 233 | if color_span.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `color_span.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: single-character string constant used as pattern [INFO] [stderr] --> src/console.rs:236:49 [INFO] [stderr] | [INFO] [stderr] 236 | let mut col_text = color_span.split("}"); [INFO] [stderr] | ^^^ help: try using a char instead: `'}'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/input.rs:70:35 [INFO] [stderr] | [INFO] [stderr] 70 | fn on_key_up(&mut self, code: &String) { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/input.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | / match event { [INFO] [stderr] 94 | | &AppEvent::KeyDown(ref key) => { [INFO] [stderr] 95 | | self.on_key_down(&key.code); [INFO] [stderr] 96 | | } [INFO] [stderr] ... | [INFO] [stderr] 114 | | } [INFO] [stderr] 115 | | } [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] 93 | match *event { [INFO] [stderr] 94 | AppEvent::KeyDown(ref key) => { [INFO] [stderr] 95 | self.on_key_down(&key.code); [INFO] [stderr] 96 | } [INFO] [stderr] 97 | AppEvent::KeyUp(ref key) => { [INFO] [stderr] 98 | self.on_key_up(&key.code); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/console.rs:288:43 [INFO] [stderr] | [INFO] [stderr] 288 | for line in text.to_owned().split("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/program.rs:109:16 [INFO] [stderr] | [INFO] [stderr] 109 | App::print(format!("compiling VS\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"compiling VS\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/program.rs:111:16 [INFO] [stderr] | [INFO] [stderr] 111 | App::print(format!("compiling FS\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"compiling FS\n".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: useless use of `format!` [INFO] [stderr] --> src/program.rs:113:16 [INFO] [stderr] | [INFO] [stderr] 113 | App::print(format!("linking\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"linking\n".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: this function has too many arguments (8/7) [INFO] [stderr] --> src/console.rs:326:5 [INFO] [stderr] | [INFO] [stderr] 326 | / pub fn rectangle( [INFO] [stderr] 327 | | &mut self, [INFO] [stderr] 328 | | x: i32, [INFO] [stderr] 329 | | y: i32, [INFO] [stderr] ... | [INFO] [stderr] 356 | | } [INFO] [stderr] 357 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/console.rs:359:5 [INFO] [stderr] | [INFO] [stderr] 359 | / pub fn area( [INFO] [stderr] 360 | | &mut self, [INFO] [stderr] 361 | | x: i32, [INFO] [stderr] 362 | | y: i32, [INFO] [stderr] ... | [INFO] [stderr] 394 | | } [INFO] [stderr] 395 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/program.rs:249:5 [INFO] [stderr] | [INFO] [stderr] 249 | / fn update_uniform_texture( [INFO] [stderr] 250 | | &mut self, [INFO] [stderr] 251 | | gl: &WebGLRenderingContext, [INFO] [stderr] 252 | | uniform: DoryenUniforms, [INFO] [stderr] ... | [INFO] [stderr] 273 | | } [INFO] [stderr] 274 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/console.rs:375:55 [INFO] [stderr] | [INFO] [stderr] 375 | self.ascii[(off + ix) as usize] = fillchar as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(fillchar)` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/console.rs:408:35 [INFO] [stderr] | [INFO] [stderr] 408 | self.ascii[off] = ascii as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(ascii)` [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: this function has too many arguments (11/7) [INFO] [stderr] --> src/console.rs:446:5 [INFO] [stderr] | [INFO] [stderr] 446 | / pub fn blit_ex( [INFO] [stderr] 447 | | &self, [INFO] [stderr] 448 | | xsrc: i32, [INFO] [stderr] 449 | | ysrc: i32, [INFO] [stderr] ... | [INFO] [stderr] 517 | | } [INFO] [stderr] 518 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `file::FileLoader` [INFO] [stderr] --> src/file.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | / pub fn new() -> Self { [INFO] [stderr] 15 | | Self { [INFO] [stderr] 16 | | files_to_load: HashMap::new(), [INFO] [stderr] 17 | | seq: 0, [INFO] [stderr] 18 | | } [INFO] [stderr] 19 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 8 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `doryen-rs`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/file.rs:64:26 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn is_file_ready(&mut self, id: usize) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/font.rs:24:32 [INFO] [stderr] | [INFO] [stderr] 24 | let start = path.rfind("_").unwrap_or(0); [INFO] [stderr] | ^^^ help: try using a char instead: `'_'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/font.rs:25:30 [INFO] [stderr] | [INFO] [stderr] 25 | let end = path.rfind(".").unwrap_or(0); [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/font.rs:28:53 [INFO] [stderr] | [INFO] [stderr] 28 | let charsize: Vec<&str> = subpath.split("x").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'x'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [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/font.rs:53:40 [INFO] [stderr] | [INFO] [stderr] 53 | fn load_font_bytes(&mut self, buf: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/img.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | file_loader.load_file(file_path); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/img.rs:27:22 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn is_loaded(&mut self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [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/img.rs:38:40 [INFO] [stderr] | [INFO] [stderr] 38 | fn intialize_image(&mut self, buf: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/img.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / pub fn blit_ex( [INFO] [stderr] 93 | | &mut self, [INFO] [stderr] 94 | | con: &mut Console, [INFO] [stderr] 95 | | x: f32, [INFO] [stderr] ... | [INFO] [stderr] 178 | | } [INFO] [stderr] 179 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/img.rs:108:12 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(scalex - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/img.rs:108:12 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/img.rs:108:29 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(scaley - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/img.rs:108:29 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/img.rs:108:62 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(rx.floor() - rx).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/img.rs:108:62 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/img.rs:108:82 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(ry.floor() - ry).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/img.rs:108:82 [INFO] [stderr] | [INFO] [stderr] 108 | if scalex == 1.0 && scaley == 1.0 && angle == 0.0 && rx.floor() == rx && ry.floor() == ry { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/img.rs:193:5 [INFO] [stderr] | [INFO] [stderr] 193 | / pub fn blit_2x( [INFO] [stderr] 194 | | &mut self, [INFO] [stderr] 195 | | con: &mut Console, [INFO] [stderr] 196 | | dx: i32, [INFO] [stderr] ... | [INFO] [stderr] 209 | | } [INFO] [stderr] 210 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/img.rs:212:5 [INFO] [stderr] | [INFO] [stderr] 212 | / pub fn blit_2x_image( [INFO] [stderr] 213 | | img: &image::RgbaImage, [INFO] [stderr] 214 | | con: &mut Console, [INFO] [stderr] 215 | | dx: i32, [INFO] [stderr] ... | [INFO] [stderr] 317 | | } [INFO] [stderr] 318 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/input.rs:70:35 [INFO] [stderr] | [INFO] [stderr] 70 | fn on_key_up(&mut self, code: &String) { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/input.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | / match event { [INFO] [stderr] 94 | | &AppEvent::KeyDown(ref key) => { [INFO] [stderr] 95 | | self.on_key_down(&key.code); [INFO] [stderr] 96 | | } [INFO] [stderr] ... | [INFO] [stderr] 114 | | } [INFO] [stderr] 115 | | } [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] 93 | match *event { [INFO] [stderr] 94 | AppEvent::KeyDown(ref key) => { [INFO] [stderr] 95 | self.on_key_down(&key.code); [INFO] [stderr] 96 | } [INFO] [stderr] 97 | AppEvent::KeyUp(ref key) => { [INFO] [stderr] 98 | self.on_key_up(&key.code); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/program.rs:109:16 [INFO] [stderr] | [INFO] [stderr] 109 | App::print(format!("compiling VS\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"compiling VS\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/program.rs:111:16 [INFO] [stderr] | [INFO] [stderr] 111 | App::print(format!("compiling FS\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"compiling FS\n".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: useless use of `format!` [INFO] [stderr] --> src/program.rs:113:16 [INFO] [stderr] | [INFO] [stderr] 113 | App::print(format!("linking\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"linking\n".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: this function has too many arguments (8/7) [INFO] [stderr] --> src/program.rs:249:5 [INFO] [stderr] | [INFO] [stderr] 249 | / fn update_uniform_texture( [INFO] [stderr] 250 | | &mut self, [INFO] [stderr] 251 | | gl: &WebGLRenderingContext, [INFO] [stderr] 252 | | uniform: DoryenUniforms, [INFO] [stderr] ... | [INFO] [stderr] 273 | | } [INFO] [stderr] 274 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `doryen-rs`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "6e986e177bc81b0ed86ccb40416b0e1efc368891e0459862e0645993e56b8960"` [INFO] running `"docker" "rm" "-f" "6e986e177bc81b0ed86ccb40416b0e1efc368891e0459862e0645993e56b8960"` [INFO] [stdout] 6e986e177bc81b0ed86ccb40416b0e1efc368891e0459862e0645993e56b8960