[INFO] updating cached repository tomc1998/splitterman_mmj2017 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/tomc1998/splitterman_mmj2017 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/tomc1998/splitterman_mmj2017" "work/ex/clippy-test-run/sources/stable/gh/tomc1998/splitterman_mmj2017"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/tomc1998/splitterman_mmj2017'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/tomc1998/splitterman_mmj2017" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tomc1998/splitterman_mmj2017"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tomc1998/splitterman_mmj2017'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 82368ef128d11137e45ba3ed82c525c5d57da6e9 [INFO] sha for GitHub repo tomc1998/splitterman_mmj2017: 82368ef128d11137e45ba3ed82c525c5d57da6e9 [INFO] validating manifest of tomc1998/splitterman_mmj2017 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 tomc1998/splitterman_mmj2017 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 tomc1998/splitterman_mmj2017 [INFO] finished frobbing tomc1998/splitterman_mmj2017 [INFO] frobbed toml for tomc1998/splitterman_mmj2017 written to work/ex/clippy-test-run/sources/stable/gh/tomc1998/splitterman_mmj2017/Cargo.toml [INFO] started frobbing tomc1998/splitterman_mmj2017 [INFO] finished frobbing tomc1998/splitterman_mmj2017 [INFO] frobbed toml for tomc1998/splitterman_mmj2017 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tomc1998/splitterman_mmj2017/Cargo.toml [INFO] crate tomc1998/splitterman_mmj2017 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 tomc1998/splitterman_mmj2017 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/tomc1998/splitterman_mmj2017:/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] ce1ca70f2ee2375c39ac117d1b580a46c7e30a0bb7cbc36f185aac364f83416c [INFO] running `"docker" "start" "-a" "ce1ca70f2ee2375c39ac117d1b580a46c7e30a0bb7cbc36f185aac364f83416c"` [INFO] [stderr] Compiling serde v0.9.11 [INFO] [stderr] Checking lazy_static v0.2.4 [INFO] [stderr] Compiling gcc v0.3.45 [INFO] [stderr] Compiling x11-dl v2.12.0 [INFO] [stderr] Compiling glium v0.16.0 [INFO] [stderr] Checking shared_library v0.1.5 [INFO] [stderr] Checking osmesa-sys v0.1.2 [INFO] [stderr] Compiling backtrace-sys v0.1.10 [INFO] [stderr] Compiling serde_json v0.9.9 [INFO] [stderr] Checking backtrace v0.2.3 [INFO] [stderr] Compiling target_build_utils v0.3.0 [INFO] [stderr] Compiling libloading v0.3.2 [INFO] [stderr] Checking dlib v0.3.1 [INFO] [stderr] Checking wayland-sys v0.7.8 [INFO] [stderr] Checking wayland-client v0.7.8 [INFO] [stderr] Checking wayland-window v0.4.4 [INFO] [stderr] Checking wayland-kbd v0.6.3 [INFO] [stderr] Checking winit v0.5.11 [INFO] [stderr] Checking glutin v0.7.4 [INFO] [stderr] Checking splitterman v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/game_renderer.rs:15:42 [INFO] [stderr] | [INFO] [stderr] 15 | fn new(x: f32, y: f32, r: f32, g: f32, b: f32, a: f32) -> Vertex { [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: 6th binding whose name is just one char [INFO] [stderr] --> src/game_renderer.rs:15:50 [INFO] [stderr] | [INFO] [stderr] 15 | fn new(x: f32, y: f32, r: f32, g: f32, b: f32, a: f32) -> Vertex { [INFO] [stderr] | ^ [INFO] [stderr] | [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: 5th binding whose name is just one char [INFO] [stderr] --> src/game_renderer.rs:32:58 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn rect(&mut self, x: f32, y: f32, w: f32, h: f32, r: f32, g: f32, b: f32, a: f32) { [INFO] [stderr] | ^ [INFO] [stderr] | [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: 6th binding whose name is just one char [INFO] [stderr] --> src/game_renderer.rs:32:66 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn rect(&mut self, x: f32, y: f32, w: f32, h: f32, r: f32, g: f32, b: f32, a: f32) { [INFO] [stderr] | ^ [INFO] [stderr] | [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: 7th binding whose name is just one char [INFO] [stderr] --> src/game_renderer.rs:32:74 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn rect(&mut self, x: f32, y: f32, w: f32, h: f32, r: f32, g: f32, b: f32, a: f32) { [INFO] [stderr] | ^ [INFO] [stderr] | [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: 8th binding whose name is just one char [INFO] [stderr] --> src/game_renderer.rs:32:82 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn rect(&mut self, x: f32, y: f32, w: f32, h: f32, r: f32, g: f32, b: f32, a: f32) { [INFO] [stderr] | ^ [INFO] [stderr] | [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/entity/splitter_man/mod.rs:39:7 [INFO] [stderr] | [INFO] [stderr] 39 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/engine/mod.rs:49:7 [INFO] [stderr] | [INFO] [stderr] 49 | g_renderer: g_renderer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `g_renderer` [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/engine/mod.rs:51:7 [INFO] [stderr] | [INFO] [stderr] 51 | display: display, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `display` [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/game_renderer.rs:15:42 [INFO] [stderr] | [INFO] [stderr] 15 | fn new(x: f32, y: f32, r: f32, g: f32, b: f32, a: f32) -> Vertex { [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: 6th binding whose name is just one char [INFO] [stderr] --> src/game_renderer.rs:15:50 [INFO] [stderr] | [INFO] [stderr] 15 | fn new(x: f32, y: f32, r: f32, g: f32, b: f32, a: f32) -> Vertex { [INFO] [stderr] | ^ [INFO] [stderr] | [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: 5th binding whose name is just one char [INFO] [stderr] --> src/game_renderer.rs:32:58 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn rect(&mut self, x: f32, y: f32, w: f32, h: f32, r: f32, g: f32, b: f32, a: f32) { [INFO] [stderr] | ^ [INFO] [stderr] | [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: 6th binding whose name is just one char [INFO] [stderr] --> src/game_renderer.rs:32:66 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn rect(&mut self, x: f32, y: f32, w: f32, h: f32, r: f32, g: f32, b: f32, a: f32) { [INFO] [stderr] | ^ [INFO] [stderr] | [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: 7th binding whose name is just one char [INFO] [stderr] --> src/game_renderer.rs:32:74 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn rect(&mut self, x: f32, y: f32, w: f32, h: f32, r: f32, g: f32, b: f32, a: f32) { [INFO] [stderr] | ^ [INFO] [stderr] | [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: 8th binding whose name is just one char [INFO] [stderr] --> src/game_renderer.rs:32:82 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn rect(&mut self, x: f32, y: f32, w: f32, h: f32, r: f32, g: f32, b: f32, a: f32) { [INFO] [stderr] | ^ [INFO] [stderr] | [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/entity/splitter_man/mod.rs:39:7 [INFO] [stderr] | [INFO] [stderr] 39 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/engine/mod.rs:49:7 [INFO] [stderr] | [INFO] [stderr] 49 | g_renderer: g_renderer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `g_renderer` [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/engine/mod.rs:51:7 [INFO] [stderr] | [INFO] [stderr] 51 | display: display, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `display` [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: unneeded return statement [INFO] [stderr] --> src/game_renderer.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / return [[2.0/(r-l) as f32, 0.0, 0.0, -0.0], [INFO] [stderr] 61 | | [0.0, 2.0/(t-b) as f32, 0.0, 0.0], [INFO] [stderr] 62 | | [0.0, 0.0, -1.0, 0.0], [INFO] [stderr] 63 | | [tx, ty, 0.0, 1.0]]; [INFO] [stderr] | |____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 60 | [[2.0/(r-l) as f32, 0.0, 0.0, -0.0], [INFO] [stderr] 61 | [0.0, 2.0/(t-b) as f32, 0.0, 0.0], [INFO] [stderr] 62 | [0.0, 0.0, -1.0, 0.0], [INFO] [stderr] 63 | [tx, ty, 0.0, 1.0]] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game_renderer.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | return Vec2f32(self.pos[0] + x_dis_w, self.pos[1] + y_dis_w); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Vec2f32(self.pos[0] + x_dis_w, self.pos[1] + y_dis_w)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/shader.rs:4:30 [INFO] [stderr] | [INFO] [stderr] 4 | pub const VERT_SHADER_SRC : &'static str = r#" [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/shader.rs:20:30 [INFO] [stderr] | [INFO] [stderr] 20 | pub const FRAG_SHADER_SRC : &'static str = r#" [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: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/state.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | return (next_state, (remove, ents, new_pos)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(next_state, (remove, ents, new_pos))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/state.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | return (next_state, (remove, ents, new_pos)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(next_state, (remove, ents, new_pos))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/mod.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | return final_pos; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `final_pos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/mod.rs:95:5 [INFO] [stderr] | [INFO] [stderr] 95 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/mod.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | return (false, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(false, None)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/mod.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/entity/splitter_man/mod.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | / if self.selected { [INFO] [stderr] 139 | | if e.input_handler.inputs.get(&input::Control::Move).unwrap().down [INFO] [stderr] 140 | | && !e.input_handler.inputs.get(&input::Control::Select).unwrap().down { [INFO] [stderr] 141 | | // Set target [INFO] [stderr] ... | [INFO] [stderr] 144 | | } [INFO] [stderr] 145 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 138 | if self.selected && e.input_handler.inputs.get(&input::Control::Move).unwrap().down [INFO] [stderr] 139 | && !e.input_handler.inputs.get(&input::Control::Select).unwrap().down { [INFO] [stderr] 140 | // Set target [INFO] [stderr] 141 | self.target = Some(e.g_renderer.camera.screen_to_world(e.input_handler.mouse_pos.0, e.input_handler.mouse_pos.1)); [INFO] [stderr] 142 | return true; [INFO] [stderr] 143 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/mod.rs:156:5 [INFO] [stderr] | [INFO] [stderr] 156 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/mod.rs:172:5 [INFO] [stderr] | [INFO] [stderr] 172 | return (remove, ents, final_pos); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(remove, ents, final_pos)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/entity/mod.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | / macro_rules! empty { [INFO] [stderr] 22 | | () => {} [INFO] [stderr] 23 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/engine/common/vec.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | return self; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/engine/common/vec.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | return self; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/engine/mod.rs:58:24 [INFO] [stderr] | [INFO] [stderr] 58 | nanos_per_frame: 16666666, // 60 FPS [INFO] [stderr] | ^^^^^^^^ help: consider: `16_666_666` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/engine/mod.rs:117:5 [INFO] [stderr] | [INFO] [stderr] 117 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/engine/mod.rs:98:20 [INFO] [stderr] | [INFO] [stderr] 98 | let mut ix = 100000000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `100_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/engine/mod.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | return EHandle(self.last_ehandle.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `EHandle(self.last_ehandle.0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/input/mod.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | return i; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `i` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/input/mod.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game_renderer.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / return [[2.0/(r-l) as f32, 0.0, 0.0, -0.0], [INFO] [stderr] 61 | | [0.0, 2.0/(t-b) as f32, 0.0, 0.0], [INFO] [stderr] 62 | | [0.0, 0.0, -1.0, 0.0], [INFO] [stderr] 63 | | [tx, ty, 0.0, 1.0]]; [INFO] [stderr] | |____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 60 | [[2.0/(r-l) as f32, 0.0, 0.0, -0.0], [INFO] [stderr] 61 | [0.0, 2.0/(t-b) as f32, 0.0, 0.0], [INFO] [stderr] 62 | [0.0, 0.0, -1.0, 0.0], [INFO] [stderr] 63 | [tx, ty, 0.0, 1.0]] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/game_renderer.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | return Vec2f32(self.pos[0] + x_dis_w, self.pos[1] + y_dis_w); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Vec2f32(self.pos[0] + x_dis_w, self.pos[1] + y_dis_w)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/shader.rs:4:30 [INFO] [stderr] | [INFO] [stderr] 4 | pub const VERT_SHADER_SRC : &'static str = r#" [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/shader.rs:20:30 [INFO] [stderr] | [INFO] [stderr] 20 | pub const FRAG_SHADER_SRC : &'static str = r#" [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: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/state.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | return (next_state, (remove, ents, new_pos)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(next_state, (remove, ents, new_pos))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/state.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | return (next_state, (remove, ents, new_pos)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(next_state, (remove, ents, new_pos))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/mod.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | return final_pos; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `final_pos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/mod.rs:95:5 [INFO] [stderr] | [INFO] [stderr] 95 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/mod.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | return (false, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(false, None)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/mod.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/entity/splitter_man/mod.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | / if self.selected { [INFO] [stderr] 139 | | if e.input_handler.inputs.get(&input::Control::Move).unwrap().down [INFO] [stderr] 140 | | && !e.input_handler.inputs.get(&input::Control::Select).unwrap().down { [INFO] [stderr] 141 | | // Set target [INFO] [stderr] ... | [INFO] [stderr] 144 | | } [INFO] [stderr] 145 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 138 | if self.selected && e.input_handler.inputs.get(&input::Control::Move).unwrap().down [INFO] [stderr] 139 | && !e.input_handler.inputs.get(&input::Control::Select).unwrap().down { [INFO] [stderr] 140 | // Set target [INFO] [stderr] 141 | self.target = Some(e.g_renderer.camera.screen_to_world(e.input_handler.mouse_pos.0, e.input_handler.mouse_pos.1)); [INFO] [stderr] 142 | return true; [INFO] [stderr] 143 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/mod.rs:156:5 [INFO] [stderr] | [INFO] [stderr] 156 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entity/splitter_man/mod.rs:172:5 [INFO] [stderr] | [INFO] [stderr] 172 | return (remove, ents, final_pos); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(remove, ents, final_pos)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/entity/mod.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | / macro_rules! empty { [INFO] [stderr] 22 | | () => {} [INFO] [stderr] 23 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/engine/common/vec.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | return self; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/engine/common/vec.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | return self; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/engine/mod.rs:58:24 [INFO] [stderr] | [INFO] [stderr] 58 | nanos_per_frame: 16666666, // 60 FPS [INFO] [stderr] | ^^^^^^^^ help: consider: `16_666_666` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/engine/mod.rs:117:5 [INFO] [stderr] | [INFO] [stderr] 117 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/engine/mod.rs:98:20 [INFO] [stderr] | [INFO] [stderr] 98 | let mut ix = 100000000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `100_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/engine/mod.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | return EHandle(self.last_ehandle.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `EHandle(self.last_ehandle.0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/input/mod.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | return i; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `i` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/input/mod.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/entity/splitter_man/state.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | e: &mut SplitterMan, [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `engine` [INFO] [stderr] --> src/entity/splitter_man/state.rs:66:14 [INFO] [stderr] | [INFO] [stderr] 66 | engine: &Engine) -> (Option, (bool, Option>, Vec2f32)) { [INFO] [stderr] | ^^^^^^ help: consider using `_engine` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/input/mod.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | let mut b = self.curr_box.as_mut().unwrap(); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/game_renderer.rs:32:3 [INFO] [stderr] | [INFO] [stderr] 32 | / pub fn rect(&mut self, x: f32, y: f32, w: f32, h: f32, r: f32, g: f32, b: f32, a: f32) { [INFO] [stderr] 33 | | self.data.push(Vertex::new(x, y, r, g, b, a)); [INFO] [stderr] 34 | | self.data.push(Vertex::new(x+w, y, r, g, b, a)); [INFO] [stderr] 35 | | self.data.push(Vertex::new(x+w, y+h, r, g, b, a)); [INFO] [stderr] ... | [INFO] [stderr] 38 | | self.data.push(Vertex::new(x+w, y+h, r, g, b, a)); [INFO] [stderr] 39 | | } [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: length comparison to zero [INFO] [stderr] --> src/game_renderer.rs:130:8 [INFO] [stderr] | [INFO] [stderr] 130 | if controller.data.len() == 0 { return } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `controller.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: length comparison to zero [INFO] [stderr] --> src/game_renderer.rs:157:8 [INFO] [stderr] | [INFO] [stderr] 157 | if controller.data.len() == 0 { return } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `controller.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: you should consider deriving a `Default` implementation for `entity::splitter_man::state::IdleState` [INFO] [stderr] --> src/entity/splitter_man/state.rs:7:3 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn new() -> IdleState { IdleState } [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] 5 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/entity/splitter_man/state.rs:10:34 [INFO] [stderr] | [INFO] [stderr] 10 | engine: &Engine) -> (Option, (bool, Option>, Vec2f32)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `entity::splitter_man::state::MovingState` [INFO] [stderr] --> src/entity/splitter_man/state.rs:29:3 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn new() -> MovingState { MovingState } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 27 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/entity/splitter_man/state.rs:32:34 [INFO] [stderr] | [INFO] [stderr] 32 | engine: &Engine) -> (Option, (bool, Option>, Vec2f32)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `entity::splitter_man::state::SplittingState` [INFO] [stderr] --> src/entity/splitter_man/state.rs:52:3 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn new() -> SplittingState { SplittingState } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 50 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/entity/splitter_man/state.rs:55:29 [INFO] [stderr] | [INFO] [stderr] 55 | _: &Engine) -> (Option, (bool, Option>, Vec2f32)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `entity::splitter_man::state::JoiningState` [INFO] [stderr] --> src/entity/splitter_man/state.rs:63:3 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn new() -> JoiningState { JoiningState } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 61 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/entity/splitter_man/state.rs:66:34 [INFO] [stderr] | [INFO] [stderr] 66 | engine: &Engine) -> (Option, (bool, Option>, Vec2f32)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/entity/splitter_man/state.rs:85:70 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn process(&mut self, e: &mut SplitterMan, engine: &Engine) -> (Option, (bool, Option>, Vec2f32)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/entity/splitter_man/mod.rs:120:25 [INFO] [stderr] | [INFO] [stderr] 120 | if self.size > 1 && e.input_handler.inputs.get(&input::Control::Split).unwrap().just_down { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&e.input_handler.inputs[&input::Control::Split]` [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: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/entity/splitter_man/mod.rs:139:10 [INFO] [stderr] | [INFO] [stderr] 139 | if e.input_handler.inputs.get(&input::Control::Move).unwrap().down [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&e.input_handler.inputs[&input::Control::Move]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/entity/splitter_man/mod.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | && !e.input_handler.inputs.get(&input::Control::Select).unwrap().down { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&e.input_handler.inputs[&input::Control::Select]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/entity/splitter_man/mod.rs:168:5 [INFO] [stderr] | [INFO] [stderr] 168 | / let final_pos; [INFO] [stderr] 169 | | if new_pos == self.body.pos { final_pos = self.process_coll(e); } [INFO] [stderr] 170 | | else { final_pos = new_pos; } [INFO] [stderr] | |_________________________________^ help: it is more idiomatic to write: `let final_pos = if new_pos == self.body.pos { self.process_coll(e) } else { new_pos };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/entity/splitter_man/mod.rs:185:5 [INFO] [stderr] | [INFO] [stderr] 185 | / let c : (f32, f32, f32, f32); [INFO] [stderr] 186 | | if self.selected { [INFO] [stderr] 187 | | c = (0.0, 1.0, 1.0, 1.0); [INFO] [stderr] 188 | | } [INFO] [stderr] 189 | | else { [INFO] [stderr] 190 | | c = (1.0, 0.0, 0.0, 1.0); [INFO] [stderr] 191 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let c = if self.selected { (0.0, 1.0, 1.0, 1.0) } else { (1.0, 0.0, 0.0, 1.0) };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/engine/common/vec.rs:8:30 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn new_from_copy(copy: &Vec2f32) -> Vec2f32 { Vec2f32(copy.0, copy.1) } [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `Vec2f32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/engine/common/vec.rs:11:33 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn set(&mut self, target: &Vec2f32) { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `Vec2f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: item `engine::common::vec::Vec2f32` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/engine/common/vec.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | / impl Vec2f32 { [INFO] [stderr] 46 | | pub fn len(&self) -> f32 { [INFO] [stderr] 47 | | (self.0.powi(2) + self.1.powi(2)).sqrt() [INFO] [stderr] 48 | | } [INFO] [stderr] ... | [INFO] [stderr] 68 | | } [INFO] [stderr] 69 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/engine/common/vec.rs:46:14 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn len(&self) -> f32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/engine/common/vec.rs:49:15 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn len2(&self) -> f32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `engine::Engine` [INFO] [stderr] --> src/engine/mod.rs:43:3 [INFO] [stderr] | [INFO] [stderr] 43 | / pub fn new() -> Engine { [INFO] [stderr] 44 | | use glium::glutin::CursorState; [INFO] [stderr] 45 | | let display = init_display(); [INFO] [stderr] 46 | | display.get_window().unwrap().set_cursor_state(CursorState::Grab).unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [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] 42 | impl Default for engine::Engine { [INFO] [stderr] 43 | fn default() -> Self { [INFO] [stderr] 44 | Self::new() [INFO] [stderr] 45 | } [INFO] [stderr] 46 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `input::InputHandler` [INFO] [stderr] --> src/input/mod.rs:46:3 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn new() -> InputHandler { [INFO] [stderr] 47 | | let mut i = InputHandler { [INFO] [stderr] 48 | | curr_box: None, [INFO] [stderr] 49 | | selection: None, [INFO] [stderr] ... | [INFO] [stderr] 59 | | return i; [INFO] [stderr] 60 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [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] 36 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/input/mod.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | if keycode == VirtualKeyCode::Escape { true } else { false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `keycode == VirtualKeyCode::Escape` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/input/mod.rs:116:20 [INFO] [stderr] | [INFO] [stderr] 116 | let c_select = self.inputs.get(&Control::Select).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.inputs[&Control::Select]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/entity/splitter_man/state.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | e: &mut SplitterMan, [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `engine` [INFO] [stderr] --> src/entity/splitter_man/state.rs:66:14 [INFO] [stderr] | [INFO] [stderr] 66 | engine: &Engine) -> (Option, (bool, Option>, Vec2f32)) { [INFO] [stderr] | ^^^^^^ help: consider using `_engine` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/input/mod.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | let mut b = self.curr_box.as_mut().unwrap(); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/game_renderer.rs:32:3 [INFO] [stderr] | [INFO] [stderr] 32 | / pub fn rect(&mut self, x: f32, y: f32, w: f32, h: f32, r: f32, g: f32, b: f32, a: f32) { [INFO] [stderr] 33 | | self.data.push(Vertex::new(x, y, r, g, b, a)); [INFO] [stderr] 34 | | self.data.push(Vertex::new(x+w, y, r, g, b, a)); [INFO] [stderr] 35 | | self.data.push(Vertex::new(x+w, y+h, r, g, b, a)); [INFO] [stderr] ... | [INFO] [stderr] 38 | | self.data.push(Vertex::new(x+w, y+h, r, g, b, a)); [INFO] [stderr] 39 | | } [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: length comparison to zero [INFO] [stderr] --> src/game_renderer.rs:130:8 [INFO] [stderr] | [INFO] [stderr] 130 | if controller.data.len() == 0 { return } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `controller.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: length comparison to zero [INFO] [stderr] --> src/game_renderer.rs:157:8 [INFO] [stderr] | [INFO] [stderr] 157 | if controller.data.len() == 0 { return } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `controller.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: you should consider deriving a `Default` implementation for `entity::splitter_man::state::IdleState` [INFO] [stderr] --> src/entity/splitter_man/state.rs:7:3 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn new() -> IdleState { IdleState } [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] 5 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/entity/splitter_man/state.rs:10:34 [INFO] [stderr] | [INFO] [stderr] 10 | engine: &Engine) -> (Option, (bool, Option>, Vec2f32)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `entity::splitter_man::state::MovingState` [INFO] [stderr] --> src/entity/splitter_man/state.rs:29:3 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn new() -> MovingState { MovingState } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 27 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/entity/splitter_man/state.rs:32:34 [INFO] [stderr] | [INFO] [stderr] 32 | engine: &Engine) -> (Option, (bool, Option>, Vec2f32)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `entity::splitter_man::state::SplittingState` [INFO] [stderr] --> src/entity/splitter_man/state.rs:52:3 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn new() -> SplittingState { SplittingState } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 50 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/entity/splitter_man/state.rs:55:29 [INFO] [stderr] | [INFO] [stderr] 55 | _: &Engine) -> (Option, (bool, Option>, Vec2f32)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `entity::splitter_man::state::JoiningState` [INFO] [stderr] --> src/entity/splitter_man/state.rs:63:3 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn new() -> JoiningState { JoiningState } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 61 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/entity/splitter_man/state.rs:66:34 [INFO] [stderr] | [INFO] [stderr] 66 | engine: &Engine) -> (Option, (bool, Option>, Vec2f32)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/entity/splitter_man/state.rs:85:70 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn process(&mut self, e: &mut SplitterMan, engine: &Engine) -> (Option, (bool, Option>, Vec2f32)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/entity/splitter_man/mod.rs:120:25 [INFO] [stderr] | [INFO] [stderr] 120 | if self.size > 1 && e.input_handler.inputs.get(&input::Control::Split).unwrap().just_down { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&e.input_handler.inputs[&input::Control::Split]` [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: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/entity/splitter_man/mod.rs:139:10 [INFO] [stderr] | [INFO] [stderr] 139 | if e.input_handler.inputs.get(&input::Control::Move).unwrap().down [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&e.input_handler.inputs[&input::Control::Move]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/entity/splitter_man/mod.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | && !e.input_handler.inputs.get(&input::Control::Select).unwrap().down { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&e.input_handler.inputs[&input::Control::Select]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/entity/splitter_man/mod.rs:168:5 [INFO] [stderr] | [INFO] [stderr] 168 | / let final_pos; [INFO] [stderr] 169 | | if new_pos == self.body.pos { final_pos = self.process_coll(e); } [INFO] [stderr] 170 | | else { final_pos = new_pos; } [INFO] [stderr] | |_________________________________^ help: it is more idiomatic to write: `let final_pos = if new_pos == self.body.pos { self.process_coll(e) } else { new_pos };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/entity/splitter_man/mod.rs:185:5 [INFO] [stderr] | [INFO] [stderr] 185 | / let c : (f32, f32, f32, f32); [INFO] [stderr] 186 | | if self.selected { [INFO] [stderr] 187 | | c = (0.0, 1.0, 1.0, 1.0); [INFO] [stderr] 188 | | } [INFO] [stderr] 189 | | else { [INFO] [stderr] 190 | | c = (1.0, 0.0, 0.0, 1.0); [INFO] [stderr] 191 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let c = if self.selected { (0.0, 1.0, 1.0, 1.0) } else { (1.0, 0.0, 0.0, 1.0) };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/engine/common/vec.rs:8:30 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn new_from_copy(copy: &Vec2f32) -> Vec2f32 { Vec2f32(copy.0, copy.1) } [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `Vec2f32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/engine/common/vec.rs:11:33 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn set(&mut self, target: &Vec2f32) { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `Vec2f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: item `engine::common::vec::Vec2f32` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/engine/common/vec.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | / impl Vec2f32 { [INFO] [stderr] 46 | | pub fn len(&self) -> f32 { [INFO] [stderr] 47 | | (self.0.powi(2) + self.1.powi(2)).sqrt() [INFO] [stderr] 48 | | } [INFO] [stderr] ... | [INFO] [stderr] 68 | | } [INFO] [stderr] 69 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/engine/common/vec.rs:46:14 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn len(&self) -> f32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/engine/common/vec.rs:49:15 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn len2(&self) -> f32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `engine::Engine` [INFO] [stderr] --> src/engine/mod.rs:43:3 [INFO] [stderr] | [INFO] [stderr] 43 | / pub fn new() -> Engine { [INFO] [stderr] 44 | | use glium::glutin::CursorState; [INFO] [stderr] 45 | | let display = init_display(); [INFO] [stderr] 46 | | display.get_window().unwrap().set_cursor_state(CursorState::Grab).unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [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] 42 | impl Default for engine::Engine { [INFO] [stderr] 43 | fn default() -> Self { [INFO] [stderr] 44 | Self::new() [INFO] [stderr] 45 | } [INFO] [stderr] 46 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `input::InputHandler` [INFO] [stderr] --> src/input/mod.rs:46:3 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn new() -> InputHandler { [INFO] [stderr] 47 | | let mut i = InputHandler { [INFO] [stderr] 48 | | curr_box: None, [INFO] [stderr] 49 | | selection: None, [INFO] [stderr] ... | [INFO] [stderr] 59 | | return i; [INFO] [stderr] 60 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [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] 36 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/input/mod.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | if keycode == VirtualKeyCode::Escape { true } else { false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `keycode == VirtualKeyCode::Escape` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/input/mod.rs:116:20 [INFO] [stderr] | [INFO] [stderr] 116 | let c_select = self.inputs.get(&Control::Select).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.inputs[&Control::Select]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 07s [INFO] running `"docker" "inspect" "ce1ca70f2ee2375c39ac117d1b580a46c7e30a0bb7cbc36f185aac364f83416c"` [INFO] running `"docker" "rm" "-f" "ce1ca70f2ee2375c39ac117d1b580a46c7e30a0bb7cbc36f185aac364f83416c"` [INFO] [stdout] ce1ca70f2ee2375c39ac117d1b580a46c7e30a0bb7cbc36f185aac364f83416c