[INFO] fetching crate microui 0.2.5... [INFO] linting microui-0.2.5 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate microui 0.2.5 into /workspace/builds/worker-7-tc1/source [INFO] started tweaking crates.io crate microui 0.2.5 [INFO] finished tweaking crates.io crate microui 0.2.5 [INFO] tweaked toml for crates.io crate microui 0.2.5 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate microui 0.2.5 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate microui 0.2.5 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded version-compare v0.1.1 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.89 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.89 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.89 [INFO] [stderr] Downloaded wasm-bindgen-backend v0.2.89 [INFO] [stderr] Downloaded proc-macro2 v1.0.71 [INFO] [stderr] Downloaded js-sys v0.3.66 [INFO] [stderr] Downloaded glow v0.13.0 [INFO] [stderr] Downloaded wasm-bindgen v0.2.89 [INFO] [stderr] Downloaded sdl2 v0.36.0 [INFO] [stderr] Downloaded syn v2.0.42 [INFO] [stderr] Downloaded libc v0.2.151 [INFO] [stderr] Downloaded web-sys v0.3.66 [INFO] [stderr] Downloaded sdl2-sys v0.36.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c0f9bb867261325a43d78b6c02b8b25bbdcc3588fd34c3328eb12fde15fd474d [INFO] running `Command { std: "docker" "start" "-a" "c0f9bb867261325a43d78b6c02b8b25bbdcc3588fd34c3328eb12fde15fd474d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c0f9bb867261325a43d78b6c02b8b25bbdcc3588fd34c3328eb12fde15fd474d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c0f9bb867261325a43d78b6c02b8b25bbdcc3588fd34c3328eb12fde15fd474d", kill_on_drop: false }` [INFO] [stdout] c0f9bb867261325a43d78b6c02b8b25bbdcc3588fd34c3328eb12fde15fd474d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a65e7b22d4d323e7c0ea18b85592c01a1946a709f7b7fd44cf027899deff3410 [INFO] running `Command { std: "docker" "start" "-a" "a65e7b22d4d323e7c0ea18b85592c01a1946a709f7b7fd44cf027899deff3410", kill_on_drop: false }` [INFO] [stderr] Compiling version-compare v0.1.1 [INFO] [stderr] Compiling libc v0.2.151 [INFO] [stderr] Compiling sdl2 v0.36.0 [INFO] [stderr] Checking bitflags v2.4.1 [INFO] [stderr] Checking glow v0.13.0 [INFO] [stderr] Checking microui v0.2.5 (/opt/rustwide/workdir) [INFO] [stderr] Compiling sdl2-sys v0.36.0 [INFO] [stdout] warning: value assigned to `tr` is never read [INFO] [stdout] --> src/lib.rs:1623:17 [INFO] [stdout] | [INFO] [stdout] 1623 | tr.w -= r.w; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `IVec` has a `len` method but no (possibly inherited) `is_empty` method [INFO] [stdout] --> src/fixed_collections.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | / pub trait IVec { [INFO] [stdout] 35 | | fn push(&mut self, t: T) -> (&mut T, usize); [INFO] [stdout] 36 | | fn pop(&mut self); [INFO] [stdout] ... | [INFO] [stdout] 58 | | fn reverse(&mut self); [INFO] [stdout] 59 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `T` which implements the `Copy` trait [INFO] [stdout] --> src/fixed_collections.rs:54:23 [INFO] [stdout] | [INFO] [stdout] 54 | self.push(e.clone()); [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:97:36 [INFO] [stdout] | [INFO] [stdout] 97 | arr.swap(store_index as usize, pivot as usize); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `pivot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | assert!((index as usize) < self.idx); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:160:17 [INFO] [stdout] | [INFO] [stdout] 160 | assert!((index as usize) < N); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:161:21 [INFO] [stdout] | [INFO] [stdout] 161 | &self.items[index as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:165:17 [INFO] [stdout] | [INFO] [stdout] 165 | assert!((index as usize) < self.idx); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:166:17 [INFO] [stdout] | [INFO] [stdout] 166 | assert!((index as usize) < N); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:167:25 [INFO] [stdout] | [INFO] [stdout] 167 | &mut self.items[index as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping elements of `self.items` manually [INFO] [stdout] --> src/fixed_collections.rs:173:13 [INFO] [stdout] | [INFO] [stdout] 173 | / let tmp = self.items[i]; [INFO] [stdout] 174 | | self.items[i] = self.items[len - 1 - i]; [INFO] [stdout] 175 | | self.items[len - 1 - i] = tmp; [INFO] [stdout] | |__________________________________________^ help: try: `self.items.swap(i, len - 1 - i);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:183:18 [INFO] [stdout] | [INFO] [stdout] 183 | self.get(index as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:189:22 [INFO] [stdout] | [INFO] [stdout] 189 | self.get_mut(index as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:202:18 [INFO] [stdout] | [INFO] [stdout] 202 | self.get(index as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:208:22 [INFO] [stdout] | [INFO] [stdout] 208 | self.get_mut(index as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `IString` has a `len` method but no (possibly inherited) `is_empty` method [INFO] [stdout] --> src/fixed_collections.rs:230:1 [INFO] [stdout] | [INFO] [stdout] 230 | / pub trait IString { [INFO] [stdout] 231 | | fn push(&mut self, c: char); [INFO] [stdout] 232 | | fn pop(&mut self); [INFO] [stdout] 233 | | fn as_str(&self) -> &str; [INFO] [stdout] ... | [INFO] [stdout] 322 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual backwards iteration [INFO] [stdout] --> src/fixed_collections.rs:347:30 [INFO] [stdout] | [INFO] [stdout] 347 | let ch = self.chars().rev().next().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: use: `.next_back()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_next_back [INFO] [stdout] = note: `#[warn(clippy::manual_next_back)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:424:22 [INFO] [stdout] | [INFO] [stdout] 424 | self.vec.get(index as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/fixed_collections.rs:444:1 [INFO] [stdout] | [INFO] [stdout] 444 | pub fn parse_decimal(s: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] = note: `#[warn(clippy::result_unit_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | return res.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 86 - return res.unwrap(); [INFO] [stdout] 86 + res.unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Iterator::find` [INFO] [stdout] --> src/lib.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | / for i in 0..N { [INFO] [stdout] 91 | | if self.vec[i].id == id { [INFO] [stdout] 92 | | return Some(i); [INFO] [stdout] ... | [INFO] [stdout] 95 | | None [INFO] [stdout] | |____________^ help: replace with an iterator: `(0..N).find(|&i| self.vec[i].id == id)` [INFO] [stdout] | [INFO] [stdout] = note: you may need to dereference some variables [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] = note: `#[warn(clippy::manual_find)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/lib.rs:477:1 [INFO] [stdout] | [INFO] [stdout] 477 | / impl Default for Command { [INFO] [stdout] 478 | | fn default() -> Self { [INFO] [stdout] 479 | | Command::None [INFO] [stdout] 480 | | } [INFO] [stdout] 481 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 451 + #[derive(Default)] [INFO] [stdout] 452 | pub enum Command { [INFO] [stdout] 453 | Jump { [INFO] [stdout] ... [INFO] [stdout] 474 | }, [INFO] [stdout] 475 ~ #[default] [INFO] [stdout] 476 ~ None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/lib.rs:524:1 [INFO] [stdout] | [INFO] [stdout] 524 | / impl Default for LayoutPosition { [INFO] [stdout] 525 | | fn default() -> Self { [INFO] [stdout] 526 | | LayoutPosition::None [INFO] [stdout] 527 | | } [INFO] [stdout] 528 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 518 + #[derive(Default)] [INFO] [stdout] 519 | pub enum LayoutPosition { [INFO] [stdout] 520 | Absolute = 2, [INFO] [stdout] 521 | Relative = 1, [INFO] [stdout] 522 ~ #[default] [INFO] [stdout] 523 ~ None = 0, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:590:5 [INFO] [stdout] | [INFO] [stdout] 590 | return rect(x1, y1, x2 - x1, y2 - y1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 590 - return rect(x1, y1, x2 - x1, y2 - y1); [INFO] [stdout] 590 + rect(x1, y1, x2 - x1, y2 - y1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u32` is unnecessary [INFO] [stdout] --> src/lib.rs:608:26 [INFO] [stdout] | [INFO] [stdout] 608 | (h ^ n).wrapping_mul(16777619 as u32) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `16777619_u32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/lib.rs:633:9 [INFO] [stdout] | [INFO] [stdout] 633 | s.draw_frame = Some(draw_frame as fn(&mut Context, Rect, ControlColor) -> ()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `Context { draw_frame: Some(draw_frame as fn(&mut Context, Rect, ControlColor) -> ()), style: Style::default(), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/lib.rs:632:9 [INFO] [stdout] | [INFO] [stdout] 632 | let mut s = Self::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:656:12 [INFO] [stdout] | [INFO] [stdout] 656 | if !self.scroll_target.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.scroll_target.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:665:16 [INFO] [stdout] | [INFO] [stdout] 665 | && !self.next_hover_root.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.next_hover_root.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.scroll_target` after checking its variant with `is_none` [INFO] [stdout] --> src/lib.rs:657:29 [INFO] [stdout] | [INFO] [stdout] 656 | if !self.scroll_target.is_none() { [INFO] [stdout] | ---------------------------- the check is happening here [INFO] [stdout] 657 | self.containers[self.scroll_target.unwrap()].scroll.x += self.scroll_delta.x; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.scroll_target` after checking its variant with `is_none` [INFO] [stdout] --> src/lib.rs:658:29 [INFO] [stdout] | [INFO] [stdout] 656 | if !self.scroll_target.is_none() { [INFO] [stdout] | ---------------------------- the check is happening here [INFO] [stdout] 657 | self.containers[self.scroll_target.unwrap()].scroll.x += self.scroll_delta.x; [INFO] [stdout] 658 | self.containers[self.scroll_target.unwrap()].scroll.y += self.scroll_delta.y; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/lib.rs:688:25 [INFO] [stdout] | [INFO] [stdout] 688 | assert!(match cmd { [INFO] [stdout] | _________________________^ [INFO] [stdout] 689 | | Command::Jump { .. } => true, [INFO] [stdout] 690 | | _ => false, [INFO] [stdout] 691 | | }); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 688 - assert!(match cmd { [INFO] [stdout] 689 - Command::Jump { .. } => true, [INFO] [stdout] 690 - _ => false, [INFO] [stdout] 691 - }); [INFO] [stdout] 688 + assert!(matches!(cmd, Command::Jump { .. })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:692:62 [INFO] [stdout] | [INFO] [stdout] 692 | let dst_idx = self.containers[self.root_list[i as usize]].head_idx.unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:698:66 [INFO] [stdout] | [INFO] [stdout] 698 | dst_idx: Some(self.containers[self.root_list[i as usize]].head_idx.unwrap() + 1), [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:702:56 [INFO] [stdout] | [INFO] [stdout] 702 | assert!(self.containers[self.root_list[i as usize]].tail_idx.unwrap() < self.command_list.len()); [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/lib.rs:703:25 [INFO] [stdout] | [INFO] [stdout] 703 | assert!(match self.command_list[self.containers[self.root_list[i as usize]].tail_idx.unwrap()] { [INFO] [stdout] | _________________________^ [INFO] [stdout] 704 | | Command::Jump { .. } => true, [INFO] [stdout] 705 | | _ => false, [INFO] [stdout] 706 | | }); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 703 - assert!(match self.command_list[self.containers[self.root_list[i as usize]].tail_idx.unwrap()] { [INFO] [stdout] 704 - Command::Jump { .. } => true, [INFO] [stdout] 705 - _ => false, [INFO] [stdout] 706 - }); [INFO] [stdout] 703 + assert!(matches!(self.command_list[self.containers[self.root_list[i as usize]].tail_idx.unwrap()], Command::Jump { .. })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:703:80 [INFO] [stdout] | [INFO] [stdout] 703 | assert!(match self.command_list[self.containers[self.root_list[i as usize]].tail_idx.unwrap()] { [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:707:66 [INFO] [stdout] | [INFO] [stdout] 707 | ... self.command_list[self.containers[self.root_list[i as usize]].tail_idx.unwrap()] = Command::Jump { dst_idx: Some(self.command... [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:725:9 [INFO] [stdout] | [INFO] [stdout] 725 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 725 - return res; [INFO] [stdout] 725 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:737:9 [INFO] [stdout] | [INFO] [stdout] 737 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 737 - return res; [INFO] [stdout] 737 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:747:9 [INFO] [stdout] | [INFO] [stdout] 747 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 747 - return res; [INFO] [stdout] 747 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:785:9 [INFO] [stdout] | [INFO] [stdout] 785 | return Clip::Part; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 785 - return Clip::Part; [INFO] [stdout] 785 + Clip::Part [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:809:9 [INFO] [stdout] | [INFO] [stdout] 809 | return self.layout_stack.top().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 809 - return self.layout_stack.top().unwrap(); [INFO] [stdout] 809 + self.layout_stack.top().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:813:9 [INFO] [stdout] | [INFO] [stdout] 813 | return self.layout_stack.top_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 813 - return self.layout_stack.top_mut().unwrap(); [INFO] [stdout] 813 + self.layout_stack.top_mut().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `idx` after checking its variant with `is_some` [INFO] [stdout] --> src/lib.rs:858:32 [INFO] [stdout] | [INFO] [stdout] 857 | if idx.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = idx` [INFO] [stdout] 858 | if self.containers[idx.unwrap()].open || !opt.is_closed() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `idx` after checking its variant with `is_some` [INFO] [stdout] --> src/lib.rs:859:44 [INFO] [stdout] | [INFO] [stdout] 857 | if idx.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = idx` [INFO] [stdout] 858 | if self.containers[idx.unwrap()].open || !opt.is_closed() { [INFO] [stdout] 859 | self.container_pool.update(idx.unwrap(), self.frame); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:927:9 [INFO] [stdout] | [INFO] [stdout] 927 | return str_start; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 927 - return str_start; [INFO] [stdout] 927 + str_start [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Layout` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:1017:17 [INFO] [stdout] | [INFO] [stdout] 1017 | let b = self.get_layout().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.get_layout()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/lib.rs:1038:9 [INFO] [stdout] | [INFO] [stdout] 1038 | / for i in 0..widths.len() { [INFO] [stdout] 1039 | | layout.widths[i] = widths[i]; [INFO] [stdout] 1040 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `layout.widths[..widths.len()].copy_from_slice(&widths[..]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] = note: `#[warn(clippy::manual_memcpy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1118:9 [INFO] [stdout] | [INFO] [stdout] 1118 | return self.last_rect; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1118 - return self.last_rect; [INFO] [stdout] 1118 + self.last_rect [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:1081:33 [INFO] [stdout] | [INFO] [stdout] 1081 | undefined_widths[0..litems as usize].copy_from_slice(&layout.widths[0..litems as usize]); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `litems` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:1081:84 [INFO] [stdout] | [INFO] [stdout] 1081 | undefined_widths[0..litems as usize].copy_from_slice(&layout.widths[0..litems as usize]); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `litems` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:1083:74 [INFO] [stdout] | [INFO] [stdout] 1083 | Self::layout_row_for_layout(layout, &undefined_widths[0..litems as usize], lsize_y); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `litems` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:1088:31 [INFO] [stdout] | [INFO] [stdout] 1088 | layout.widths[layout.item_index as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `layout.item_index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1271:9 [INFO] [stdout] | [INFO] [stdout] 1271 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1271 - return res; [INFO] [stdout] 1271 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:1254:25 [INFO] [stdout] | [INFO] [stdout] 1254 | let id: Id = if label.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!label.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:1265:12 [INFO] [stdout] | [INFO] [stdout] 1265 | if label.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!label.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1290:9 [INFO] [stdout] | [INFO] [stdout] 1290 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1290 - return res; [INFO] [stdout] 1290 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/lib.rs:1282:22 [INFO] [stdout] | [INFO] [stdout] 1282 | *state = *state == false; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `!*state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1331:9 [INFO] [stdout] | [INFO] [stdout] 1331 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1331 - return res; [INFO] [stdout] 1331 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:1301:24 [INFO] [stdout] | [INFO] [stdout] 1301 | len += self.input_text.len() as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.input_text.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1358:9 [INFO] [stdout] | [INFO] [stdout] 1358 | return ResourceState::NONE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1358 - return ResourceState::NONE; [INFO] [stdout] 1358 + ResourceState::NONE [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:1346:17 [INFO] [stdout] | [INFO] [stdout] 1346 | / match parse_decimal(self.number_edit_buf.as_str()) { [INFO] [stdout] 1347 | | Ok(v) => { [INFO] [stdout] 1348 | | *value = v as Real; [INFO] [stdout] 1349 | | self.number_edit = None; [INFO] [stdout] 1350 | | } [INFO] [stdout] 1351 | | _ => (), [INFO] [stdout] 1352 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1346 ~ if let Ok(v) = parse_decimal(self.number_edit_buf.as_str()) { [INFO] [stdout] 1347 + *value = v as Real; [INFO] [stdout] 1348 + self.number_edit = None; [INFO] [stdout] 1349 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1364:9 [INFO] [stdout] | [INFO] [stdout] 1364 | return self.textbox_raw(buf, id, r, opt); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1364 - return self.textbox_raw(buf, id, r, opt); [INFO] [stdout] 1364 + self.textbox_raw(buf, id, r, opt) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1402:9 [INFO] [stdout] | [INFO] [stdout] 1402 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1402 - return res; [INFO] [stdout] 1402 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1424:9 [INFO] [stdout] | [INFO] [stdout] 1424 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1424 - return res; [INFO] [stdout] 1424 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `idx` after checking its variant with `is_some` [INFO] [stdout] --> src/lib.rs:1438:43 [INFO] [stdout] | [INFO] [stdout] 1436 | if idx.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = idx` [INFO] [stdout] 1437 | if active != 0 { [INFO] [stdout] 1438 | self.treenode_pool.update(idx.unwrap(), self.frame); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `idx` after checking its variant with `is_some` [INFO] [stdout] --> src/lib.rs:1440:42 [INFO] [stdout] | [INFO] [stdout] 1436 | if idx.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = idx` [INFO] [stdout] ... [INFO] [stdout] 1440 | self.treenode_pool.reset(idx.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1461:9 [INFO] [stdout] | [INFO] [stdout] 1461 | return if expanded != 0 { ResourceState::ACTIVE } else { ResourceState::NONE }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1461 - return if expanded != 0 { ResourceState::ACTIVE } else { ResourceState::NONE }; [INFO] [stdout] 1461 + if expanded != 0 { ResourceState::ACTIVE } else { ResourceState::NONE } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1465:9 [INFO] [stdout] | [INFO] [stdout] 1465 | return self.header(label, false, opt); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1465 - return self.header(label, false, opt); [INFO] [stdout] 1465 + self.header(label, false, opt) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1474:9 [INFO] [stdout] | [INFO] [stdout] 1474 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1474 - return res; [INFO] [stdout] 1474 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:1491:29 [INFO] [stdout] | [INFO] [stdout] 1491 | self.push_clip_rect(body.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*body` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1660:9 [INFO] [stdout] | [INFO] [stdout] 1660 | return ResourceState::ACTIVE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1660 - return ResourceState::ACTIVE; [INFO] [stdout] 1660 + ResourceState::ACTIVE [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1680:9 [INFO] [stdout] | [INFO] [stdout] 1680 | return self.begin_window_ex(name, rect(0, 0, 0, 0), opt); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1680 - return self.begin_window_ex(name, rect(0, 0, 0, 0), opt); [INFO] [stdout] 1680 + self.begin_window_ex(name, rect(0, 0, 0, 0), opt) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_char_width` and `get_font_height` are never used [INFO] [stdout] --> examples/demo-sdl2/renderer/mod.rs:365:12 [INFO] [stdout] | [INFO] [stdout] 123 | impl Renderer { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 365 | pub fn get_char_width(&self, _font: FontId, c: char) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 369 | pub fn get_font_height(&self, _font: FontId) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> examples/demo-sdl2/renderer/mod.rs:174:22 [INFO] [stdout] | [INFO] [stdout] 174 | Some(&atlas_texture), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `atlas_texture` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> examples/demo-sdl2/renderer/mod.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 202 | if self.verts.len() == 0 || self.indices.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.verts.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> examples/demo-sdl2/renderer/mod.rs:202:37 [INFO] [stdout] | [INFO] [stdout] 202 | if self.verts.len() == 0 || self.indices.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.indices.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> examples/demo-sdl2/renderer/mod.rs:227:31 [INFO] [stdout] | [INFO] [stdout] 227 | gl.active_texture(glow::TEXTURE0 + 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `glow::TEXTURE0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> examples/demo-sdl2/renderer/mod.rs:287:27 [INFO] [stdout] | [INFO] [stdout] 287 | self.indices.push(is + 0); [INFO] [stdout] | ^^^^^^ help: consider reducing it to: `is` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> examples/demo-sdl2/renderer/mod.rs:292:27 [INFO] [stdout] | [INFO] [stdout] 292 | self.indices.push(is + 0); [INFO] [stdout] | ^^^^^^ help: consider reducing it to: `is` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Vertex` which implements the `Copy` trait [INFO] [stdout] --> examples/demo-sdl2/renderer/mod.rs:294:25 [INFO] [stdout] | [INFO] [stdout] 294 | self.verts.push(v0.clone()); [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*v0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Vertex` which implements the `Copy` trait [INFO] [stdout] --> examples/demo-sdl2/renderer/mod.rs:295:25 [INFO] [stdout] | [INFO] [stdout] 295 | self.verts.push(v1.clone()); [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*v1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Vertex` which implements the `Copy` trait [INFO] [stdout] --> examples/demo-sdl2/renderer/mod.rs:296:25 [INFO] [stdout] | [INFO] [stdout] 296 | self.verts.push(v2.clone()); [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*v2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Vertex` which implements the `Copy` trait [INFO] [stdout] --> examples/demo-sdl2/renderer/mod.rs:297:25 [INFO] [stdout] | [INFO] [stdout] 297 | self.verts.push(v3.clone()); [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*v3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> examples/demo-sdl2/main.rs:290:9 [INFO] [stdout] | [INFO] [stdout] 290 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 290 - return res; [INFO] [stdout] 290 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> examples/demo-sdl2/main.rs:297:19 [INFO] [stdout] | [INFO] [stdout] 297 | while self.label_colors[i].label.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.label_colors[i].label.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stdout] --> examples/demo-sdl2/main.rs:300:33 [INFO] [stdout] | [INFO] [stdout] 300 | let color = self.ctx.style.colors.as_mut_ptr().offset(i as isize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stdout] = note: `#[warn(clippy::ptr_offset_with_cast)]` on by default [INFO] [stdout] help: use `add` instead [INFO] [stdout] | [INFO] [stdout] 300 - let color = self.ctx.style.colors.as_mut_ptr().offset(i as isize); [INFO] [stdout] 300 + let color = self.ctx.style.colors.as_mut_ptr().add(i); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> examples/demo-sdl2/main.rs:411:9 [INFO] [stdout] | [INFO] [stdout] 411 | / loop { [INFO] [stdout] 412 | | match state.ctx.mu_next_command(cmd_id) { [INFO] [stdout] 413 | | Some((command, id)) => { [INFO] [stdout] 414 | | match command { [INFO] [stdout] ... | [INFO] [stdout] 434 | | } [INFO] [stdout] | |_________^ help: try: `while let Some((command, id)) = state.ctx.mu_next_command(cmd_id) { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] = note: `#[warn(clippy::while_let_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `tr` is never read [INFO] [stdout] --> src/lib.rs:1623:17 [INFO] [stdout] | [INFO] [stdout] 1623 | tr.w -= r.w; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `IVec` has a `len` method but no (possibly inherited) `is_empty` method [INFO] [stdout] --> src/fixed_collections.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | / pub trait IVec { [INFO] [stdout] 35 | | fn push(&mut self, t: T) -> (&mut T, usize); [INFO] [stdout] 36 | | fn pop(&mut self); [INFO] [stdout] ... | [INFO] [stdout] 58 | | fn reverse(&mut self); [INFO] [stdout] 59 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `T` which implements the `Copy` trait [INFO] [stdout] --> src/fixed_collections.rs:54:23 [INFO] [stdout] | [INFO] [stdout] 54 | self.push(e.clone()); [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:97:36 [INFO] [stdout] | [INFO] [stdout] 97 | arr.swap(store_index as usize, pivot as usize); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `pivot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | assert!((index as usize) < self.idx); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:160:17 [INFO] [stdout] | [INFO] [stdout] 160 | assert!((index as usize) < N); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:161:21 [INFO] [stdout] | [INFO] [stdout] 161 | &self.items[index as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:165:17 [INFO] [stdout] | [INFO] [stdout] 165 | assert!((index as usize) < self.idx); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:166:17 [INFO] [stdout] | [INFO] [stdout] 166 | assert!((index as usize) < N); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:167:25 [INFO] [stdout] | [INFO] [stdout] 167 | &mut self.items[index as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping elements of `self.items` manually [INFO] [stdout] --> src/fixed_collections.rs:173:13 [INFO] [stdout] | [INFO] [stdout] 173 | / let tmp = self.items[i]; [INFO] [stdout] 174 | | self.items[i] = self.items[len - 1 - i]; [INFO] [stdout] 175 | | self.items[len - 1 - i] = tmp; [INFO] [stdout] | |__________________________________________^ help: try: `self.items.swap(i, len - 1 - i);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:183:18 [INFO] [stdout] | [INFO] [stdout] 183 | self.get(index as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:189:22 [INFO] [stdout] | [INFO] [stdout] 189 | self.get_mut(index as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:202:18 [INFO] [stdout] | [INFO] [stdout] 202 | self.get(index as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:208:22 [INFO] [stdout] | [INFO] [stdout] 208 | self.get_mut(index as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `IString` has a `len` method but no (possibly inherited) `is_empty` method [INFO] [stdout] --> src/fixed_collections.rs:230:1 [INFO] [stdout] | [INFO] [stdout] 230 | / pub trait IString { [INFO] [stdout] 231 | | fn push(&mut self, c: char); [INFO] [stdout] 232 | | fn pop(&mut self); [INFO] [stdout] 233 | | fn as_str(&self) -> &str; [INFO] [stdout] ... | [INFO] [stdout] 322 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual backwards iteration [INFO] [stdout] --> src/fixed_collections.rs:347:30 [INFO] [stdout] | [INFO] [stdout] 347 | let ch = self.chars().rev().next().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: use: `.next_back()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_next_back [INFO] [stdout] = note: `#[warn(clippy::manual_next_back)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/fixed_collections.rs:424:22 [INFO] [stdout] | [INFO] [stdout] 424 | self.vec.get(index as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/fixed_collections.rs:444:1 [INFO] [stdout] | [INFO] [stdout] 444 | pub fn parse_decimal(s: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] = note: `#[warn(clippy::result_unit_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | return res.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 86 - return res.unwrap(); [INFO] [stdout] 86 + res.unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Iterator::find` [INFO] [stdout] --> src/lib.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | / for i in 0..N { [INFO] [stdout] 91 | | if self.vec[i].id == id { [INFO] [stdout] 92 | | return Some(i); [INFO] [stdout] ... | [INFO] [stdout] 95 | | None [INFO] [stdout] | |____________^ help: replace with an iterator: `(0..N).find(|&i| self.vec[i].id == id)` [INFO] [stdout] | [INFO] [stdout] = note: you may need to dereference some variables [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] = note: `#[warn(clippy::manual_find)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/lib.rs:477:1 [INFO] [stdout] | [INFO] [stdout] 477 | / impl Default for Command { [INFO] [stdout] 478 | | fn default() -> Self { [INFO] [stdout] 479 | | Command::None [INFO] [stdout] 480 | | } [INFO] [stdout] 481 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 451 + #[derive(Default)] [INFO] [stdout] 452 | pub enum Command { [INFO] [stdout] 453 | Jump { [INFO] [stdout] ... [INFO] [stdout] 474 | }, [INFO] [stdout] 475 ~ #[default] [INFO] [stdout] 476 ~ None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/lib.rs:524:1 [INFO] [stdout] | [INFO] [stdout] 524 | / impl Default for LayoutPosition { [INFO] [stdout] 525 | | fn default() -> Self { [INFO] [stdout] 526 | | LayoutPosition::None [INFO] [stdout] 527 | | } [INFO] [stdout] 528 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 518 + #[derive(Default)] [INFO] [stdout] 519 | pub enum LayoutPosition { [INFO] [stdout] 520 | Absolute = 2, [INFO] [stdout] 521 | Relative = 1, [INFO] [stdout] 522 ~ #[default] [INFO] [stdout] 523 ~ None = 0, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:590:5 [INFO] [stdout] | [INFO] [stdout] 590 | return rect(x1, y1, x2 - x1, y2 - y1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 590 - return rect(x1, y1, x2 - x1, y2 - y1); [INFO] [stdout] 590 + rect(x1, y1, x2 - x1, y2 - y1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u32` is unnecessary [INFO] [stdout] --> src/lib.rs:608:26 [INFO] [stdout] | [INFO] [stdout] 608 | (h ^ n).wrapping_mul(16777619 as u32) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `16777619_u32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/lib.rs:633:9 [INFO] [stdout] | [INFO] [stdout] 633 | s.draw_frame = Some(draw_frame as fn(&mut Context, Rect, ControlColor) -> ()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `Context { draw_frame: Some(draw_frame as fn(&mut Context, Rect, ControlColor) -> ()), style: Style::default(), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/lib.rs:632:9 [INFO] [stdout] | [INFO] [stdout] 632 | let mut s = Self::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:656:12 [INFO] [stdout] | [INFO] [stdout] 656 | if !self.scroll_target.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.scroll_target.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:665:16 [INFO] [stdout] | [INFO] [stdout] 665 | && !self.next_hover_root.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.next_hover_root.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.scroll_target` after checking its variant with `is_none` [INFO] [stdout] --> src/lib.rs:657:29 [INFO] [stdout] | [INFO] [stdout] 656 | if !self.scroll_target.is_none() { [INFO] [stdout] | ---------------------------- the check is happening here [INFO] [stdout] 657 | self.containers[self.scroll_target.unwrap()].scroll.x += self.scroll_delta.x; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.scroll_target` after checking its variant with `is_none` [INFO] [stdout] --> src/lib.rs:658:29 [INFO] [stdout] | [INFO] [stdout] 656 | if !self.scroll_target.is_none() { [INFO] [stdout] | ---------------------------- the check is happening here [INFO] [stdout] 657 | self.containers[self.scroll_target.unwrap()].scroll.x += self.scroll_delta.x; [INFO] [stdout] 658 | self.containers[self.scroll_target.unwrap()].scroll.y += self.scroll_delta.y; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/lib.rs:688:25 [INFO] [stdout] | [INFO] [stdout] 688 | assert!(match cmd { [INFO] [stdout] | _________________________^ [INFO] [stdout] 689 | | Command::Jump { .. } => true, [INFO] [stdout] 690 | | _ => false, [INFO] [stdout] 691 | | }); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 688 - assert!(match cmd { [INFO] [stdout] 689 - Command::Jump { .. } => true, [INFO] [stdout] 690 - _ => false, [INFO] [stdout] 691 - }); [INFO] [stdout] 688 + assert!(matches!(cmd, Command::Jump { .. })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:692:62 [INFO] [stdout] | [INFO] [stdout] 692 | let dst_idx = self.containers[self.root_list[i as usize]].head_idx.unwrap() + 1; [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:698:66 [INFO] [stdout] | [INFO] [stdout] 698 | dst_idx: Some(self.containers[self.root_list[i as usize]].head_idx.unwrap() + 1), [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:702:56 [INFO] [stdout] | [INFO] [stdout] 702 | assert!(self.containers[self.root_list[i as usize]].tail_idx.unwrap() < self.command_list.len()); [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/lib.rs:703:25 [INFO] [stdout] | [INFO] [stdout] 703 | assert!(match self.command_list[self.containers[self.root_list[i as usize]].tail_idx.unwrap()] { [INFO] [stdout] | _________________________^ [INFO] [stdout] 704 | | Command::Jump { .. } => true, [INFO] [stdout] 705 | | _ => false, [INFO] [stdout] 706 | | }); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 703 - assert!(match self.command_list[self.containers[self.root_list[i as usize]].tail_idx.unwrap()] { [INFO] [stdout] 704 - Command::Jump { .. } => true, [INFO] [stdout] 705 - _ => false, [INFO] [stdout] 706 - }); [INFO] [stdout] 703 + assert!(matches!(self.command_list[self.containers[self.root_list[i as usize]].tail_idx.unwrap()], Command::Jump { .. })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:703:80 [INFO] [stdout] | [INFO] [stdout] 703 | assert!(match self.command_list[self.containers[self.root_list[i as usize]].tail_idx.unwrap()] { [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:707:66 [INFO] [stdout] | [INFO] [stdout] 707 | ... self.command_list[self.containers[self.root_list[i as usize]].tail_idx.unwrap()] = Command::Jump { dst_idx: Some(self.command... [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:725:9 [INFO] [stdout] | [INFO] [stdout] 725 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 725 - return res; [INFO] [stdout] 725 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:737:9 [INFO] [stdout] | [INFO] [stdout] 737 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 737 - return res; [INFO] [stdout] 737 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:747:9 [INFO] [stdout] | [INFO] [stdout] 747 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 747 - return res; [INFO] [stdout] 747 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:785:9 [INFO] [stdout] | [INFO] [stdout] 785 | return Clip::Part; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 785 - return Clip::Part; [INFO] [stdout] 785 + Clip::Part [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:809:9 [INFO] [stdout] | [INFO] [stdout] 809 | return self.layout_stack.top().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 809 - return self.layout_stack.top().unwrap(); [INFO] [stdout] 809 + self.layout_stack.top().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:813:9 [INFO] [stdout] | [INFO] [stdout] 813 | return self.layout_stack.top_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 813 - return self.layout_stack.top_mut().unwrap(); [INFO] [stdout] 813 + self.layout_stack.top_mut().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `idx` after checking its variant with `is_some` [INFO] [stdout] --> src/lib.rs:858:32 [INFO] [stdout] | [INFO] [stdout] 857 | if idx.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = idx` [INFO] [stdout] 858 | if self.containers[idx.unwrap()].open || !opt.is_closed() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `idx` after checking its variant with `is_some` [INFO] [stdout] --> src/lib.rs:859:44 [INFO] [stdout] | [INFO] [stdout] 857 | if idx.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = idx` [INFO] [stdout] 858 | if self.containers[idx.unwrap()].open || !opt.is_closed() { [INFO] [stdout] 859 | self.container_pool.update(idx.unwrap(), self.frame); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:927:9 [INFO] [stdout] | [INFO] [stdout] 927 | return str_start; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 927 - return str_start; [INFO] [stdout] 927 + str_start [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Layout` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:1017:17 [INFO] [stdout] | [INFO] [stdout] 1017 | let b = self.get_layout().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.get_layout()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/lib.rs:1038:9 [INFO] [stdout] | [INFO] [stdout] 1038 | / for i in 0..widths.len() { [INFO] [stdout] 1039 | | layout.widths[i] = widths[i]; [INFO] [stdout] 1040 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `layout.widths[..widths.len()].copy_from_slice(&widths[..]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] = note: `#[warn(clippy::manual_memcpy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1118:9 [INFO] [stdout] | [INFO] [stdout] 1118 | return self.last_rect; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1118 - return self.last_rect; [INFO] [stdout] 1118 + self.last_rect [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:1081:33 [INFO] [stdout] | [INFO] [stdout] 1081 | undefined_widths[0..litems as usize].copy_from_slice(&layout.widths[0..litems as usize]); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `litems` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:1081:84 [INFO] [stdout] | [INFO] [stdout] 1081 | undefined_widths[0..litems as usize].copy_from_slice(&layout.widths[0..litems as usize]); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `litems` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:1083:74 [INFO] [stdout] | [INFO] [stdout] 1083 | Self::layout_row_for_layout(layout, &undefined_widths[0..litems as usize], lsize_y); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `litems` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:1088:31 [INFO] [stdout] | [INFO] [stdout] 1088 | layout.widths[layout.item_index as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `layout.item_index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1271:9 [INFO] [stdout] | [INFO] [stdout] 1271 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1271 - return res; [INFO] [stdout] 1271 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:1254:25 [INFO] [stdout] | [INFO] [stdout] 1254 | let id: Id = if label.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!label.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:1265:12 [INFO] [stdout] | [INFO] [stdout] 1265 | if label.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!label.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1290:9 [INFO] [stdout] | [INFO] [stdout] 1290 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1290 - return res; [INFO] [stdout] 1290 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/lib.rs:1282:22 [INFO] [stdout] | [INFO] [stdout] 1282 | *state = *state == false; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `!*state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1331:9 [INFO] [stdout] | [INFO] [stdout] 1331 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1331 - return res; [INFO] [stdout] 1331 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/lib.rs:1301:24 [INFO] [stdout] | [INFO] [stdout] 1301 | len += self.input_text.len() as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.input_text.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1358:9 [INFO] [stdout] | [INFO] [stdout] 1358 | return ResourceState::NONE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1358 - return ResourceState::NONE; [INFO] [stdout] 1358 + ResourceState::NONE [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:1346:17 [INFO] [stdout] | [INFO] [stdout] 1346 | / match parse_decimal(self.number_edit_buf.as_str()) { [INFO] [stdout] 1347 | | Ok(v) => { [INFO] [stdout] 1348 | | *value = v as Real; [INFO] [stdout] 1349 | | self.number_edit = None; [INFO] [stdout] 1350 | | } [INFO] [stdout] 1351 | | _ => (), [INFO] [stdout] 1352 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1346 ~ if let Ok(v) = parse_decimal(self.number_edit_buf.as_str()) { [INFO] [stdout] 1347 + *value = v as Real; [INFO] [stdout] 1348 + self.number_edit = None; [INFO] [stdout] 1349 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1364:9 [INFO] [stdout] | [INFO] [stdout] 1364 | return self.textbox_raw(buf, id, r, opt); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1364 - return self.textbox_raw(buf, id, r, opt); [INFO] [stdout] 1364 + self.textbox_raw(buf, id, r, opt) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1402:9 [INFO] [stdout] | [INFO] [stdout] 1402 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1402 - return res; [INFO] [stdout] 1402 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1424:9 [INFO] [stdout] | [INFO] [stdout] 1424 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1424 - return res; [INFO] [stdout] 1424 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `idx` after checking its variant with `is_some` [INFO] [stdout] --> src/lib.rs:1438:43 [INFO] [stdout] | [INFO] [stdout] 1436 | if idx.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = idx` [INFO] [stdout] 1437 | if active != 0 { [INFO] [stdout] 1438 | self.treenode_pool.update(idx.unwrap(), self.frame); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `idx` after checking its variant with `is_some` [INFO] [stdout] --> src/lib.rs:1440:42 [INFO] [stdout] | [INFO] [stdout] 1436 | if idx.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = idx` [INFO] [stdout] ... [INFO] [stdout] 1440 | self.treenode_pool.reset(idx.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1461:9 [INFO] [stdout] | [INFO] [stdout] 1461 | return if expanded != 0 { ResourceState::ACTIVE } else { ResourceState::NONE }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1461 - return if expanded != 0 { ResourceState::ACTIVE } else { ResourceState::NONE }; [INFO] [stdout] 1461 + if expanded != 0 { ResourceState::ACTIVE } else { ResourceState::NONE } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1465:9 [INFO] [stdout] | [INFO] [stdout] 1465 | return self.header(label, false, opt); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1465 - return self.header(label, false, opt); [INFO] [stdout] 1465 + self.header(label, false, opt) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1474:9 [INFO] [stdout] | [INFO] [stdout] 1474 | return res; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1474 - return res; [INFO] [stdout] 1474 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:1491:29 [INFO] [stdout] | [INFO] [stdout] 1491 | self.push_clip_rect(body.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*body` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1660:9 [INFO] [stdout] | [INFO] [stdout] 1660 | return ResourceState::ACTIVE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1660 - return ResourceState::ACTIVE; [INFO] [stdout] 1660 + ResourceState::ACTIVE [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1680:9 [INFO] [stdout] | [INFO] [stdout] 1680 | return self.begin_window_ex(name, rect(0, 0, 0, 0), opt); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1680 - return self.begin_window_ex(name, rect(0, 0, 0, 0), opt); [INFO] [stdout] 1680 + self.begin_window_ex(name, rect(0, 0, 0, 0), opt) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.50s [INFO] running `Command { std: "docker" "inspect" "a65e7b22d4d323e7c0ea18b85592c01a1946a709f7b7fd44cf027899deff3410", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a65e7b22d4d323e7c0ea18b85592c01a1946a709f7b7fd44cf027899deff3410", kill_on_drop: false }` [INFO] [stdout] a65e7b22d4d323e7c0ea18b85592c01a1946a709f7b7fd44cf027899deff3410