[INFO] updating cached repository justahero/noire-rs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/justahero/noire-rs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/justahero/noire-rs" "work/ex/clippy-test-run/sources/stable/gh/justahero/noire-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/justahero/noire-rs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/justahero/noire-rs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/justahero/noire-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/justahero/noire-rs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ab232d1e0f6bbb7b99b339cbad256b1adb8e4163 [INFO] sha for GitHub repo justahero/noire-rs: ab232d1e0f6bbb7b99b339cbad256b1adb8e4163 [INFO] validating manifest of justahero/noire-rs 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 justahero/noire-rs 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 justahero/noire-rs [INFO] removed 1 missing examples [INFO] finished frobbing justahero/noire-rs [INFO] frobbed toml for justahero/noire-rs written to work/ex/clippy-test-run/sources/stable/gh/justahero/noire-rs/Cargo.toml [INFO] started frobbing justahero/noire-rs [INFO] removed 1 missing examples [INFO] finished frobbing justahero/noire-rs [INFO] frobbed toml for justahero/noire-rs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/justahero/noire-rs/Cargo.toml [INFO] crate justahero/noire-rs 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 justahero/noire-rs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/justahero/noire-rs:/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] c7e1f3420875b8e21d497c037c5f98d858e34012560bbf7b796f1bebf113fe96 [INFO] running `"docker" "start" "-a" "c7e1f3420875b8e21d497c037c5f98d858e34012560bbf7b796f1bebf113fe96"` [INFO] [stderr] warning: An explicit [[example]] section is specified in Cargo.toml which currently [INFO] [stderr] disables Cargo from automatically inferring other example targets. [INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following [INFO] [stderr] files will be included as a example target: [INFO] [stderr] [INFO] [stderr] * /opt/crater/workdir/examples/filewatch.rs [INFO] [stderr] [INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be [INFO] [stderr] ready to be compiled as a example target today. You can future-proof yourself [INFO] [stderr] and disable this warning by adding `autoexamples = false` to your [package] [INFO] [stderr] section. You may also move the files to a location where Cargo would not [INFO] [stderr] automatically infer them to be a target, such as in subfolders. [INFO] [stderr] [INFO] [stderr] For more information on this warning you can consult [INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330 [INFO] [stderr] Compiling cmake v0.1.29 [INFO] [stderr] Checking inotify v0.3.0 [INFO] [stderr] Checking net2 v0.2.32 [INFO] [stderr] Checking filetime v0.1.15 [INFO] [stderr] Checking regex-syntax v0.5.0 [INFO] [stderr] Checking semver v0.2.3 [INFO] [stderr] Checking num-bigint v0.1.43 [INFO] [stderr] Checking cgmath v0.16.0 [INFO] [stderr] Compiling glfw-sys v3.2.2 [INFO] [stderr] Checking miow v0.1.5 [INFO] [stderr] Checking mio v0.5.1 [INFO] [stderr] Checking num-rational v0.1.42 [INFO] [stderr] Checking notify v4.0.3 [INFO] [stderr] Checking num v0.1.42 [INFO] [stderr] Checking regex v0.2.7 [INFO] [stderr] Checking glfw v0.21.0 [INFO] [stderr] Checking noire v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/input/mod.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | button: button, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `button` [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/math/camera.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | aspect: aspect, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `aspect` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/math/mod.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | let w: f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/render/program.rs:119:17 [INFO] [stderr] | [INFO] [stderr] 119 | location: location, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `location` [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/render/program.rs:172:17 [INFO] [stderr] | [INFO] [stderr] 172 | location: location, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `location` [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/render/program.rs:203:9 [INFO] [stderr] | [INFO] [stderr] 203 | vertex_shader: vertex_shader, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vertex_shader` [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/render/program.rs:204:9 [INFO] [stderr] | [INFO] [stderr] 204 | pixel_shader: pixel_shader, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `pixel_shader` [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/render/program.rs:205:9 [INFO] [stderr] | [INFO] [stderr] 205 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/render/shader.rs:114:21 [INFO] [stderr] | [INFO] [stderr] 114 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/render/vertex.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/render/vertex.rs:109:13 [INFO] [stderr] | [INFO] [stderr] 109 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/render/window.rs:177:13 [INFO] [stderr] | [INFO] [stderr] 177 | glfw: glfw, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `glfw` [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/render/window.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | window: window, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `window` [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/render/window.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | events: events, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `events` [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/input/mod.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | button: button, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `button` [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/math/camera.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | aspect: aspect, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `aspect` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/math/mod.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | let w: f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/render/program.rs:119:17 [INFO] [stderr] | [INFO] [stderr] 119 | location: location, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `location` [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/render/program.rs:172:17 [INFO] [stderr] | [INFO] [stderr] 172 | location: location, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `location` [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/render/program.rs:203:9 [INFO] [stderr] | [INFO] [stderr] 203 | vertex_shader: vertex_shader, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vertex_shader` [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/render/program.rs:204:9 [INFO] [stderr] | [INFO] [stderr] 204 | pixel_shader: pixel_shader, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `pixel_shader` [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/render/program.rs:205:9 [INFO] [stderr] | [INFO] [stderr] 205 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/render/shader.rs:114:21 [INFO] [stderr] | [INFO] [stderr] 114 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/render/vertex.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/render/vertex.rs:109:13 [INFO] [stderr] | [INFO] [stderr] 109 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/render/window.rs:177:13 [INFO] [stderr] | [INFO] [stderr] 177 | glfw: glfw, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `glfw` [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/render/window.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | window: window, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `window` [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/render/window.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | events: events, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `events` [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: you should consider adding a `Default` implementation for `math::camera::Camera` [INFO] [stderr] --> src/math/camera.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn new() -> Camera { [INFO] [stderr] 23 | | Camera { [INFO] [stderr] 24 | | znear: 0.1, [INFO] [stderr] 25 | | zfar: 100.0, [INFO] [stderr] ... | [INFO] [stderr] 32 | | } [INFO] [stderr] 33 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 21 | impl Default for math::camera::Camera { [INFO] [stderr] 22 | fn default() -> Self { [INFO] [stderr] 23 | Self::new() [INFO] [stderr] 24 | } [INFO] [stderr] 25 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/math/camera.rs:51:25 [INFO] [stderr] | [INFO] [stderr] 51 | self.position = eye.clone(); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `eye` [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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/render/program.rs:67:20 [INFO] [stderr] | [INFO] [stderr] 67 | log_text = str::from_utf8(&buffer) [INFO] [stderr] | ____________________^ [INFO] [stderr] 68 | | .ok() [INFO] [stderr] 69 | | .expect("GetProgramInfoLog 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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/render/program.rs:112:24 [INFO] [stderr] | [INFO] [stderr] 112 | let name = str::from_utf8(&name) [INFO] [stderr] | ________________________^ [INFO] [stderr] 113 | | .ok() [INFO] [stderr] 114 | | .expect("GetActiveAttrib 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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/render/program.rs:165:24 [INFO] [stderr] | [INFO] [stderr] 165 | let name = str::from_utf8(&name) [INFO] [stderr] | ________________________^ [INFO] [stderr] 166 | | .ok() [INFO] [stderr] 167 | | .expect("GetActiveUniform 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/render/program.rs:194:26 [INFO] [stderr] | [INFO] [stderr] 194 | 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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/render/program.rs:196:22 [INFO] [stderr] | [INFO] [stderr] 196 | 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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/render/program.rs:218:22 [INFO] [stderr] | [INFO] [stderr] 218 | vertex_file: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/render/program.rs:219:24 [INFO] [stderr] | [INFO] [stderr] 219 | fragment_file: &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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/render/shader.rs:20:43 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn create_shdaer_from_file(file_path: &String, shader_type: GLenum) -> Result { [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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/render/shader.rs:53:20 [INFO] [stderr] | [INFO] [stderr] 53 | log_text = str::from_utf8(&buffer) [INFO] [stderr] | ____________________^ [INFO] [stderr] 54 | | .ok() [INFO] [stderr] 55 | | .expect("ShaderInfoLog 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: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/render/shader.rs:68:43 [INFO] [stderr] | [INFO] [stderr] 68 | result.push(format!("{}: {}", i, &shader_lines.get(i).unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `shader_lines[i]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/render/shader.rs:73:23 [INFO] [stderr] | [INFO] [stderr] 73 | fn get_errors(errors: &String, source: &str) -> Vec { [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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/render/shader.rs:97:33 [INFO] [stderr] | [INFO] [stderr] 97 | let mut status: GLint = 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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/render/shader.rs:100:22 [INFO] [stderr] | [INFO] [stderr] 100 | 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: you should consider deriving a `Default` implementation for `render::vertex::VertexArrayObject` [INFO] [stderr] --> src/render/vertex.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | / pub fn new() -> VertexArrayObject { [INFO] [stderr] 15 | | let mut id = 0; [INFO] [stderr] 16 | | unsafe { [INFO] [stderr] 17 | | gl::GenVertexArrays(1, &mut id); [INFO] [stderr] ... | [INFO] [stderr] 22 | | } [INFO] [stderr] 23 | | } [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: the variable `i` is used as a loop counter. Consider using `for (i, item) in &self.vbs.enumerate()` or similar iterators [INFO] [stderr] --> src/render/vertex.rs:38:23 [INFO] [stderr] | [INFO] [stderr] 38 | for ref vb in &self.vbs { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/render/vertex.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | for ref vb in &self.vbs { [INFO] [stderr] | ^^^^^^ --------- help: try: `let vb = &&self.vbs;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in &self.vbs.enumerate()` or similar iterators [INFO] [stderr] --> src/render/vertex.rs:51:23 [INFO] [stderr] | [INFO] [stderr] 51 | for ref vb in &self.vbs { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/render/vertex.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | for ref vb in &self.vbs { [INFO] [stderr] | ^^^^^^ --------- help: try: `let vb = &&self.vbs;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/render/vertex.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | mem::transmute(&vertex_data[0]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&vertex_data[0] as *const f32 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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/render/window.rs:70:49 [INFO] [stderr] | [INFO] [stderr] 70 | fn set_windowed(&mut self, pos: &Pos, size: &Size); [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Size` [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: identical conversion [INFO] [stderr] --> src/input/mod.rs:67:19 [INFO] [stderr] | [INFO] [stderr] 67 | let key = keyboard::Key::Escape.into(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `keyboard::Key::Escape` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `math::camera::Camera` [INFO] [stderr] --> src/math/camera.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn new() -> Camera { [INFO] [stderr] 23 | | Camera { [INFO] [stderr] 24 | | znear: 0.1, [INFO] [stderr] 25 | | zfar: 100.0, [INFO] [stderr] ... | [INFO] [stderr] 32 | | } [INFO] [stderr] 33 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 21 | impl Default for math::camera::Camera { [INFO] [stderr] 22 | fn default() -> Self { [INFO] [stderr] 23 | Self::new() [INFO] [stderr] 24 | } [INFO] [stderr] 25 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/math/camera.rs:51:25 [INFO] [stderr] | [INFO] [stderr] 51 | self.position = eye.clone(); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `eye` [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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/render/program.rs:67:20 [INFO] [stderr] | [INFO] [stderr] 67 | log_text = str::from_utf8(&buffer) [INFO] [stderr] | ____________________^ [INFO] [stderr] 68 | | .ok() [INFO] [stderr] 69 | | .expect("GetProgramInfoLog 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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/render/program.rs:112:24 [INFO] [stderr] | [INFO] [stderr] 112 | let name = str::from_utf8(&name) [INFO] [stderr] | ________________________^ [INFO] [stderr] 113 | | .ok() [INFO] [stderr] 114 | | .expect("GetActiveAttrib 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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/render/program.rs:165:24 [INFO] [stderr] | [INFO] [stderr] 165 | let name = str::from_utf8(&name) [INFO] [stderr] | ________________________^ [INFO] [stderr] 166 | | .ok() [INFO] [stderr] 167 | | .expect("GetActiveUniform 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/render/program.rs:194:26 [INFO] [stderr] | [INFO] [stderr] 194 | 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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/render/program.rs:196:22 [INFO] [stderr] | [INFO] [stderr] 196 | 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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/render/program.rs:218:22 [INFO] [stderr] | [INFO] [stderr] 218 | vertex_file: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/render/program.rs:219:24 [INFO] [stderr] | [INFO] [stderr] 219 | fragment_file: &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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/render/shader.rs:20:43 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn create_shdaer_from_file(file_path: &String, shader_type: GLenum) -> Result { [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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/render/shader.rs:53:20 [INFO] [stderr] | [INFO] [stderr] 53 | log_text = str::from_utf8(&buffer) [INFO] [stderr] | ____________________^ [INFO] [stderr] 54 | | .ok() [INFO] [stderr] 55 | | .expect("ShaderInfoLog 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: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/render/shader.rs:68:43 [INFO] [stderr] | [INFO] [stderr] 68 | result.push(format!("{}: {}", i, &shader_lines.get(i).unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `shader_lines[i]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/render/shader.rs:73:23 [INFO] [stderr] | [INFO] [stderr] 73 | fn get_errors(errors: &String, source: &str) -> Vec { [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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/render/shader.rs:97:33 [INFO] [stderr] | [INFO] [stderr] 97 | let mut status: GLint = 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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/render/shader.rs:100:22 [INFO] [stderr] | [INFO] [stderr] 100 | 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: you should consider deriving a `Default` implementation for `render::vertex::VertexArrayObject` [INFO] [stderr] --> src/render/vertex.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | / pub fn new() -> VertexArrayObject { [INFO] [stderr] 15 | | let mut id = 0; [INFO] [stderr] 16 | | unsafe { [INFO] [stderr] 17 | | gl::GenVertexArrays(1, &mut id); [INFO] [stderr] ... | [INFO] [stderr] 22 | | } [INFO] [stderr] 23 | | } [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: the variable `i` is used as a loop counter. Consider using `for (i, item) in &self.vbs.enumerate()` or similar iterators [INFO] [stderr] --> src/render/vertex.rs:38:23 [INFO] [stderr] | [INFO] [stderr] 38 | for ref vb in &self.vbs { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/render/vertex.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | for ref vb in &self.vbs { [INFO] [stderr] | ^^^^^^ --------- help: try: `let vb = &&self.vbs;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in &self.vbs.enumerate()` or similar iterators [INFO] [stderr] --> src/render/vertex.rs:51:23 [INFO] [stderr] | [INFO] [stderr] 51 | for ref vb in &self.vbs { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/render/vertex.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | for ref vb in &self.vbs { [INFO] [stderr] | ^^^^^^ --------- help: try: `let vb = &&self.vbs;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/render/vertex.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | mem::transmute(&vertex_data[0]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&vertex_data[0] as *const f32 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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/render/window.rs:70:49 [INFO] [stderr] | [INFO] [stderr] 70 | fn set_windowed(&mut self, pos: &Pos, size: &Size); [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Size` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> examples/triangles/main.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | / match rx.try_recv() { [INFO] [stderr] 52 | | Ok(DebouncedEvent::Write(path)) => { [INFO] [stderr] 53 | | match Program::compile_from_files(&vertex_file, &fragment_file) { [INFO] [stderr] 54 | | Ok(new_program) => { [INFO] [stderr] ... | [INFO] [stderr] 60 | | _ => (), [INFO] [stderr] 61 | | } [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] 51 | if let Ok(DebouncedEvent::Write(path)) = rx.try_recv() { [INFO] [stderr] 52 | match Program::compile_from_files(&vertex_file, &fragment_file) { [INFO] [stderr] 53 | Ok(new_program) => { [INFO] [stderr] 54 | program = new_program; [INFO] [stderr] 55 | } [INFO] [stderr] 56 | Err(e) => println!("Failed to set new program: {:?}", e), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> examples/triangles/main.rs:65:51 [INFO] [stderr] | [INFO] [stderr] 65 | let elapsed = (elapsed.as_secs() as f64 + elapsed.subsec_nanos() as f64 * 1e-9) as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(elapsed.subsec_nanos())` [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> examples/raymarching/main.rs:43:18 [INFO] [stderr] | [INFO] [stderr] 43 | vertex_file: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> examples/raymarching/main.rs:44:20 [INFO] [stderr] | [INFO] [stderr] 44 | fragment_file: &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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> examples/raymarching/main.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / match rx.try_recv() { [INFO] [stderr] 47 | | Ok(DebouncedEvent::Write(path)) => { [INFO] [stderr] 48 | | if let Ok(program) = Program::compile_from_files(&vertex_file, &fragment_file) { [INFO] [stderr] 49 | | return Some(program); [INFO] [stderr] ... | [INFO] [stderr] 52 | | _ => (), [INFO] [stderr] 53 | | } [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] 46 | if let Ok(DebouncedEvent::Write(path)) = rx.try_recv() { [INFO] [stderr] 47 | if let Ok(program) = Program::compile_from_files(&vertex_file, &fragment_file) { [INFO] [stderr] 48 | return Some(program); [INFO] [stderr] 49 | } [INFO] [stderr] 50 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> examples/raymarching/main.rs:58:27 [INFO] [stderr] | [INFO] [stderr] 58 | (d.as_secs() as f64 + d.subsec_nanos() as f64 * 1e-9) as f32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(d.subsec_nanos())` [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] Finished dev [unoptimized + debuginfo] target(s) in 23.54s [INFO] running `"docker" "inspect" "c7e1f3420875b8e21d497c037c5f98d858e34012560bbf7b796f1bebf113fe96"` [INFO] running `"docker" "rm" "-f" "c7e1f3420875b8e21d497c037c5f98d858e34012560bbf7b796f1bebf113fe96"` [INFO] [stdout] c7e1f3420875b8e21d497c037c5f98d858e34012560bbf7b796f1bebf113fe96