[INFO] updating cached repository aleozlx/piston-gui [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/aleozlx/piston-gui [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/aleozlx/piston-gui" "work/ex/clippy-test-run/sources/stable/gh/aleozlx/piston-gui"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/aleozlx/piston-gui'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/aleozlx/piston-gui" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/aleozlx/piston-gui"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/aleozlx/piston-gui'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ecdf540ff4411f392b1960020de0ff48a27a6ae4 [INFO] sha for GitHub repo aleozlx/piston-gui: ecdf540ff4411f392b1960020de0ff48a27a6ae4 [INFO] validating manifest of aleozlx/piston-gui 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 aleozlx/piston-gui 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 aleozlx/piston-gui [INFO] finished frobbing aleozlx/piston-gui [INFO] frobbed toml for aleozlx/piston-gui written to work/ex/clippy-test-run/sources/stable/gh/aleozlx/piston-gui/Cargo.toml [INFO] started frobbing aleozlx/piston-gui [INFO] finished frobbing aleozlx/piston-gui [INFO] frobbed toml for aleozlx/piston-gui written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/aleozlx/piston-gui/Cargo.toml [INFO] crate aleozlx/piston-gui 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 aleozlx/piston-gui 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/gh/aleozlx/piston-gui:/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] 97a7ece85fb810545f9adba82b09f12571cf2cc86835ef2720eebca33fd65141 [INFO] running `"docker" "start" "-a" "97a7ece85fb810545f9adba82b09f12571cf2cc86835ef2720eebca33fd65141"` [INFO] [stderr] Compiling x11-dl v2.18.1 [INFO] [stderr] Compiling libz-sys v1.0.18 [INFO] [stderr] Checking crossbeam-epoch v0.3.1 [INFO] [stderr] Compiling gl_generator v0.9.0 [INFO] [stderr] Checking gfx_core v0.8.2 [INFO] [stderr] Compiling num-derive v0.2.2 [INFO] [stderr] Checking env_logger v0.5.11 [INFO] [stderr] Checking wayland-sys v0.12.5 [INFO] [stderr] Checking rusttype v0.4.3 [INFO] [stderr] Checking pistoncore-input v0.21.0 [INFO] [stderr] Checking wayland-client v0.12.5 [INFO] [stderr] Checking crossbeam-deque v0.2.0 [INFO] [stderr] Checking quickcheck v0.6.2 [INFO] [stderr] Checking rayon-core v1.4.1 [INFO] [stderr] Checking piston2d-graphics v0.26.0 [INFO] [stderr] Compiling gl v0.10.0 [INFO] [stderr] Compiling gfx_gl v0.5.0 [INFO] [stderr] Compiling glutin v0.14.0 [INFO] [stderr] Checking wayland-protocols v0.12.5 [INFO] [stderr] Checking wayland-kbd v0.13.1 [INFO] [stderr] Checking flate2 v1.0.2 [INFO] [stderr] Checking rayon v1.0.2 [INFO] [stderr] Checking pistoncore-window v0.32.0 [INFO] [stderr] Checking piston-ai_behavior v0.24.0 [INFO] [stderr] Checking pistoncore-event_loop v0.37.0 [INFO] [stderr] Checking piston2d-sprite v0.45.0 [INFO] [stderr] Checking jpeg-decoder v0.1.15 [INFO] [stderr] Checking piston v0.37.0 [INFO] [stderr] Checking wayland-window v0.13.3 [INFO] [stderr] Checking winit v0.12.0 [INFO] [stderr] Checking image v0.19.0 [INFO] [stderr] Checking pistoncore-glutin_window v0.47.0 [INFO] [stderr] Checking imageproc v0.15.0 [INFO] [stderr] Checking gfx v0.17.1 [INFO] [stderr] Checking gfx_device_gl v0.15.3 [INFO] [stderr] Checking piston-gfx_texture v0.32.0 [INFO] [stderr] Checking piston2d-gfx_graphics v0.51.0 [INFO] [stderr] Checking piston_window v0.80.0 [INFO] [stderr] Checking piston-gui v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/vgui.rs:279:20 [INFO] [stderr] | [INFO] [stderr] 279 | Pagnator { total_items: total_items, page_size: o.page_capacity(), page_current: 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_items` [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/h5meta.rs:99:85 [INFO] [stderr] | [INFO] [stderr] 99 | H5Obj::from(H5Dataset { name: dataset_name.clone(), shape: shape })); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `shape` [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/h5meta.rs:256:13 [INFO] [stderr] | [INFO] [stderr] 256 | shape: shape, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `shape` [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/h5meta.rs:265:13 [INFO] [stderr] | [INFO] [stderr] 265 | shape: shape, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `shape` [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/vgui.rs:279:20 [INFO] [stderr] | [INFO] [stderr] 279 | Pagnator { total_items: total_items, page_size: o.page_capacity(), page_current: 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_items` [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/h5meta.rs:99:85 [INFO] [stderr] | [INFO] [stderr] 99 | H5Obj::from(H5Dataset { name: dataset_name.clone(), shape: shape })); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `shape` [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/h5meta.rs:256:13 [INFO] [stderr] | [INFO] [stderr] 256 | shape: shape, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `shape` [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/h5meta.rs:265:13 [INFO] [stderr] | [INFO] [stderr] 265 | shape: shape, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `shape` [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/vgui.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | return sprite; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `sprite` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vgui.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | return menu; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `menu` [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/vgui.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | return sprite; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `sprite` [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/vgui.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | return sprite; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `sprite` [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/vgui.rs:253:9 [INFO] [stderr] | [INFO] [stderr] 253 | return image; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `image` [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/vgui.rs:267:9 [INFO] [stderr] | [INFO] [stderr] 267 | return sprite; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `sprite` [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/h5slice.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | return Some(buffer_out); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(buffer_out)` [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/h5slice.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | return uri; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `uri` [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/main.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | 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/vgui.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | return sprite; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `sprite` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vgui.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | return menu; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `menu` [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/vgui.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | return sprite; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `sprite` [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/vgui.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | return sprite; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `sprite` [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/vgui.rs:253:9 [INFO] [stderr] | [INFO] [stderr] 253 | return image; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `image` [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/vgui.rs:267:9 [INFO] [stderr] | [INFO] [stderr] 267 | return sprite; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `sprite` [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/h5slice.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | return Some(buffer_out); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(buffer_out)` [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/h5slice.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | return uri; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `uri` [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/main.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | 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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vgui.rs:68:34 [INFO] [stderr] | [INFO] [stderr] 68 | sprite.set_position(0.0, (HEIGHT * (self.offset as u32)) as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(HEIGHT * (self.offset as u32))` [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/vgui.rs:82:25 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn new(entries: &Vec, font: VGUIFont) -> Menu { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vgui.rs:100:21 [INFO] [stderr] | [INFO] [stderr] 100 | let new_y = (ENTRY_HEIGHT * (self.cursor as u32)) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(ENTRY_HEIGHT * (self.cursor as u32))` [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: length comparison to zero [INFO] [stderr] --> src/vgui.rs:106:12 [INFO] [stderr] | [INFO] [stderr] 106 | if self.entries.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.entries.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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/vgui.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | let ref fname_font = assets.join(fname); [INFO] [stderr] | ----^^^^^^^^^^^^^^---------------------- help: try: `let fname_font = &assets.join(fname);` [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: use of `expect` followed by a function call [INFO] [stderr] --> src/vgui.rs:139:47 [INFO] [stderr] | [INFO] [stderr] 139 | let mut fin_font = File::open(fname_font).expect(&format!("Cannot find font: {}", fname)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Cannot find font: {}", fname))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vgui.rs:185:23 [INFO] [stderr] | [INFO] [stderr] 185 | (col as f64 * (self.item_size.1 + self.spacing) as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.item_size.1 + self.spacing)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vgui.rs:186:23 [INFO] [stderr] | [INFO] [stderr] 186 | row as f64 * (self.item_size.0 + self.spacing) as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.item_size.0 + self.spacing)` [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/vgui.rs:212:9 [INFO] [stderr] | [INFO] [stderr] 212 | / let mut sprite; [INFO] [stderr] 213 | | if cfg!(debug_assertions) { [INFO] [stderr] 214 | | imageproc::drawing::draw_hollow_rect_mut(&mut image, Rect::at(0, 0).of_size(width, height), Rgba([0u8, 0u8, 255u8, 255u8])); [INFO] [stderr] 215 | | sprite = sprite_from_image(&image, factory); [INFO] [stderr] ... | [INFO] [stderr] 218 | | sprite = Sprite::from_texture(Rc::new(Texture::empty(factory).unwrap())); [INFO] [stderr] 219 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let sprite = if cfg!(debug_assertions) { ..; sprite_from_image(&image, factory) } else { Sprite::from_texture(Rc::new(Texture::empty(factory).unwrap())) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [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: use of `expect` followed by a function call [INFO] [stderr] --> src/h5meta.rs:34:51 [INFO] [stderr] | [INFO] [stderr] 34 | self.children.get_mut(group_name).expect(&format!("Group \"{}\" doesn't exist.", group_name)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("Group \"{}\" doesn't exist.", group_name))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [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/h5meta.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | / match m { [INFO] [stderr] 50 | | Some(captures) => { [INFO] [stderr] 51 | | match &captures["type"] { [INFO] [stderr] 52 | | "Group" => { [INFO] [stderr] ... | [INFO] [stderr] 104 | | None => () [INFO] [stderr] 105 | | }; [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] 49 | if let Some(captures) = m { [INFO] [stderr] 50 | match &captures["type"] { [INFO] [stderr] 51 | "Group" => { [INFO] [stderr] 52 | let full_name = &captures["name"]; [INFO] [stderr] 53 | if full_name != "/" { [INFO] [stderr] 54 | if cfg!(debug_assertions) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/h5meta.rs:143:21 [INFO] [stderr] | [INFO] [stderr] 143 | fn to_group_mut(&mut self) -> &mut H5Group { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/h5meta.rs:175:58 [INFO] [stderr] | [INFO] [stderr] 175 | self.to_group().children.get(group_name).expect(&format!("Group \"{}\" doesn't exist.", group_name)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("Group \"{}\" doesn't exist.", group_name))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5meta.rs:236:43 [INFO] [stderr] | [INFO] [stderr] 236 | pub fn resolution_single_image(shape: &Shape) -> Option { [INFO] [stderr] | ^^^^^^ [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5meta.rs:245:43 [INFO] [stderr] | [INFO] [stderr] 245 | pub fn resolution_batch_images(shape: &Shape) -> Option { [INFO] [stderr] | ^^^^^^ [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5meta.rs:254:26 [INFO] [stderr] | [INFO] [stderr] 254 | pub fn single(shape: &'a Shape) -> H5DatasetFormat<'a> { [INFO] [stderr] | ^^^^^^^^^ [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5meta.rs:263:25 [INFO] [stderr] | [INFO] [stderr] 263 | pub fn batch(shape: &'a Shape) -> H5DatasetFormat<'a> { [INFO] [stderr] | ^^^^^^^^^ [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5meta.rs:272:35 [INFO] [stderr] | [INFO] [stderr] 272 | pub fn shape_to_format(shape: &Shape) -> String { [INFO] [stderr] | ^^^^^^ [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5meta.rs:290:35 [INFO] [stderr] | [INFO] [stderr] 290 | pub fn shape_to_string(shape: &Shape) -> String { [INFO] [stderr] | ^^^^^^ [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5slice.rs:100:28 [INFO] [stderr] | [INFO] [stderr] 100 | fn deserialize(buffer: &Vec, resolution: &(u32, u32), im_offset: isize) -> Option { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/h5slice.rs:100:50 [INFO] [stderr] | [INFO] [stderr] 100 | fn deserialize(buffer: &Vec, resolution: &(u32, u32), im_offset: isize) -> Option { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `(u32, u32)` [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] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const f32`) [INFO] [stderr] --> src/h5slice.rs:103:24 [INFO] [stderr] | [INFO] [stderr] 103 | let base = buffer.as_ptr() as *const f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/h5slice.rs:108:18 [INFO] [stderr] | [INFO] [stderr] 108 | data.into_iter().map(|x| { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_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] --> src/h5slice.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | / match uri.query { [INFO] [stderr] 147 | | Query::One(idx) => { [INFO] [stderr] 148 | | // ? check overlap? [INFO] [stderr] 149 | | uri.query = Query::Batch(idx, self.hint); [INFO] [stderr] 150 | | }, [INFO] [stderr] 151 | | _ => {} [INFO] [stderr] 152 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 146 | if let Query::One(idx) = uri.query { [INFO] [stderr] 147 | // ? check overlap? [INFO] [stderr] 148 | uri.query = Query::Batch(idx, self.hint); [INFO] [stderr] 149 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | let ref mut group_entries: Vec = group.children.keys().cloned().collect(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^--------------------------------------------------------- help: try: `let group_entries: &mut Vec = &mut group.children.keys().cloned().collect();` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | let ref mut menu_entries = [INFO] [stderr] | _________- ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 43 | | if group.name == "/" { Vec::new() } else { vec![String::from("..")] }; [INFO] [stderr] | |__________________________________________________________________________________- help: try: `let menu_entries = &mut (if group.name == "/" { Vec::new() } else { vec![String::from("..")] });` [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: identical conversion [INFO] [stderr] --> src/main.rs:49:34 [INFO] [stderr] | [INFO] [stderr] 49 | entry.tag = Some(String::from(dataset.format())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `dataset.format()` [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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `piston-gui`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vgui.rs:68:34 [INFO] [stderr] | [INFO] [stderr] 68 | sprite.set_position(0.0, (HEIGHT * (self.offset as u32)) as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(HEIGHT * (self.offset as u32))` [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/vgui.rs:82:25 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn new(entries: &Vec, font: VGUIFont) -> Menu { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vgui.rs:100:21 [INFO] [stderr] | [INFO] [stderr] 100 | let new_y = (ENTRY_HEIGHT * (self.cursor as u32)) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(ENTRY_HEIGHT * (self.cursor as u32))` [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: length comparison to zero [INFO] [stderr] --> src/vgui.rs:106:12 [INFO] [stderr] | [INFO] [stderr] 106 | if self.entries.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.entries.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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/vgui.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | let ref fname_font = assets.join(fname); [INFO] [stderr] | ----^^^^^^^^^^^^^^---------------------- help: try: `let fname_font = &assets.join(fname);` [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: use of `expect` followed by a function call [INFO] [stderr] --> src/vgui.rs:139:47 [INFO] [stderr] | [INFO] [stderr] 139 | let mut fin_font = File::open(fname_font).expect(&format!("Cannot find font: {}", fname)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Cannot find font: {}", fname))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vgui.rs:185:23 [INFO] [stderr] | [INFO] [stderr] 185 | (col as f64 * (self.item_size.1 + self.spacing) as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.item_size.1 + self.spacing)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vgui.rs:186:23 [INFO] [stderr] | [INFO] [stderr] 186 | row as f64 * (self.item_size.0 + self.spacing) as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.item_size.0 + self.spacing)` [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/vgui.rs:212:9 [INFO] [stderr] | [INFO] [stderr] 212 | / let mut sprite; [INFO] [stderr] 213 | | if cfg!(debug_assertions) { [INFO] [stderr] 214 | | imageproc::drawing::draw_hollow_rect_mut(&mut image, Rect::at(0, 0).of_size(width, height), Rgba([0u8, 0u8, 255u8, 255u8])); [INFO] [stderr] 215 | | sprite = sprite_from_image(&image, factory); [INFO] [stderr] ... | [INFO] [stderr] 218 | | sprite = Sprite::from_texture(Rc::new(Texture::empty(factory).unwrap())); [INFO] [stderr] 219 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let sprite = if cfg!(debug_assertions) { ..; sprite_from_image(&image, factory) } else { Sprite::from_texture(Rc::new(Texture::empty(factory).unwrap())) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [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: use of `expect` followed by a function call [INFO] [stderr] --> src/h5meta.rs:34:51 [INFO] [stderr] | [INFO] [stderr] 34 | self.children.get_mut(group_name).expect(&format!("Group \"{}\" doesn't exist.", group_name)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("Group \"{}\" doesn't exist.", group_name))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [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/h5meta.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | / match m { [INFO] [stderr] 50 | | Some(captures) => { [INFO] [stderr] 51 | | match &captures["type"] { [INFO] [stderr] 52 | | "Group" => { [INFO] [stderr] ... | [INFO] [stderr] 104 | | None => () [INFO] [stderr] 105 | | }; [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] 49 | if let Some(captures) = m { [INFO] [stderr] 50 | match &captures["type"] { [INFO] [stderr] 51 | "Group" => { [INFO] [stderr] 52 | let full_name = &captures["name"]; [INFO] [stderr] 53 | if full_name != "/" { [INFO] [stderr] 54 | if cfg!(debug_assertions) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/h5meta.rs:143:21 [INFO] [stderr] | [INFO] [stderr] 143 | fn to_group_mut(&mut self) -> &mut H5Group { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/h5meta.rs:175:58 [INFO] [stderr] | [INFO] [stderr] 175 | self.to_group().children.get(group_name).expect(&format!("Group \"{}\" doesn't exist.", group_name)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("Group \"{}\" doesn't exist.", group_name))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5meta.rs:236:43 [INFO] [stderr] | [INFO] [stderr] 236 | pub fn resolution_single_image(shape: &Shape) -> Option { [INFO] [stderr] | ^^^^^^ [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5meta.rs:245:43 [INFO] [stderr] | [INFO] [stderr] 245 | pub fn resolution_batch_images(shape: &Shape) -> Option { [INFO] [stderr] | ^^^^^^ [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5meta.rs:254:26 [INFO] [stderr] | [INFO] [stderr] 254 | pub fn single(shape: &'a Shape) -> H5DatasetFormat<'a> { [INFO] [stderr] | ^^^^^^^^^ [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5meta.rs:263:25 [INFO] [stderr] | [INFO] [stderr] 263 | pub fn batch(shape: &'a Shape) -> H5DatasetFormat<'a> { [INFO] [stderr] | ^^^^^^^^^ [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5meta.rs:272:35 [INFO] [stderr] | [INFO] [stderr] 272 | pub fn shape_to_format(shape: &Shape) -> String { [INFO] [stderr] | ^^^^^^ [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5meta.rs:290:35 [INFO] [stderr] | [INFO] [stderr] 290 | pub fn shape_to_string(shape: &Shape) -> String { [INFO] [stderr] | ^^^^^^ [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 `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/h5slice.rs:100:28 [INFO] [stderr] | [INFO] [stderr] 100 | fn deserialize(buffer: &Vec, resolution: &(u32, u32), im_offset: isize) -> Option { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/h5slice.rs:100:50 [INFO] [stderr] | [INFO] [stderr] 100 | fn deserialize(buffer: &Vec, resolution: &(u32, u32), im_offset: isize) -> Option { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `(u32, u32)` [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] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const f32`) [INFO] [stderr] --> src/h5slice.rs:103:24 [INFO] [stderr] | [INFO] [stderr] 103 | let base = buffer.as_ptr() as *const f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/h5slice.rs:108:18 [INFO] [stderr] | [INFO] [stderr] 108 | data.into_iter().map(|x| { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_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] --> src/h5slice.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | / match uri.query { [INFO] [stderr] 147 | | Query::One(idx) => { [INFO] [stderr] 148 | | // ? check overlap? [INFO] [stderr] 149 | | uri.query = Query::Batch(idx, self.hint); [INFO] [stderr] 150 | | }, [INFO] [stderr] 151 | | _ => {} [INFO] [stderr] 152 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 146 | if let Query::One(idx) = uri.query { [INFO] [stderr] 147 | // ? check overlap? [INFO] [stderr] 148 | uri.query = Query::Batch(idx, self.hint); [INFO] [stderr] 149 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | let ref mut group_entries: Vec = group.children.keys().cloned().collect(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^--------------------------------------------------------- help: try: `let group_entries: &mut Vec = &mut group.children.keys().cloned().collect();` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | let ref mut menu_entries = [INFO] [stderr] | _________- ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 43 | | if group.name == "/" { Vec::new() } else { vec![String::from("..")] }; [INFO] [stderr] | |__________________________________________________________________________________- help: try: `let menu_entries = &mut (if group.name == "/" { Vec::new() } else { vec![String::from("..")] });` [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: identical conversion [INFO] [stderr] --> src/main.rs:49:34 [INFO] [stderr] | [INFO] [stderr] 49 | entry.tag = Some(String::from(dataset.format())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `dataset.format()` [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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `piston-gui`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "97a7ece85fb810545f9adba82b09f12571cf2cc86835ef2720eebca33fd65141"` [INFO] running `"docker" "rm" "-f" "97a7ece85fb810545f9adba82b09f12571cf2cc86835ef2720eebca33fd65141"` [INFO] [stdout] 97a7ece85fb810545f9adba82b09f12571cf2cc86835ef2720eebca33fd65141