[INFO] cloning repository https://github.com/El-Chloro/nlp [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/El-Chloro/nlp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEl-Chloro%2Fnlp", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEl-Chloro%2Fnlp'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7509e5f1884d00bffd771e3323b1880dd261baa8 [INFO] linting El-Chloro/nlp against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEl-Chloro%2Fnlp" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/El-Chloro/nlp [INFO] finished tweaking git repo https://github.com/El-Chloro/nlp [INFO] tweaked toml for git repo https://github.com/El-Chloro/nlp written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/El-Chloro/nlp 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/El-Chloro/nlp 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-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] b33d64b90b3e3cf1effbafebb847c6b61835b2957c50b7b7a5dd720e392ede70 [INFO] running `Command { std: "docker" "start" "-a" "b33d64b90b3e3cf1effbafebb847c6b61835b2957c50b7b7a5dd720e392ede70", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b33d64b90b3e3cf1effbafebb847c6b61835b2957c50b7b7a5dd720e392ede70", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b33d64b90b3e3cf1effbafebb847c6b61835b2957c50b7b7a5dd720e392ede70", kill_on_drop: false }` [INFO] [stdout] b33d64b90b3e3cf1effbafebb847c6b61835b2957c50b7b7a5dd720e392ede70 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 8d30466d218bc1086095dd918c163b6362be1a8b7ce74f1e095fc7e14b3702dc [INFO] running `Command { std: "docker" "start" "-a" "8d30466d218bc1086095dd918c163b6362be1a8b7ce74f1e095fc7e14b3702dc", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling rustix v1.0.5 [INFO] [stderr] Compiling getrandom v0.3.2 [INFO] [stderr] Checking anstream v0.6.18 [INFO] [stderr] Checking linux-raw-sys v0.9.4 [INFO] [stderr] Checking bitflags v2.9.0 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking clap_builder v4.5.35 [INFO] [stderr] Checking tempfile v3.19.1 [INFO] [stderr] Compiling clap_derive v4.5.32 [INFO] [stderr] Checking clap v4.5.35 [INFO] [stderr] Checking nlp v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/tests.rs:579:9 [INFO] [stdout] | [INFO] [stdout] 579 | let y = grammar.get_or_intern_non_terminal("Y"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `duration` [INFO] [stdout] --> src/main.rs:118:17 [INFO] [stdout] | [INFO] [stdout] 118 | let duration = start_time.elapsed(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `duration` [INFO] [stdout] --> src/main.rs:180:22 [INFO] [stdout] | [INFO] [stdout] 180 | let duration = start_time.elapsed(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `duration` [INFO] [stdout] --> src/main.rs:184:17 [INFO] [stdout] | [INFO] [stdout] 184 | let duration = total_time.elapsed(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/structs.rs:20:23 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct ParseError(pub String); [INFO] [stdout] | ---------- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/cyk.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | if theta >= 0.0 && theta <= 1.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.0..=1.0).contains(&theta)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `chart` [INFO] [stdout] --> src/cyk.rs:130:22 [INFO] [stdout] | [INFO] [stdout] 130 | for m in (i + 1)..j { // m: split point [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 130 - for m in (i + 1)..j { // m: split point [INFO] [stdout] 130 + for (m, ) in chart.iter().enumerate().take(j).skip((i + 1)) { // m: split point [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/transformations.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | / return Node { [INFO] [stdout] 83 | | label: new_label, [INFO] [stdout] 84 | | children: new_children, [INFO] [stdout] 85 | | }; [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] 82 ~ Node { [INFO] [stdout] 83 + label: new_label, [INFO] [stdout] 84 + children: new_children, [INFO] [stdout] 85 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/transformations.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | / return Node { [INFO] [stdout] 111 | | label: new_label, // The result of add_parents(σ) [INFO] [stdout] 112 | | children: vec![markovized_t1, markovized_intermediate], [INFO] [stdout] 113 | | }; [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] 110 ~ Node { [INFO] [stdout] 111 ~ label: new_label, // The result of add_parents(σ) [INFO] [stdout] 112 + children: vec![markovized_t1, markovized_intermediate], [INFO] [stdout] 113 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/transformations.rs:171:31 [INFO] [stdout] | [INFO] [stdout] 171 | let last_char_is_letter = word.chars().last().map_or(false, |c| c.is_alphabetic()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 171 - let last_char_is_letter = word.chars().last().map_or(false, |c| c.is_alphabetic()); [INFO] [stdout] 171 + let last_char_is_letter = word.chars().last().is_some_and(|c| c.is_alphabetic()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tests.rs:487:9 [INFO] [stdout] | [INFO] [stdout] 487 | / (rule.lhs_id != vp_id || rule.rhs2_id != pp_id) && [INFO] [stdout] 488 | | (rule.lhs_id != np_id || rule.rhs2_id != pp_id) [INFO] [stdout] | |_______________________________________________________^ help: try: `rule.rhs2_id != pp_id || rule.lhs_id != vp_id && rule.lhs_id != np_id` [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: unused variable: `duration` [INFO] [stdout] --> src/main.rs:118:17 [INFO] [stdout] | [INFO] [stdout] 118 | let duration = start_time.elapsed(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duration` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `duration` [INFO] [stdout] --> src/main.rs:180:22 [INFO] [stdout] | [INFO] [stdout] 180 | let duration = start_time.elapsed(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `duration` [INFO] [stdout] --> src/main.rs:184:17 [INFO] [stdout] | [INFO] [stdout] 184 | let duration = total_time.elapsed(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/structs.rs:20:23 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct ParseError(pub String); [INFO] [stdout] | ---------- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `rhs` is never read [INFO] [stdout] --> src/grammar.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct LexicalRule { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 11 | pub lhs_id: usize, [INFO] [stdout] 12 | pub rhs: String, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LexicalRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `rhs_id` is never read [INFO] [stdout] --> src/grammar.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct UnaryRule { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 18 | pub lhs_id: usize, [INFO] [stdout] 19 | pub rhs_id: usize, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UnaryRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `rhs1_id` and `rhs2_id` are never read [INFO] [stdout] --> src/grammar.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct BinaryRule { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 25 | pub lhs_id: usize, [INFO] [stdout] 26 | pub rhs1_id: usize, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 27 | pub rhs2_id: usize, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinaryRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/cyk.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | if theta >= 0.0 && theta <= 1.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.0..=1.0).contains(&theta)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `chart` [INFO] [stdout] --> src/cyk.rs:130:22 [INFO] [stdout] | [INFO] [stdout] 130 | for m in (i + 1)..j { // m: split point [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 130 - for m in (i + 1)..j { // m: split point [INFO] [stdout] 130 + for (m, ) in chart.iter().enumerate().take(j).skip((i + 1)) { // m: split point [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/transformations.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | / return Node { [INFO] [stdout] 83 | | label: new_label, [INFO] [stdout] 84 | | children: new_children, [INFO] [stdout] 85 | | }; [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] 82 ~ Node { [INFO] [stdout] 83 + label: new_label, [INFO] [stdout] 84 + children: new_children, [INFO] [stdout] 85 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/transformations.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | / return Node { [INFO] [stdout] 111 | | label: new_label, // The result of add_parents(σ) [INFO] [stdout] 112 | | children: vec![markovized_t1, markovized_intermediate], [INFO] [stdout] 113 | | }; [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] 110 ~ Node { [INFO] [stdout] 111 ~ label: new_label, // The result of add_parents(σ) [INFO] [stdout] 112 + children: vec![markovized_t1, markovized_intermediate], [INFO] [stdout] 113 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/transformations.rs:171:31 [INFO] [stdout] | [INFO] [stdout] 171 | let last_char_is_letter = word.chars().last().map_or(false, |c| c.is_alphabetic()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 171 - let last_char_is_letter = word.chars().last().map_or(false, |c| c.is_alphabetic()); [INFO] [stdout] 171 + let last_char_is_letter = word.chars().last().is_some_and(|c| c.is_alphabetic()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.90s [INFO] running `Command { std: "docker" "inspect" "8d30466d218bc1086095dd918c163b6362be1a8b7ce74f1e095fc7e14b3702dc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8d30466d218bc1086095dd918c163b6362be1a8b7ce74f1e095fc7e14b3702dc", kill_on_drop: false }` [INFO] [stdout] 8d30466d218bc1086095dd918c163b6362be1a8b7ce74f1e095fc7e14b3702dc