[INFO] fetching crate tmf 0.2.1... [INFO] linting tmf-0.2.1 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate tmf 0.2.1 into /workspace/builds/worker-0-tc1/source [INFO] started tweaking crates.io crate tmf 0.2.1 [INFO] finished tweaking crates.io crate tmf 0.2.1 [INFO] tweaked toml for crates.io crate tmf 0.2.1 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate tmf 0.2.1 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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 86 packages to latest compatible versions [INFO] [stderr] Adding criterion v0.5.1 (available: v0.8.2) [INFO] [stderr] Adding rand v0.8.5 (available: v0.10.0) [INFO] [stderr] Adding thiserror v1.0.69 (available: v2.0.18) [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] warning: only one of `license` or `license-file` is necessary [INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression. [INFO] [stderr] `license-file` should be used if the package uses a non-standard license. [INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information. [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 108a9b1b74cde8904cc0a9153586cc4412ebe583667eb295603b20d5de200e79 [INFO] running `Command { std: "docker" "start" "-a" "108a9b1b74cde8904cc0a9153586cc4412ebe583667eb295603b20d5de200e79", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "108a9b1b74cde8904cc0a9153586cc4412ebe583667eb295603b20d5de200e79", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "108a9b1b74cde8904cc0a9153586cc4412ebe583667eb295603b20d5de200e79", kill_on_drop: false }` [INFO] [stdout] 108a9b1b74cde8904cc0a9153586cc4412ebe583667eb295603b20d5de200e79 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 379cefe3f369dd1c5d764da5676d37ddec35c5b764096566f599aebc43289114 [INFO] running `Command { std: "docker" "start" "-a" "379cefe3f369dd1c5d764da5676d37ddec35c5b764096566f599aebc43289114", kill_on_drop: false }` [INFO] [stderr] warning: only one of `license` or `license-file` is necessary [INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression. [INFO] [stderr] `license-file` should be used if the package uses a non-standard license. [INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information. [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking futures-sink v0.3.32 [INFO] [stderr] Checking futures-core v0.3.32 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking pin-project-lite v0.2.17 [INFO] [stderr] Checking slab v0.4.12 [INFO] [stderr] Checking futures-task v0.3.32 [INFO] [stderr] Checking futures-io v0.3.32 [INFO] [stderr] Checking plotters-backend v0.3.7 [INFO] [stderr] Checking futures-channel v0.3.32 [INFO] [stderr] Checking clap_lex v1.1.0 [INFO] [stderr] Checking anstyle v1.0.14 [INFO] [stderr] Checking plotters-svg v0.3.7 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking clap_builder v4.6.0 [INFO] [stderr] Checking is-terminal v0.4.17 [INFO] [stderr] Checking oorandom v11.1.5 [INFO] [stderr] Checking once_cell v1.21.4 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking clap v4.6.0 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Compiling zerocopy-derive v0.8.42 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking futures-executor v0.3.32 [INFO] [stderr] Checking futures v0.3.32 [INFO] [stderr] Checking tmf v0.2.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: duplicated attribute [INFO] [stdout] --> src/material.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | #![allow(dead_code)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: first defined here [INFO] [stdout] --> src/lib.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | #[allow(dead_code)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] help: remove this attribute [INFO] [stdout] --> src/material.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | #![allow(dead_code)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicated_attributes [INFO] [stdout] = note: `#[warn(clippy::duplicated_attributes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: duplicated attribute [INFO] [stdout] --> src/lz77.rs:1:10 [INFO] [stdout] | [INFO] [stdout] 1 | #![allow(dead_code)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: first defined here [INFO] [stdout] --> src/lib.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | #[allow(dead_code)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] help: remove this attribute [INFO] [stdout] --> src/lz77.rs:1:10 [INFO] [stdout] | [INFO] [stdout] 1 | #![allow(dead_code)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicated_attributes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:45:25 [INFO] [stdout] | [INFO] [stdout] 45 | Err(err) => Err(std::io::Error::new( [INFO] [stdout] | _________________________^ [INFO] [stdout] 46 | | std::io::ErrorKind::Other, [INFO] [stdout] 47 | | err.to_string(), [INFO] [stdout] 48 | | )), [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 45 ~ Err(err) => Err(std::io::Error::other( [INFO] [stdout] 46 ~ err.to_string(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:57:21 [INFO] [stdout] | [INFO] [stdout] 57 | None => Err(std::io::Error::new( [INFO] [stdout] | _____________________^ [INFO] [stdout] 58 | | std::io::ErrorKind::Other, [INFO] [stdout] 59 | | "Invalid .obj line", [INFO] [stdout] 60 | | )), [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 57 ~ None => Err(std::io::Error::other( [INFO] [stdout] 58 ~ "Invalid .obj line", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | Err(std::io::Error::new( [INFO] [stdout] | _____________^ [INFO] [stdout] 74 | | std::io::ErrorKind::Other, [INFO] [stdout] 75 | | "Invalid index!", [INFO] [stdout] 76 | | )) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 73 ~ Err(std::io::Error::other( [INFO] [stdout] 74 ~ "Invalid index!", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:93:25 [INFO] [stdout] | [INFO] [stdout] 93 | Err(msg) => Err(Error::new(ErrorKind::Other, msg)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 93 - Err(msg) => Err(Error::new(ErrorKind::Other, msg)), [INFO] [stdout] 93 + Err(msg) => Err(Error::other(msg)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:151:28 [INFO] [stdout] | [INFO] [stdout] 151 | ...rr(Error::new(ErrorKind::Other, "If vertex triangles data is not present, normal triangle data must not be present either!")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 151 - return Err(Error::new(ErrorKind::Other, "If vertex triangles data is not present, normal triangle data must not be present either!")); [INFO] [stdout] 151 + return Err(Error::other("If vertex triangles data is not present, normal triangle data must not be present either!")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:154:28 [INFO] [stdout] | [INFO] [stdout] 154 | return Err(Error::new( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 155 | | ErrorKind::Other, [INFO] [stdout] 156 | | "If vertex triangles data is not present, uv triangle data must not be present either!", [INFO] [stdout] 157 | | )); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 154 ~ return Err(Error::other( [INFO] [stdout] 155 ~ "If vertex triangles data is not present, uv triangle data must not be present either!", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:165:24 [INFO] [stdout] | [INFO] [stdout] 165 | return Err(Error::new( [INFO] [stdout] | ________________________^ [INFO] [stdout] 166 | | ErrorKind::Other, [INFO] [stdout] 167 | | "Number of triangles in the vertex triangle and normal triangle array differs.", [INFO] [stdout] 168 | | )); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 165 ~ return Err(Error::other( [INFO] [stdout] 166 ~ "Number of triangles in the vertex triangle and normal triangle array differs.", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:174:24 [INFO] [stdout] | [INFO] [stdout] 174 | return Err(Error::new( [INFO] [stdout] | ________________________^ [INFO] [stdout] 175 | | ErrorKind::Other, [INFO] [stdout] 176 | | "Number of triangles in the vertex triangle and uv triangle array differs.", [INFO] [stdout] 177 | | )); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 174 ~ return Err(Error::other( [INFO] [stdout] 175 ~ "Number of triangles in the vertex triangle and uv triangle array differs.", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/tmf.rs:432:20 [INFO] [stdout] | [INFO] [stdout] 432 | if seg.data.len() < 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `seg.data.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: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/tmf_importer.rs:72:23 [INFO] [stdout] | [INFO] [stdout] 72 | Err(_) => Err(std::io::Error::new( [INFO] [stdout] | _______________________^ [INFO] [stdout] 73 | | std::io::ErrorKind::Other, [INFO] [stdout] 74 | | "Mesh name not valid UTF-8", [INFO] [stdout] 75 | | )), [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 72 ~ Err(_) => Err(std::io::Error::other( [INFO] [stdout] 73 ~ "Mesh name not valid UTF-8", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/tmf_importer.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | res.sort_by(|a, b| a.1.cmp(&b.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 173 - res.sort_by(|a, b| a.1.cmp(&b.1)); [INFO] [stdout] 173 + res.sort_by_key(|a| a.1); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `index` is only used to index `indices` [INFO] [stdout] --> src/unify_data.rs:18:18 [INFO] [stdout] | [INFO] [stdout] 18 | for index in 0..len { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 18 - for index in 0..len { [INFO] [stdout] 18 + for in indices.iter().take(len) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/unify_data.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | if !a.is_some_and(|data| !data.is_empty()) || indices[0].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `a.is_none_or(|data| data.is_empty())` [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/unify_data.rs:143:15 [INFO] [stdout] | [INFO] [stdout] 143 | } else if !b.is_some_and(|data| !data.is_empty()) || indices[1].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.is_none_or(|data| data.is_empty())` [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: this boolean expression can be simplified [INFO] [stdout] --> src/unify_data.rs:146:15 [INFO] [stdout] | [INFO] [stdout] 146 | } else if !c.is_some_and(|data| !data.is_empty()) || indices[2].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.is_none_or(|data| data.is_empty())` [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: this boolean expression can be simplified [INFO] [stdout] --> src/unify_data.rs:176:8 [INFO] [stdout] | [INFO] [stdout] 176 | if !a.is_some_and(|data| !data.is_empty()) || indices[0].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `a.is_none_or(|data| data.is_empty())` [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: this boolean expression can be simplified [INFO] [stdout] --> src/unify_data.rs:179:15 [INFO] [stdout] | [INFO] [stdout] 179 | } else if !b.is_some_and(|data| !data.is_empty()) || indices[1].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.is_none_or(|data| data.is_empty())` [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: this boolean expression can be simplified [INFO] [stdout] --> src/unify_data.rs:182:15 [INFO] [stdout] | [INFO] [stdout] 182 | } else if !c.is_some_and(|data| !data.is_empty()) || indices[2].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.is_none_or(|data| data.is_empty())` [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: this boolean expression can be simplified [INFO] [stdout] --> src/unify_data.rs:185:15 [INFO] [stdout] | [INFO] [stdout] 185 | } else if !d.is_some_and(|data| !data.is_empty()) || indices[3].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `d.is_none_or(|data| data.is_empty())` [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: manual arithmetic check found [INFO] [stdout] --> src/lz77.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | let start = if pos < scrollback_limit { [INFO] [stdout] | _________________^ [INFO] [stdout] 11 | | 0 [INFO] [stdout] 12 | | } else { [INFO] [stdout] 13 | | pos - scrollback_limit [INFO] [stdout] 14 | | }; [INFO] [stdout] | |_____^ help: replace it with: `pos.saturating_sub(scrollback_limit)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] = note: `#[warn(clippy::implicit_saturating_sub)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/lz77.rs:85:74 [INFO] [stdout] | [INFO] [stdout] 85 | ...n Err(std::io::Error::new(std::io::ErrorKind::Other, "Data segment length bigger than size of this devices address space.")) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 85 - let Ok(len) = usize::try_from(data_or_len) else { return Err(std::io::Error::new(std::io::ErrorKind::Other, "Data segment length bigger than size of this devices address space.")) }; [INFO] [stdout] 85 + let Ok(len) = usize::try_from(data_or_len) else { return Err(std::io::Error::other("Data segment length bigger than size of this devices address space.")) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/lib.rs:688:25 [INFO] [stdout] | [INFO] [stdout] 688 | Err(std::io::Error::new( [INFO] [stdout] | _________________________^ [INFO] [stdout] 689 | | std::io::ErrorKind::Other, [INFO] [stdout] 690 | | "More than one mesh present in .obj file while only one expected.", [INFO] [stdout] 691 | | )) [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 688 ~ Err(std::io::Error::other( [INFO] [stdout] 689 ~ "More than one mesh present in .obj file while only one expected.", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/lib.rs:696:25 [INFO] [stdout] | [INFO] [stdout] 696 | None => Err(std::io::Error::new( [INFO] [stdout] | _________________________^ [INFO] [stdout] 697 | | std::io::ErrorKind::Other, [INFO] [stdout] 698 | | "No meshes present in .obj file", [INFO] [stdout] 699 | | )), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 696 ~ None => Err(std::io::Error::other( [INFO] [stdout] 697 ~ "No meshes present in .obj file", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stdout] warning: unused import: `black_box` [INFO] [stdout] --> benches/unaligned_rw.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use criterion::{black_box, criterion_group, criterion_main, Criterion}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> benches/read_write_tmf.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | let mut prec = TMFPrecisionInfo::default(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> benches/read_write_tmf.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | file.read_to_end(&mut out); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 7 | let _ = file.read_to_end(&mut out); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> benches/read_write_tmf.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | file.read_to_end(&mut out); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 20 | let _ = file.read_to_end(&mut out); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> benches/read_write_tmf.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | file.read_to_end(&mut out); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 36 | let _ = file.read_to_end(&mut out); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> benches/read_write_tmf.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | file.read_to_end(&mut out); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 50 | let _ = file.read_to_end(&mut out); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: duplicated attribute [INFO] [stdout] --> src/material.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | #![allow(dead_code)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: first defined here [INFO] [stdout] --> src/lib.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | #[allow(dead_code)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] help: remove this attribute [INFO] [stdout] --> src/material.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | #![allow(dead_code)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicated_attributes [INFO] [stdout] = note: `#[warn(clippy::duplicated_attributes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: duplicated attribute [INFO] [stdout] --> src/lz77.rs:1:10 [INFO] [stdout] | [INFO] [stdout] 1 | #![allow(dead_code)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: first defined here [INFO] [stdout] --> src/lib.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | #[allow(dead_code)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] help: remove this attribute [INFO] [stdout] --> src/lz77.rs:1:10 [INFO] [stdout] | [INFO] [stdout] 1 | #![allow(dead_code)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicated_attributes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/unify_data.rs:225:18 [INFO] [stdout] | [INFO] [stdout] 225 | let (r_mesh, name) = TMFMesh::read_tmf_one(&mut out).unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/unify_data.rs:254:18 [INFO] [stdout] | [INFO] [stdout] 254 | let (r_mesh, name) = TMFMesh::read_tmf_one(&mut out).unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r_mesh` [INFO] [stdout] --> src/lib.rs:1215:13 [INFO] [stdout] | [INFO] [stdout] 1215 | let r_mesh = runtime_agnostic_block_on!(tmf_importer::TMFImportContext::analize( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_r_mesh` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib.rs:1239:13 [INFO] [stdout] | [INFO] [stdout] 1239 | let mut index = 0; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> src/lib.rs:1239:13 [INFO] [stdout] | [INFO] [stdout] 1239 | let mut index = 0; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:45:25 [INFO] [stdout] | [INFO] [stdout] 45 | Err(err) => Err(std::io::Error::new( [INFO] [stdout] | _________________________^ [INFO] [stdout] 46 | | std::io::ErrorKind::Other, [INFO] [stdout] 47 | | err.to_string(), [INFO] [stdout] 48 | | )), [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 45 ~ Err(err) => Err(std::io::Error::other( [INFO] [stdout] 46 ~ err.to_string(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:57:21 [INFO] [stdout] | [INFO] [stdout] 57 | None => Err(std::io::Error::new( [INFO] [stdout] | _____________________^ [INFO] [stdout] 58 | | std::io::ErrorKind::Other, [INFO] [stdout] 59 | | "Invalid .obj line", [INFO] [stdout] 60 | | )), [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 57 ~ None => Err(std::io::Error::other( [INFO] [stdout] 58 ~ "Invalid .obj line", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | Err(std::io::Error::new( [INFO] [stdout] | _____________^ [INFO] [stdout] 74 | | std::io::ErrorKind::Other, [INFO] [stdout] 75 | | "Invalid index!", [INFO] [stdout] 76 | | )) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 73 ~ Err(std::io::Error::other( [INFO] [stdout] 74 ~ "Invalid index!", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:93:25 [INFO] [stdout] | [INFO] [stdout] 93 | Err(msg) => Err(Error::new(ErrorKind::Other, msg)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 93 - Err(msg) => Err(Error::new(ErrorKind::Other, msg)), [INFO] [stdout] 93 + Err(msg) => Err(Error::other(msg)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:151:28 [INFO] [stdout] | [INFO] [stdout] 151 | ...rr(Error::new(ErrorKind::Other, "If vertex triangles data is not present, normal triangle data must not be present either!")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 151 - return Err(Error::new(ErrorKind::Other, "If vertex triangles data is not present, normal triangle data must not be present either!")); [INFO] [stdout] 151 + return Err(Error::other("If vertex triangles data is not present, normal triangle data must not be present either!")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:154:28 [INFO] [stdout] | [INFO] [stdout] 154 | return Err(Error::new( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 155 | | ErrorKind::Other, [INFO] [stdout] 156 | | "If vertex triangles data is not present, uv triangle data must not be present either!", [INFO] [stdout] 157 | | )); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 154 ~ return Err(Error::other( [INFO] [stdout] 155 ~ "If vertex triangles data is not present, uv triangle data must not be present either!", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:165:24 [INFO] [stdout] | [INFO] [stdout] 165 | return Err(Error::new( [INFO] [stdout] | ________________________^ [INFO] [stdout] 166 | | ErrorKind::Other, [INFO] [stdout] 167 | | "Number of triangles in the vertex triangle and normal triangle array differs.", [INFO] [stdout] 168 | | )); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 165 ~ return Err(Error::other( [INFO] [stdout] 166 ~ "Number of triangles in the vertex triangle and normal triangle array differs.", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/obj.rs:174:24 [INFO] [stdout] | [INFO] [stdout] 174 | return Err(Error::new( [INFO] [stdout] | ________________________^ [INFO] [stdout] 175 | | ErrorKind::Other, [INFO] [stdout] 176 | | "Number of triangles in the vertex triangle and uv triangle array differs.", [INFO] [stdout] 177 | | )); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 174 ~ return Err(Error::other( [INFO] [stdout] 175 ~ "Number of triangles in the vertex triangle and uv triangle array differs.", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/reorder_triangles.rs:82:38 [INFO] [stdout] | [INFO] [stdout] 82 | tmf_mesh.write_obj_one(&mut out, &"SUSAN").unwrap(); [INFO] [stdout] | ^^^^^^^^ help: change this to: `"SUSAN"` [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: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/tangents.rs:155:32 [INFO] [stdout] | [INFO] [stdout] 155 | let src_tangents: Vec<_> = (0..100_000).into_iter().map(|_| rand_tangent()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..100_000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/tangents.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | / (0..len) [INFO] [stdout] 176 | | .into_iter() [INFO] [stdout] | |________________________^ help: consider removing `.into_iter()`: `(0..len)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/tangents.rs:202:9 [INFO] [stdout] | [INFO] [stdout] 202 | / (0..(len as crate::IndexType)) [INFO] [stdout] 203 | | .into_iter() [INFO] [stdout] | |________________________^ help: consider removing `.into_iter()`: `(0..(len as crate::IndexType))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/tmf.rs:432:20 [INFO] [stdout] | [INFO] [stdout] 432 | if seg.data.len() < 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `seg.data.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: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/tmf_importer.rs:72:23 [INFO] [stdout] | [INFO] [stdout] 72 | Err(_) => Err(std::io::Error::new( [INFO] [stdout] | _______________________^ [INFO] [stdout] 73 | | std::io::ErrorKind::Other, [INFO] [stdout] 74 | | "Mesh name not valid UTF-8", [INFO] [stdout] 75 | | )), [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 72 ~ Err(_) => Err(std::io::Error::other( [INFO] [stdout] 73 ~ "Mesh name not valid UTF-8", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/tmf_importer.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | res.sort_by(|a, b| a.1.cmp(&b.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 173 - res.sort_by(|a, b| a.1.cmp(&b.1)); [INFO] [stdout] 173 + res.sort_by_key(|a| a.1); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `index` is only used to index `indices` [INFO] [stdout] --> src/unify_data.rs:18:18 [INFO] [stdout] | [INFO] [stdout] 18 | for index in 0..len { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 18 - for index in 0..len { [INFO] [stdout] 18 + for in indices.iter().take(len) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/unify_data.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | if !a.is_some_and(|data| !data.is_empty()) || indices[0].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `a.is_none_or(|data| data.is_empty())` [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/unify_data.rs:143:15 [INFO] [stdout] | [INFO] [stdout] 143 | } else if !b.is_some_and(|data| !data.is_empty()) || indices[1].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.is_none_or(|data| data.is_empty())` [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: this boolean expression can be simplified [INFO] [stdout] --> src/unify_data.rs:146:15 [INFO] [stdout] | [INFO] [stdout] 146 | } else if !c.is_some_and(|data| !data.is_empty()) || indices[2].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.is_none_or(|data| data.is_empty())` [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: this boolean expression can be simplified [INFO] [stdout] --> src/unify_data.rs:176:8 [INFO] [stdout] | [INFO] [stdout] 176 | if !a.is_some_and(|data| !data.is_empty()) || indices[0].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `a.is_none_or(|data| data.is_empty())` [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: this boolean expression can be simplified [INFO] [stdout] --> src/unify_data.rs:179:15 [INFO] [stdout] | [INFO] [stdout] 179 | } else if !b.is_some_and(|data| !data.is_empty()) || indices[1].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.is_none_or(|data| data.is_empty())` [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: this boolean expression can be simplified [INFO] [stdout] --> src/unify_data.rs:182:15 [INFO] [stdout] | [INFO] [stdout] 182 | } else if !c.is_some_and(|data| !data.is_empty()) || indices[2].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.is_none_or(|data| data.is_empty())` [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: this boolean expression can be simplified [INFO] [stdout] --> src/unify_data.rs:185:15 [INFO] [stdout] | [INFO] [stdout] 185 | } else if !d.is_some_and(|data| !data.is_empty()) || indices[3].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `d.is_none_or(|data| data.is_empty())` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/unify_data.rs:215:38 [INFO] [stdout] | [INFO] [stdout] 215 | tmf_mesh.write_obj_one(&mut out, &"SUSAN").unwrap(); [INFO] [stdout] | ^^^^^^^^ help: change this to: `"SUSAN"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/unify_data.rs:227:36 [INFO] [stdout] | [INFO] [stdout] 227 | r_mesh.write_obj_one(&mut out, &"SUSAN").unwrap(); [INFO] [stdout] | ^^^^^^^^ help: change this to: `"SUSAN"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/unify_data.rs:256:36 [INFO] [stdout] | [INFO] [stdout] 256 | r_mesh.write_obj_one(&mut out, &"SUSAN").unwrap(); [INFO] [stdout] | ^^^^^^^^ help: change this to: `"SUSAN"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/lz77.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | let start = if pos < scrollback_limit { [INFO] [stdout] | _________________^ [INFO] [stdout] 11 | | 0 [INFO] [stdout] 12 | | } else { [INFO] [stdout] 13 | | pos - scrollback_limit [INFO] [stdout] 14 | | }; [INFO] [stdout] | |_____^ help: replace it with: `pos.saturating_sub(scrollback_limit)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] = note: `#[warn(clippy::implicit_saturating_sub)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/lz77.rs:85:74 [INFO] [stdout] | [INFO] [stdout] 85 | ...n Err(std::io::Error::new(std::io::ErrorKind::Other, "Data segment length bigger than size of this devices address space.")) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 85 - let Ok(len) = usize::try_from(data_or_len) else { return Err(std::io::Error::new(std::io::ErrorKind::Other, "Data segment length bigger than size of this devices address space.")) }; [INFO] [stdout] 85 + let Ok(len) = usize::try_from(data_or_len) else { return Err(std::io::Error::other("Data segment length bigger than size of this devices address space.")) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/lib.rs:688:25 [INFO] [stdout] | [INFO] [stdout] 688 | Err(std::io::Error::new( [INFO] [stdout] | _________________________^ [INFO] [stdout] 689 | | std::io::ErrorKind::Other, [INFO] [stdout] 690 | | "More than one mesh present in .obj file while only one expected.", [INFO] [stdout] 691 | | )) [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 688 ~ Err(std::io::Error::other( [INFO] [stdout] 689 ~ "More than one mesh present in .obj file while only one expected.", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/lib.rs:696:25 [INFO] [stdout] | [INFO] [stdout] 696 | None => Err(std::io::Error::new( [INFO] [stdout] | _________________________^ [INFO] [stdout] 697 | | std::io::ErrorKind::Other, [INFO] [stdout] 698 | | "No meshes present in .obj file", [INFO] [stdout] 699 | | )), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 696 ~ None => Err(std::io::Error::other( [INFO] [stdout] 697 ~ "No meshes present in .obj file", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/lib.rs:1215:9 [INFO] [stdout] | [INFO] [stdout] 1215 | / let r_mesh = runtime_agnostic_block_on!(tmf_importer::TMFImportContext::analize( [INFO] [stdout] 1216 | | &mut (&out as &[u8]), [INFO] [stdout] 1217 | | )) [INFO] [stdout] 1218 | | .unwrap(); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 1215 - let r_mesh = runtime_agnostic_block_on!(tmf_importer::TMFImportContext::analize( [INFO] [stdout] 1215 + runtime_agnostic_block_on!(tmf_importer::TMFImportContext::analize( [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/lib.rs:1272:49 [INFO] [stdout] | [INFO] [stdout] 1272 | let mut out = std::fs::File::create(&format!("target/test_res/{}.obj", name)).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `format!("target/test_res/{}.obj", name)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&Box<[T]> as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to ` as IntoIterator>::into_iter` in Rust 2024 [INFO] [stdout] --> src/tangents.rs:159:36 [INFO] [stdout] | [INFO] [stdout] 159 | for tangent in target_tangents.into_iter() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(boxed_slice_into_iter)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 159 - for tangent in target_tangents.into_iter() { [INFO] [stdout] 159 + for tangent in target_tangents.iter() { [INFO] [stdout] | [INFO] [stdout] help: or remove `.into_iter()` to iterate by value [INFO] [stdout] | [INFO] [stdout] 159 - for tangent in target_tangents.into_iter() { [INFO] [stdout] 159 + for tangent in target_tangents { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.87s [INFO] running `Command { std: "docker" "inspect" "379cefe3f369dd1c5d764da5676d37ddec35c5b764096566f599aebc43289114", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "379cefe3f369dd1c5d764da5676d37ddec35c5b764096566f599aebc43289114", kill_on_drop: false }` [INFO] [stdout] 379cefe3f369dd1c5d764da5676d37ddec35c5b764096566f599aebc43289114