[INFO] crate gameboy_opengl 0.1.3 is already in cache [INFO] extracting crate gameboy_opengl 0.1.3 into work/ex/clippy-test-run/sources/stable/reg/gameboy_opengl/0.1.3 [INFO] extracting crate gameboy_opengl 0.1.3 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/gameboy_opengl/0.1.3 [INFO] validating manifest of gameboy_opengl-0.1.3 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 gameboy_opengl-0.1.3 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 gameboy_opengl-0.1.3 [INFO] finished frobbing gameboy_opengl-0.1.3 [INFO] frobbed toml for gameboy_opengl-0.1.3 written to work/ex/clippy-test-run/sources/stable/reg/gameboy_opengl/0.1.3/Cargo.toml [INFO] started frobbing gameboy_opengl-0.1.3 [INFO] finished frobbing gameboy_opengl-0.1.3 [INFO] frobbed toml for gameboy_opengl-0.1.3 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/gameboy_opengl/0.1.3/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting gameboy_opengl-0.1.3 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/gameboy_opengl/0.1.3:/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] ec6fc073477c9092d2ae61ba5da61a42afb3ead222517b7410624b9cf1736689 [INFO] running `"docker" "start" "-a" "ec6fc073477c9092d2ae61ba5da61a42afb3ead222517b7410624b9cf1736689"` [INFO] [stderr] Checking c_str_macro v1.0.2 [INFO] [stderr] Checking gameboy_core v0.1.14 [INFO] [stderr] Compiling glutin v0.11.0 [INFO] [stderr] Checking winit v0.9.0 [INFO] [stderr] Checking gameboy_opengl v0.1.3 (/opt/crater/workdir) [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/screen.rs:13:23 [INFO] [stderr] | [INFO] [stderr] 13 | const VERTEX_SOURCE: &'static str = include_str!("shaders/vertex.glsl"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/screen.rs:14:25 [INFO] [stderr] | [INFO] [stderr] 14 | const FRAGMENT_SOURCE: &'static str = include_str!("shaders/fragment.glsl"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: value assigned to `program` is never read [INFO] [stderr] --> src/shader.rs:13:17 [INFO] [stderr] | [INFO] [stderr] 13 | let mut program = 0; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `joypad` [INFO] [stderr] --> src/screen.rs:155:33 [INFO] [stderr] | [INFO] [stderr] 155 | fn update_joypad(&mut self, joypad: &mut Joypad) { [INFO] [stderr] | ^^^^^^ help: consider using `_joypad` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/shader.rs:49:22 [INFO] [stderr] | [INFO] [stderr] 49 | 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/shader.rs:52:18 [INFO] [stderr] | [INFO] [stderr] 52 | 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/shader.rs:75:22 [INFO] [stderr] | [INFO] [stderr] 75 | 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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/shader.rs:78:18 [INFO] [stderr] | [INFO] [stderr] 78 | 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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/screen.rs:158:13 [INFO] [stderr] | [INFO] [stderr] 158 | / match event { [INFO] [stderr] 159 | | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] 160 | | WindowEvent::KeyboardInput { input, .. } => { [INFO] [stderr] 161 | | if input.state == glutin::ElementState::Pressed { [INFO] [stderr] ... | [INFO] [stderr] 186 | | _ => () [INFO] [stderr] 187 | | } [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] 158 | if let glutin::Event::WindowEvent { event, .. } = event { match event { [INFO] [stderr] 159 | WindowEvent::KeyboardInput { input, .. } => { [INFO] [stderr] 160 | if input.state == glutin::ElementState::Pressed { [INFO] [stderr] 161 | if let Some(keycode) = input.virtual_keycode { [INFO] [stderr] 162 | match keycode { [INFO] [stderr] 163 | VirtualKeyCode::Up => (), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/screen.rs:171:81 [INFO] [stderr] | [INFO] [stderr] 171 | } else if input.state == glutin::ElementState::Released { [INFO] [stderr] | _________________________________________________________________________________^ [INFO] [stderr] 172 | | if let Some(keycode) = input.virtual_keycode { [INFO] [stderr] 173 | | match keycode { [INFO] [stderr] 174 | | VirtualKeyCode::Up => (), [INFO] [stderr] ... | [INFO] [stderr] 180 | | } [INFO] [stderr] 181 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/screen.rs:161:73 [INFO] [stderr] | [INFO] [stderr] 161 | if input.state == glutin::ElementState::Pressed { [INFO] [stderr] | _________________________________________________________________________^ [INFO] [stderr] 162 | | if let Some(keycode) = input.virtual_keycode { [INFO] [stderr] 163 | | match keycode { [INFO] [stderr] 164 | | VirtualKeyCode::Up => (), [INFO] [stderr] ... | [INFO] [stderr] 170 | | } [INFO] [stderr] 171 | | } else if input.state == glutin::ElementState::Released { [INFO] [stderr] | |_________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `gameboy_opengl`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/screen.rs:13:23 [INFO] [stderr] | [INFO] [stderr] 13 | const VERTEX_SOURCE: &'static str = include_str!("shaders/vertex.glsl"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/screen.rs:14:25 [INFO] [stderr] | [INFO] [stderr] 14 | const FRAGMENT_SOURCE: &'static str = include_str!("shaders/fragment.glsl"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: value assigned to `program` is never read [INFO] [stderr] --> src/shader.rs:13:17 [INFO] [stderr] | [INFO] [stderr] 13 | let mut program = 0; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `joypad` [INFO] [stderr] --> src/screen.rs:155:33 [INFO] [stderr] | [INFO] [stderr] 155 | fn update_joypad(&mut self, joypad: &mut Joypad) { [INFO] [stderr] | ^^^^^^ help: consider using `_joypad` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/shader.rs:49:22 [INFO] [stderr] | [INFO] [stderr] 49 | 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/shader.rs:52:18 [INFO] [stderr] | [INFO] [stderr] 52 | 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/shader.rs:75:22 [INFO] [stderr] | [INFO] [stderr] 75 | 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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/shader.rs:78:18 [INFO] [stderr] | [INFO] [stderr] 78 | 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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/screen.rs:158:13 [INFO] [stderr] | [INFO] [stderr] 158 | / match event { [INFO] [stderr] 159 | | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] 160 | | WindowEvent::KeyboardInput { input, .. } => { [INFO] [stderr] 161 | | if input.state == glutin::ElementState::Pressed { [INFO] [stderr] ... | [INFO] [stderr] 186 | | _ => () [INFO] [stderr] 187 | | } [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] 158 | if let glutin::Event::WindowEvent { event, .. } = event { match event { [INFO] [stderr] 159 | WindowEvent::KeyboardInput { input, .. } => { [INFO] [stderr] 160 | if input.state == glutin::ElementState::Pressed { [INFO] [stderr] 161 | if let Some(keycode) = input.virtual_keycode { [INFO] [stderr] 162 | match keycode { [INFO] [stderr] 163 | VirtualKeyCode::Up => (), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/screen.rs:171:81 [INFO] [stderr] | [INFO] [stderr] 171 | } else if input.state == glutin::ElementState::Released { [INFO] [stderr] | _________________________________________________________________________________^ [INFO] [stderr] 172 | | if let Some(keycode) = input.virtual_keycode { [INFO] [stderr] 173 | | match keycode { [INFO] [stderr] 174 | | VirtualKeyCode::Up => (), [INFO] [stderr] ... | [INFO] [stderr] 180 | | } [INFO] [stderr] 181 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/screen.rs:161:73 [INFO] [stderr] | [INFO] [stderr] 161 | if input.state == glutin::ElementState::Pressed { [INFO] [stderr] | _________________________________________________________________________^ [INFO] [stderr] 162 | | if let Some(keycode) = input.virtual_keycode { [INFO] [stderr] 163 | | match keycode { [INFO] [stderr] 164 | | VirtualKeyCode::Up => (), [INFO] [stderr] ... | [INFO] [stderr] 170 | | } [INFO] [stderr] 171 | | } else if input.state == glutin::ElementState::Released { [INFO] [stderr] | |_________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `gameboy_opengl`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "ec6fc073477c9092d2ae61ba5da61a42afb3ead222517b7410624b9cf1736689"` [INFO] running `"docker" "rm" "-f" "ec6fc073477c9092d2ae61ba5da61a42afb3ead222517b7410624b9cf1736689"` [INFO] [stdout] ec6fc073477c9092d2ae61ba5da61a42afb3ead222517b7410624b9cf1736689