[INFO] cloning repository https://github.com/amiroo54/rusty-sheet-core [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/amiroo54/rusty-sheet-core" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Famiroo54%2Frusty-sheet-core", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Famiroo54%2Frusty-sheet-core'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e5a8589fd36eba5a0ab22e1cd171501242b1fda5 [INFO] linting amiroo54/rusty-sheet-core against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Famiroo54%2Frusty-sheet-core" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/amiroo54/rusty-sheet-core [INFO] finished tweaking git repo https://github.com/amiroo54/rusty-sheet-core [INFO] tweaked toml for git repo https://github.com/amiroo54/rusty-sheet-core written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/amiroo54/rusty-sheet-core 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 git repo https://github.com/amiroo54/rusty-sheet-core 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] fe3d41a369af01e401bf5716afe3f572113e408004a0d30b5baf499093ebbaea [INFO] running `Command { std: "docker" "start" "-a" "fe3d41a369af01e401bf5716afe3f572113e408004a0d30b5baf499093ebbaea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fe3d41a369af01e401bf5716afe3f572113e408004a0d30b5baf499093ebbaea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fe3d41a369af01e401bf5716afe3f572113e408004a0d30b5baf499093ebbaea", kill_on_drop: false }` [INFO] [stdout] fe3d41a369af01e401bf5716afe3f572113e408004a0d30b5baf499093ebbaea [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 33218b49f8a072495494fef97e728259bb4a61620f14ca3a105d479778c88142 [INFO] running `Command { std: "docker" "start" "-a" "33218b49f8a072495494fef97e728259bb4a61620f14ca3a105d479778c88142", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.79 [INFO] [stderr] Compiling libc v0.2.153 [INFO] [stderr] Compiling serde v1.0.197 [INFO] [stderr] Compiling serde_json v1.0.115 [INFO] [stderr] Checking getrandom v0.2.12 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Compiling syn v2.0.55 [INFO] [stderr] Compiling serde_derive v1.0.197 [INFO] [stderr] Checking uuid v1.8.0 [INFO] [stderr] Checking rusty-sheet-core v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/mods/class.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | name: name, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/mods/class.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | name: name, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Stats` [INFO] [stdout] --> src/mods/stats.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | / pub fn new() -> Self [INFO] [stdout] 42 | | { [INFO] [stdout] 43 | | Stats { [INFO] [stdout] 44 | | strength: 10, [INFO] [stdout] ... | [INFO] [stdout] 51 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 39 + impl Default for Stats { [INFO] [stdout] 40 + fn default() -> Self { [INFO] [stdout] 41 + Self::new() [INFO] [stdout] 42 + } [INFO] [stdout] 43 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Stats` [INFO] [stdout] --> src/mods/stats.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | / pub fn new() -> Self [INFO] [stdout] 42 | | { [INFO] [stdout] 43 | | Stats { [INFO] [stdout] 44 | | strength: 10, [INFO] [stdout] ... | [INFO] [stdout] 51 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 39 + impl Default for Stats { [INFO] [stdout] 40 + fn default() -> Self { [INFO] [stdout] 41 + Self::new() [INFO] [stdout] 42 + } [INFO] [stdout] 43 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/mods/race.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | / impl Default for Race { [INFO] [stdout] 20 | | fn default() -> Self { [INFO] [stdout] 21 | | Self { id: Default::default(), name: Default::default(), description: Default::default(), actions: Default::default() } [INFO] [stdout] 22 | | } [INFO] [stdout] 23 | | } [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 [INFO] [stdout] | [INFO] [stdout] 5 + #[derive(Default)] [INFO] [stdout] 6 | pub struct Race [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/class.rs:54:23 [INFO] [stdout] | [INFO] [stdout] 54 | class_id: self.id.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/class.rs:55:17 [INFO] [stdout] | [INFO] [stdout] 55 | id: id.clone(), [INFO] [stdout] | ^^^^^^^^^^ help: try removing the `clone` call: `id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/class.rs:59:32 [INFO] [stdout] | [INFO] [stdout] 59 | self.subclasses.insert(s.id.clone(), s); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `s.id` [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: this `impl` can be derived [INFO] [stdout] --> src/mods/race.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | / impl Default for Race { [INFO] [stdout] 20 | | fn default() -> Self { [INFO] [stdout] 21 | | Self { id: Default::default(), name: Default::default(), description: Default::default(), actions: Default::default() } [INFO] [stdout] 22 | | } [INFO] [stdout] 23 | | } [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 [INFO] [stdout] | [INFO] [stdout] 5 + #[derive(Default)] [INFO] [stdout] 6 | pub struct Race [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/mods/class.rs:96:30 [INFO] [stdout] | [INFO] [stdout] 96 | actions.push(&act); [INFO] [stdout] | ^^^^ help: change this to: `act` [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: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/class.rs:54:23 [INFO] [stdout] | [INFO] [stdout] 54 | class_id: self.id.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/class.rs:55:17 [INFO] [stdout] | [INFO] [stdout] 55 | id: id.clone(), [INFO] [stdout] | ^^^^^^^^^^ help: try removing the `clone` call: `id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/class.rs:118:23 [INFO] [stdout] | [INFO] [stdout] 118 | class_id: class.id.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `class.id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/class.rs:59:32 [INFO] [stdout] | [INFO] [stdout] 59 | self.subclasses.insert(s.id.clone(), s); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `s.id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/class.rs:136:26 [INFO] [stdout] | [INFO] [stdout] 136 | let id = self.class_id.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.class_id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/class.rs:140:42 [INFO] [stdout] | [INFO] [stdout] 140 | class.sub_class_id = binding.0.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `binding.0` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/mods/class.rs:96:30 [INFO] [stdout] | [INFO] [stdout] 96 | actions.push(&act); [INFO] [stdout] | ^^^^ help: change this to: `act` [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: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/class.rs:118:23 [INFO] [stdout] | [INFO] [stdout] 118 | class_id: class.id.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `class.id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/class.rs:136:26 [INFO] [stdout] | [INFO] [stdout] 136 | let id = self.class_id.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.class_id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/class.rs:140:42 [INFO] [stdout] | [INFO] [stdout] 140 | class.sub_class_id = binding.0.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `binding.0` [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: manual implementation of `Iterator::find` [INFO] [stdout] --> src/mods/character.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | / for class in &mut self.classes [INFO] [stdout] 87 | | { [INFO] [stdout] 88 | | if class.class_id == id.clone() [INFO] [stdout] ... | [INFO] [stdout] 93 | | None [INFO] [stdout] | |____________^ help: replace with an iterator: `self.classes.iter_mut().find(|class| class.class_id == id.clone()).map(|v| v as _)` [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: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/character.rs:88:34 [INFO] [stdout] | [INFO] [stdout] 88 | if class.class_id == id.clone() [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*id` [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: you should consider adding a `Default` implementation for `Data` [INFO] [stdout] --> src/lib.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | / pub fn new() -> Self [INFO] [stdout] 20 | | { [INFO] [stdout] 21 | | Data [INFO] [stdout] ... | [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 17 + impl Default for Data { [INFO] [stdout] 18 + fn default() -> Self { [INFO] [stdout] 19 + Self::new() [INFO] [stdout] 20 + } [INFO] [stdout] 21 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/lib.rs:32:38 [INFO] [stdout] | [INFO] [stdout] 32 | if let Ok(file) = File::open(&path) { [INFO] [stdout] | ^^^^^ help: change this to: `path` [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: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:56:40 [INFO] [stdout] | [INFO] [stdout] 56 | .subclasses.insert(sub.0.clone(), sub.1); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `sub.0` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:64:51 [INFO] [stdout] | [INFO] [stdout] 64 | character.1.populate_from_ids(&data); [INFO] [stdout] | ^^^^^ help: change this to: `data` [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: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:82:38 [INFO] [stdout] | [INFO] [stdout] 82 | subclass_list.insert(sub.0.clone(), sub.1.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*sub.0` [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: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/lib.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | / for entry in entries { [INFO] [stdout] 109 | | if let Ok(entry) = entry { [INFO] [stdout] 110 | | let file_path = entry.path(); [INFO] [stdout] ... | [INFO] [stdout] 117 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/lib.rs:109:17 [INFO] [stdout] | [INFO] [stdout] 109 | / if let Ok(entry) = entry { [INFO] [stdout] 110 | | let file_path = entry.path(); [INFO] [stdout] 111 | | // Check if the file is a regular file before processing [INFO] [stdout] 112 | | if file_path.is_file() { [INFO] [stdout] ... | [INFO] [stdout] 116 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 108 ~ for entry in entries.flatten() { [INFO] [stdout] 109 + let file_path = entry.path(); [INFO] [stdout] 110 + // Check if the file is a regular file before processing [INFO] [stdout] 111 + if file_path.is_file() { [INFO] [stdout] 112 + // Call the provided function on the file [INFO] [stdout] 113 + Data::load_file(&file_path, &mut data); [INFO] [stdout] 114 + } [INFO] [stdout] 115 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(&Uuid, &Race)` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:126:27 [INFO] [stdout] | [INFO] [stdout] 126 | let binding = race.clone().1.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `race` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:129:32 [INFO] [stdout] | [INFO] [stdout] 129 | char.race_id = binding.id.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `binding.id` [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: manual implementation of `Iterator::find` [INFO] [stdout] --> src/mods/character.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | / for class in &mut self.classes [INFO] [stdout] 87 | | { [INFO] [stdout] 88 | | if class.class_id == id.clone() [INFO] [stdout] ... | [INFO] [stdout] 93 | | None [INFO] [stdout] | |____________^ help: replace with an iterator: `self.classes.iter_mut().find(|class| class.class_id == id.clone()).map(|v| v as _)` [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: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/mods/character.rs:88:34 [INFO] [stdout] | [INFO] [stdout] 88 | if class.class_id == id.clone() [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*id` [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: you should consider adding a `Default` implementation for `Data` [INFO] [stdout] --> src/lib.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | / pub fn new() -> Self [INFO] [stdout] 20 | | { [INFO] [stdout] 21 | | Data [INFO] [stdout] ... | [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 17 + impl Default for Data { [INFO] [stdout] 18 + fn default() -> Self { [INFO] [stdout] 19 + Self::new() [INFO] [stdout] 20 + } [INFO] [stdout] 21 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/lib.rs:32:38 [INFO] [stdout] | [INFO] [stdout] 32 | if let Ok(file) = File::open(&path) { [INFO] [stdout] | ^^^^^ help: change this to: `path` [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: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:56:40 [INFO] [stdout] | [INFO] [stdout] 56 | .subclasses.insert(sub.0.clone(), sub.1); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `sub.0` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:64:51 [INFO] [stdout] | [INFO] [stdout] 64 | character.1.populate_from_ids(&data); [INFO] [stdout] | ^^^^^ help: change this to: `data` [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: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:82:38 [INFO] [stdout] | [INFO] [stdout] 82 | subclass_list.insert(sub.0.clone(), sub.1.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*sub.0` [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: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/lib.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | / for entry in entries { [INFO] [stdout] 109 | | if let Ok(entry) = entry { [INFO] [stdout] 110 | | let file_path = entry.path(); [INFO] [stdout] ... | [INFO] [stdout] 117 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/lib.rs:109:17 [INFO] [stdout] | [INFO] [stdout] 109 | / if let Ok(entry) = entry { [INFO] [stdout] 110 | | let file_path = entry.path(); [INFO] [stdout] 111 | | // Check if the file is a regular file before processing [INFO] [stdout] 112 | | if file_path.is_file() { [INFO] [stdout] ... | [INFO] [stdout] 116 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 108 ~ for entry in entries.flatten() { [INFO] [stdout] 109 + let file_path = entry.path(); [INFO] [stdout] 110 + // Check if the file is a regular file before processing [INFO] [stdout] 111 + if file_path.is_file() { [INFO] [stdout] 112 + // Call the provided function on the file [INFO] [stdout] 113 + Data::load_file(&file_path, &mut data); [INFO] [stdout] 114 + } [INFO] [stdout] 115 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(&Uuid, &Race)` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:126:27 [INFO] [stdout] | [INFO] [stdout] 126 | let binding = race.clone().1.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `race` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:129:32 [INFO] [stdout] | [INFO] [stdout] 129 | char.race_id = binding.id.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `binding.id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> tests/test.rs:11:31 [INFO] [stdout] | [INFO] [stdout] 11 | data.race_list.insert(race.id.clone(), race); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `race.id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> tests/test.rs:12:32 [INFO] [stdout] | [INFO] [stdout] 12 | data.class_list.insert(starting_class.id.clone(), starting_class); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `starting_class.id` [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: this boolean expression can be simplified [INFO] [stdout] --> tests/test.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | if !fs::metadata(&temp_dir).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&temp_dir).is_err()` [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: calls to `push` immediately after creation [INFO] [stdout] --> tests/test.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | / let mut race_actions = Vec::::new(); [INFO] [stdout] 93 | | race_actions.push(Action::new("Fleet of Foot. Your base walking speed increases to 35 feet.".to_string(), 1, ActionType::Trait)); [INFO] [stdout] 94 | | race_actions.push(Action::new("Mask of the Wild. You can attempt to hide even when you are only lightly obscured by foliage, heavy rain, falling snow, mist, and other natural phenomena.".to_string(), 1, ActionType::Trait)); [INFO] [stdout] | |_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: consider using the `vec![]` macro: `let race_actions = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> tests/test.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | / let mut class_actions = Vec::::new(); [INFO] [stdout] 99 | | class_actions.push(Action::new("You know Druidic, the secret language of druids. You can speak the language and use it to leave hidden messages. You and others who know this language automatically spot such a message. Others spot the message's presence with a successful DC 15 Wisdom... [INFO] [stdout] 100 | | class_actions.push(Action::new("Starting at 2nd level, you can use your action to magically assume the shape of a beast that you have seen before. You can use this feature twice. You regain expended uses when you finish a short or long rest.".to_string(), 2, ActionType::Action)); [INFO] [stdout] | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ help: consider using the `vec![]` macro: `let class_actions = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> tests/test.rs:104:31 [INFO] [stdout] | [INFO] [stdout] 104 | data.race_list.insert(race.id.clone(), race); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `race.id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> tests/test.rs:127:32 [INFO] [stdout] | [INFO] [stdout] 127 | data.class_list.insert(starting_class.id.clone(), starting_class); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `starting_class.id` [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 `Uuid` which implements the `Copy` trait [INFO] [stdout] --> tests/test.rs:128:31 [INFO] [stdout] | [INFO] [stdout] 128 | data.race_list.insert(race.id.clone(), race); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `race.id` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.04s [INFO] running `Command { std: "docker" "inspect" "33218b49f8a072495494fef97e728259bb4a61620f14ca3a105d479778c88142", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "33218b49f8a072495494fef97e728259bb4a61620f14ca3a105d479778c88142", kill_on_drop: false }` [INFO] [stdout] 33218b49f8a072495494fef97e728259bb4a61620f14ca3a105d479778c88142