[INFO] updating cached repository julian-goldsmith/four-kb [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/julian-goldsmith/four-kb [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/julian-goldsmith/four-kb" "work/ex/clippy-test-run/sources/stable/gh/julian-goldsmith/four-kb"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/julian-goldsmith/four-kb'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/julian-goldsmith/four-kb" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/julian-goldsmith/four-kb"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/julian-goldsmith/four-kb'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 60fcc2451a63153110b1a93a72e45d91d358a34b [INFO] sha for GitHub repo julian-goldsmith/four-kb: 60fcc2451a63153110b1a93a72e45d91d358a34b [INFO] validating manifest of julian-goldsmith/four-kb 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 julian-goldsmith/four-kb 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 julian-goldsmith/four-kb [INFO] finished frobbing julian-goldsmith/four-kb [INFO] frobbed toml for julian-goldsmith/four-kb written to work/ex/clippy-test-run/sources/stable/gh/julian-goldsmith/four-kb/Cargo.toml [INFO] started frobbing julian-goldsmith/four-kb [INFO] finished frobbing julian-goldsmith/four-kb [INFO] frobbed toml for julian-goldsmith/four-kb written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/julian-goldsmith/four-kb/Cargo.toml [INFO] crate julian-goldsmith/four-kb 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 julian-goldsmith/four-kb against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/julian-goldsmith/four-kb:/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] 151fc3933bd726fdeff870046c0205da0931dfcbb5a1fa35f8273c94a3714a5c [INFO] running `"docker" "start" "-a" "151fc3933bd726fdeff870046c0205da0931dfcbb5a1fa35f8273c94a3714a5c"` [INFO] [stderr] Checking cgmath v0.15.0 [INFO] [stderr] Compiling four-kb v0.1.0 (/opt/crater/workdir) [INFO] [stderr] Checking png v0.7.0 [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/gfx/image.rs:32:3 [INFO] [stderr] | [INFO] [stderr] 32 | color_type: color_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `color_type` [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/gfx/image.rs:32:3 [INFO] [stderr] | [INFO] [stderr] 32 | color_type: color_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `color_type` [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: unused import: `gfx::image::Image` [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use gfx::image::Image; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Matrix4` [INFO] [stderr] --> src/gfx/lowlevel/program.rs:9:21 [INFO] [stderr] | [INFO] [stderr] 9 | use cgmath::{Matrix,Matrix4}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Read` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::io::Read; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `gl::types::*` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use gl::types::*; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/gfx/lowlevel/texture.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ffi::CString` [INFO] [stderr] --> src/gfx/lowlevel/texture.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ffi::CString; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/gfx/material.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `gl` [INFO] [stderr] --> src/gfx/material.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use gl; [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `gl::types::*` [INFO] [stderr] --> src/gfx/material.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use gl::types::*; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `cgmath` [INFO] [stderr] --> src/gfx/material.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use cgmath; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `cgmath::prelude::*` [INFO] [stderr] --> src/gfx/material.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use cgmath::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Basis3`, `Decomposed`, `Matrix4`, `PerspectiveFov`, `Vector2`, `Vector3` [INFO] [stderr] --> src/gfx/material.rs:6:14 [INFO] [stderr] | [INFO] [stderr] 6 | use cgmath::{Matrix4, Vector3, Basis3, Vector2, Decomposed, PerspectiveFov}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `cgmath` [INFO] [stderr] --> src/gfx/mesh.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use cgmath; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `cgmath::prelude::*` [INFO] [stderr] --> src/gfx/mesh.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use cgmath::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `PerspectiveFov` [INFO] [stderr] --> src/gfx/mesh.rs:6:61 [INFO] [stderr] | [INFO] [stderr] 6 | use cgmath::{Matrix4, Vector3, Basis3, Vector2, Decomposed, PerspectiveFov}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::iter::Iterator` [INFO] [stderr] --> src/gfx/model/mod.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::iter::Iterator; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Basis3`, `Decomposed`, `Deg`, `Matrix`, `Rotation3` [INFO] [stderr] --> src/gfx/model/model_loader.rs:6:38 [INFO] [stderr] | [INFO] [stderr] 6 | use cgmath::{Matrix4,Vector2,Vector3,Decomposed,Basis3,Deg,Rotation3,Matrix,InnerSpace,Vector4,Zero}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Rotation3` [INFO] [stderr] --> src/main.rs:13:44 [INFO] [stderr] | [INFO] [stderr] 13 | use cgmath::{Vector3,Decomposed,Basis3,Deg,Rotation3,One}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `gfx::image::Image` [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use gfx::image::Image; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Matrix4` [INFO] [stderr] --> src/gfx/lowlevel/program.rs:9:21 [INFO] [stderr] | [INFO] [stderr] 9 | use cgmath::{Matrix,Matrix4}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Read` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::io::Read; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `gl::types::*` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use gl::types::*; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/gfx/lowlevel/texture.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ffi::CString` [INFO] [stderr] --> src/gfx/lowlevel/texture.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ffi::CString; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/gfx/material.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `gl` [INFO] [stderr] --> src/gfx/material.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use gl; [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `gl::types::*` [INFO] [stderr] --> src/gfx/material.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use gl::types::*; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `cgmath` [INFO] [stderr] --> src/gfx/material.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use cgmath; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `cgmath::prelude::*` [INFO] [stderr] --> src/gfx/material.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use cgmath::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Basis3`, `Decomposed`, `Matrix4`, `PerspectiveFov`, `Vector2`, `Vector3` [INFO] [stderr] --> src/gfx/material.rs:6:14 [INFO] [stderr] | [INFO] [stderr] 6 | use cgmath::{Matrix4, Vector3, Basis3, Vector2, Decomposed, PerspectiveFov}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `cgmath` [INFO] [stderr] --> src/gfx/mesh.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use cgmath; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `cgmath::prelude::*` [INFO] [stderr] --> src/gfx/mesh.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use cgmath::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `PerspectiveFov` [INFO] [stderr] --> src/gfx/mesh.rs:6:61 [INFO] [stderr] | [INFO] [stderr] 6 | use cgmath::{Matrix4, Vector3, Basis3, Vector2, Decomposed, PerspectiveFov}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::iter::Iterator` [INFO] [stderr] --> src/gfx/model/mod.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::iter::Iterator; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Basis3`, `Decomposed`, `Deg`, `Matrix`, `Rotation3` [INFO] [stderr] --> src/gfx/model/model_loader.rs:6:38 [INFO] [stderr] | [INFO] [stderr] 6 | use cgmath::{Matrix4,Vector2,Vector3,Decomposed,Basis3,Deg,Rotation3,Matrix,InnerSpace,Vector4,Zero}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Rotation3` [INFO] [stderr] --> src/main.rs:13:44 [INFO] [stderr] | [INFO] [stderr] 13 | use cgmath::{Vector3,Decomposed,Basis3,Deg,Rotation3,One}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Matrix` [INFO] [stderr] --> src/gfx/lowlevel/program.rs:9:14 [INFO] [stderr] | [INFO] [stderr] 9 | use cgmath::{Matrix,Matrix4}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `normals` [INFO] [stderr] --> src/gfx/model/model_loader.rs:146:46 [INFO] [stderr] | [INFO] [stderr] 146 | texcoords: &[Vector2], normals: &[Vector3]) [INFO] [stderr] | ^^^^^^^ help: consider using `_normals` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `disp_image` [INFO] [stderr] --> src/gfx/material.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | disp_image: &Image) -> Material { [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_disp_image` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `time` [INFO] [stderr] --> src/scene/mesh_object.rs:16:25 [INFO] [stderr] | [INFO] [stderr] 16 | fn think(&mut self, time: time::Timespec) { [INFO] [stderr] | ^^^^ help: consider using `_time` instead [INFO] [stderr] [INFO] [stderr] warning: unused import: `Matrix` [INFO] [stderr] --> src/gfx/lowlevel/program.rs:9:14 [INFO] [stderr] | [INFO] [stderr] 9 | use cgmath::{Matrix,Matrix4}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `normals` [INFO] [stderr] --> src/gfx/model/model_loader.rs:146:46 [INFO] [stderr] | [INFO] [stderr] 146 | texcoords: &[Vector2], normals: &[Vector3]) [INFO] [stderr] | ^^^^^^^ help: consider using `_normals` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `disp_image` [INFO] [stderr] --> src/gfx/material.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | disp_image: &Image) -> Material { [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_disp_image` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `time` [INFO] [stderr] --> src/scene/mesh_object.rs:16:25 [INFO] [stderr] | [INFO] [stderr] 16 | fn think(&mut self, time: time::Timespec) { [INFO] [stderr] | ^^^^ help: consider using `_time` instead [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_bool` [INFO] [stderr] --> src/gfx/model/model_loader.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | fn read_bool(reader: &mut Read) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_string` [INFO] [stderr] --> src/gfx/model/model_loader.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | fn read_string(reader: &mut Read) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_texture` [INFO] [stderr] --> src/gfx/model/model_loader.rs:47:1 [INFO] [stderr] | [INFO] [stderr] 47 | fn read_texture(reader: &mut Read) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_material` [INFO] [stderr] --> src/gfx/model/model_loader.rs:73:1 [INFO] [stderr] | [INFO] [stderr] 73 | fn read_material(reader: &mut Read) -> model::Material { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/gfx/lowlevel/program.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | let mut status = gl::FALSE as GLint; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::FALSE)` [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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/gfx/lowlevel/program.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | str::from_utf8(&buf) [INFO] [stderr] | ________________________^ [INFO] [stderr] 45 | | .ok() [INFO] [stderr] 46 | | .expect("ShaderInfoLog not valid utf8")); [INFO] [stderr] | |__________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ok_expect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/gfx/lowlevel/program.rs:49:17 [INFO] [stderr] | [INFO] [stderr] 49 | if status != (gl::TRUE as GLint) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::TRUE)` [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/gfx/lowlevel/program.rs:67:21 [INFO] [stderr] | [INFO] [stderr] 67 | let mut status = gl::FALSE as GLint; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::FALSE)` [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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/gfx/lowlevel/program.rs:84:24 [INFO] [stderr] | [INFO] [stderr] 84 | / str::from_utf8(&buf) [INFO] [stderr] 85 | | .ok() [INFO] [stderr] 86 | | .expect("ProgramInfoLog not valid utf8")); [INFO] [stderr] | |___________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/gfx/lowlevel/program.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | if status != (gl::TRUE as GLint) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::TRUE)` [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: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:19:58 [INFO] [stderr] | [INFO] [stderr] 19 | let loc = gl::GetUniformLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::temporary_cstring_as_ptr)] on by default [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:19:58 [INFO] [stderr] | [INFO] [stderr] 19 | let loc = gl::GetUniformLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] error: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:28:58 [INFO] [stderr] | [INFO] [stderr] 28 | let loc = gl::GetUniformLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:28:58 [INFO] [stderr] | [INFO] [stderr] 28 | let loc = gl::GetUniformLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] error: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:37:58 [INFO] [stderr] | [INFO] [stderr] 37 | let loc = gl::GetUniformLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:37:58 [INFO] [stderr] | [INFO] [stderr] 37 | let loc = gl::GetUniformLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/gfx/lowlevel/texture.rs:27:144 [INFO] [stderr] | [INFO] [stderr] 27 | gl::TexImage2D(gl::TEXTURE_2D, 0, image.color_type as i32, image.width as i32, image.height as i32, 0, image.color_type, gl::UNSIGNED_BYTE, mem::transmute(&slice[0])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&slice[0] as *const u8 as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:24:6 [INFO] [stderr] | [INFO] [stderr] 24 | if data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.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: transmute from a reference to a pointer [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:33:10 [INFO] [stderr] | [INFO] [stderr] 33 | mem::transmute(&data[0]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&data[0] as *const T as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:63:6 [INFO] [stderr] | [INFO] [stderr] 63 | if data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:72:10 [INFO] [stderr] | [INFO] [stderr] 72 | mem::transmute(&data[0]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&data[0] as *const T as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:130:49 [INFO] [stderr] | [INFO] [stderr] 130 | let attr = gl::GetAttribLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:130:49 [INFO] [stderr] | [INFO] [stderr] 130 | let attr = gl::GetAttribLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:135:10 [INFO] [stderr] | [INFO] [stderr] 135 | num_components as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(num_components)` [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: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:145:44 [INFO] [stderr] | [INFO] [stderr] 145 | gl::BindFragDataLocation(program.id, 0, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:145:44 [INFO] [stderr] | [INFO] [stderr] 145 | gl::BindFragDataLocation(program.id, 0, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/gfx/mesh.rs:22:2 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new(program: Program, [INFO] [stderr] | _____^ [INFO] [stderr] 23 | | indices: &[u32], [INFO] [stderr] 24 | | vertices: &[Vector3], [INFO] [stderr] 25 | | normals: &[Vector3], [INFO] [stderr] ... | [INFO] [stderr] 42 | | Mesh { ibo, vao, materials, transform, num_verts: indices.len() as u32, } [INFO] [stderr] 43 | | } [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/gfx/model/model_loader.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | reader.read(&mut buf); [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] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/gfx/model/model_loader.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | reader.read(&mut string_buf).expect("Read failed"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/gfx/model/model_loader.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | reader.read(&mut buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/gfx/model/model_loader.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | reader.read(&mut pixel[0..3]).expect("Pixel read failed"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/scene/mesh_object.rs:24:31 [INFO] [stderr] | [INFO] [stderr] 24 | self.mesh.transform = self.trans.clone().into(); // FIXME: optimize [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.trans` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/scene/mesh_object.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | self.trans.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.trans` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | frames = frames + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `frames += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: aborting due to 7 previous errors [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_bool` [INFO] [stderr] --> src/gfx/model/model_loader.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | fn read_bool(reader: &mut Read) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_string` [INFO] [stderr] --> src/gfx/model/model_loader.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | fn read_string(reader: &mut Read) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_texture` [INFO] [stderr] --> src/gfx/model/model_loader.rs:47:1 [INFO] [stderr] | [INFO] [stderr] 47 | fn read_texture(reader: &mut Read) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_material` [INFO] [stderr] --> src/gfx/model/model_loader.rs:73:1 [INFO] [stderr] | [INFO] [stderr] 73 | fn read_material(reader: &mut Read) -> model::Material { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: Could not compile `four-kb`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/gfx/lowlevel/program.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | let mut status = gl::FALSE as GLint; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::FALSE)` [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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/gfx/lowlevel/program.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | str::from_utf8(&buf) [INFO] [stderr] | ________________________^ [INFO] [stderr] 45 | | .ok() [INFO] [stderr] 46 | | .expect("ShaderInfoLog not valid utf8")); [INFO] [stderr] | |__________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ok_expect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/gfx/lowlevel/program.rs:49:17 [INFO] [stderr] | [INFO] [stderr] 49 | if status != (gl::TRUE as GLint) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::TRUE)` [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/gfx/lowlevel/program.rs:67:21 [INFO] [stderr] | [INFO] [stderr] 67 | let mut status = gl::FALSE as GLint; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::FALSE)` [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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/gfx/lowlevel/program.rs:84:24 [INFO] [stderr] | [INFO] [stderr] 84 | / str::from_utf8(&buf) [INFO] [stderr] 85 | | .ok() [INFO] [stderr] 86 | | .expect("ProgramInfoLog not valid utf8")); [INFO] [stderr] | |___________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/gfx/lowlevel/program.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | if status != (gl::TRUE as GLint) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::TRUE)` [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: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:19:58 [INFO] [stderr] | [INFO] [stderr] 19 | let loc = gl::GetUniformLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::temporary_cstring_as_ptr)] on by default [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:19:58 [INFO] [stderr] | [INFO] [stderr] 19 | let loc = gl::GetUniformLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] error: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:28:58 [INFO] [stderr] | [INFO] [stderr] 28 | let loc = gl::GetUniformLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:28:58 [INFO] [stderr] | [INFO] [stderr] 28 | let loc = gl::GetUniformLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] error: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:37:58 [INFO] [stderr] | [INFO] [stderr] 37 | let loc = gl::GetUniformLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/gfx/lowlevel/uniform.rs:37:58 [INFO] [stderr] | [INFO] [stderr] 37 | let loc = gl::GetUniformLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/gfx/lowlevel/texture.rs:27:144 [INFO] [stderr] | [INFO] [stderr] 27 | gl::TexImage2D(gl::TEXTURE_2D, 0, image.color_type as i32, image.width as i32, image.height as i32, 0, image.color_type, gl::UNSIGNED_BYTE, mem::transmute(&slice[0])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&slice[0] as *const u8 as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:24:6 [INFO] [stderr] | [INFO] [stderr] 24 | if data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.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: transmute from a reference to a pointer [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:33:10 [INFO] [stderr] | [INFO] [stderr] 33 | mem::transmute(&data[0]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&data[0] as *const T as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:63:6 [INFO] [stderr] | [INFO] [stderr] 63 | if data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:72:10 [INFO] [stderr] | [INFO] [stderr] 72 | mem::transmute(&data[0]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&data[0] as *const T as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:130:49 [INFO] [stderr] | [INFO] [stderr] 130 | let attr = gl::GetAttribLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:130:49 [INFO] [stderr] | [INFO] [stderr] 130 | let attr = gl::GetAttribLocation(program.id, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:135:10 [INFO] [stderr] | [INFO] [stderr] 135 | num_components as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(num_components)` [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: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:145:44 [INFO] [stderr] | [INFO] [stderr] 145 | gl::BindFragDataLocation(program.id, 0, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/gfx/lowlevel/mod.rs:145:44 [INFO] [stderr] | [INFO] [stderr] 145 | gl::BindFragDataLocation(program.id, 0, CString::new(name).unwrap().as_ptr()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/gfx/mesh.rs:22:2 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new(program: Program, [INFO] [stderr] | _____^ [INFO] [stderr] 23 | | indices: &[u32], [INFO] [stderr] 24 | | vertices: &[Vector3], [INFO] [stderr] 25 | | normals: &[Vector3], [INFO] [stderr] ... | [INFO] [stderr] 42 | | Mesh { ibo, vao, materials, transform, num_verts: indices.len() as u32, } [INFO] [stderr] 43 | | } [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/gfx/model/model_loader.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | reader.read(&mut buf); [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] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/gfx/model/model_loader.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | reader.read(&mut string_buf).expect("Read failed"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/gfx/model/model_loader.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | reader.read(&mut buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/gfx/model/model_loader.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | reader.read(&mut pixel[0..3]).expect("Pixel read failed"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/scene/mesh_object.rs:24:31 [INFO] [stderr] | [INFO] [stderr] 24 | self.mesh.transform = self.trans.clone().into(); // FIXME: optimize [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.trans` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/scene/mesh_object.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | self.trans.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.trans` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | frames = frames + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `frames += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: aborting due to 7 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `four-kb`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "151fc3933bd726fdeff870046c0205da0931dfcbb5a1fa35f8273c94a3714a5c"` [INFO] running `"docker" "rm" "-f" "151fc3933bd726fdeff870046c0205da0931dfcbb5a1fa35f8273c94a3714a5c"` [INFO] [stdout] 151fc3933bd726fdeff870046c0205da0931dfcbb5a1fa35f8273c94a3714a5c