[INFO] cloning repository https://github.com/DiveFish/ambiguity-stats [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/DiveFish/ambiguity-stats" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDiveFish%2Fambiguity-stats", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDiveFish%2Fambiguity-stats'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e469c4db8599c6c91735609392a307ca87dec1c8 [INFO] linting DiveFish/ambiguity-stats against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDiveFish%2Fambiguity-stats" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/DiveFish/ambiguity-stats [INFO] finished tweaking git repo https://github.com/DiveFish/ambiguity-stats [INFO] tweaked toml for git repo https://github.com/DiveFish/ambiguity-stats written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/DiveFish/ambiguity-stats 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/DiveFish/ambiguity-stats already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded cc v1.0.15 [INFO] [stderr] Downloaded conllx v0.10.2 [INFO] [stderr] Downloaded redox_syscall v0.1.37 [INFO] [stderr] Downloaded petgraph v0.4.13 [INFO] [stderr] Downloaded bitflags v1.0.3 [INFO] [stderr] Downloaded termion v1.5.1 [INFO] [stderr] Downloaded failure v0.1.1 [INFO] [stderr] Downloaded rustc-demangle v0.1.8 [INFO] [stderr] Downloaded synom v0.11.3 [INFO] [stderr] Downloaded unicode-xid v0.0.4 [INFO] [stderr] Downloaded ordermap v0.3.5 [INFO] [stderr] Downloaded clap v2.31.2 [INFO] [stderr] Downloaded atty v0.2.10 [INFO] [stderr] Downloaded unicode-width v0.1.4 [INFO] [stderr] Downloaded backtrace v0.3.7 [INFO] [stderr] Downloaded synstructure v0.6.1 [INFO] [stderr] Downloaded either v1.5.0 [INFO] [stderr] Downloaded lazy-init v0.3.0 [INFO] [stderr] Downloaded flate2 v0.2.20 [INFO] [stderr] Downloaded fixedbitset v0.1.9 [INFO] [stderr] Downloaded strsim v0.7.0 [INFO] [stderr] Downloaded textwrap v0.9.0 [INFO] [stderr] Downloaded vec_map v0.8.0 [INFO] [stderr] Downloaded cfg-if v0.1.3 [INFO] [stderr] Downloaded quote v0.3.15 [INFO] [stderr] Downloaded backtrace-sys v0.1.16 [INFO] [stderr] Downloaded syn v0.11.11 [INFO] [stderr] Downloaded failure_derive v0.1.1 [INFO] [stderr] Downloaded itertools v0.7.8 [INFO] [stderr] Downloaded libc v0.2.40 [INFO] [stderr] Downloaded miniz-sys v0.1.10 [INFO] [stderr] Downloaded redox_termios v0.1.1 [INFO] [stderr] Downloaded winapi v0.3.4 [INFO] [stderr] Downloaded lazy_static v1.0.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 563d79b69f8a08bf322f97a6d6975b0267ab3ea549c9fb0499e1ba6c2fb9c740 [INFO] running `Command { std: "docker" "start" "-a" "563d79b69f8a08bf322f97a6d6975b0267ab3ea549c9fb0499e1ba6c2fb9c740", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "563d79b69f8a08bf322f97a6d6975b0267ab3ea549c9fb0499e1ba6c2fb9c740", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "563d79b69f8a08bf322f97a6d6975b0267ab3ea549c9fb0499e1ba6c2fb9c740", kill_on_drop: false }` [INFO] [stdout] 563d79b69f8a08bf322f97a6d6975b0267ab3ea549c9fb0499e1ba6c2fb9c740 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 71341300cb62f9bf68dad98121ae3da057ad4a7a58328990d255ce9bc80177ad [INFO] running `Command { std: "docker" "start" "-a" "71341300cb62f9bf68dad98121ae3da057ad4a7a58328990d255ce9bc80177ad", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Compiling cc v1.0.15 [INFO] [stderr] Checking libc v0.2.40 [INFO] [stderr] Compiling unicode-xid v0.0.4 [INFO] [stderr] Compiling quote v0.3.15 [INFO] [stderr] Checking cfg-if v0.1.3 [INFO] [stderr] Checking rustc-demangle v0.1.8 [INFO] [stderr] Checking ordermap v0.3.5 [INFO] [stderr] Checking unicode-width v0.1.4 [INFO] [stderr] Checking fixedbitset v0.1.9 [INFO] [stderr] Checking either v1.5.0 [INFO] [stderr] Checking ansi_term v0.11.0 [INFO] [stderr] Checking bitflags v1.0.3 [INFO] [stderr] Checking vec_map v0.8.0 [INFO] [stderr] Checking strsim v0.7.0 [INFO] [stderr] Checking lazy-init v0.3.0 [INFO] [stderr] Checking lazy_static v1.0.1 [INFO] [stderr] Compiling synom v0.11.3 [INFO] [stderr] Checking itertools v0.7.8 [INFO] [stderr] Checking textwrap v0.9.0 [INFO] [stderr] Compiling syn v0.11.11 [INFO] [stderr] Checking atty v0.2.10 [INFO] [stderr] Checking clap v2.31.2 [INFO] [stderr] Checking petgraph v0.4.13 [INFO] [stderr] Compiling backtrace-sys v0.1.16 [INFO] [stderr] Compiling miniz-sys v0.1.10 [INFO] [stderr] Compiling synstructure v0.6.1 [INFO] [stderr] Compiling failure_derive v0.1.1 [INFO] [stderr] Checking flate2 v0.2.20 [INFO] [stderr] Checking backtrace v0.3.7 [INFO] [stderr] Checking failure v0.1.1 [INFO] [stderr] Checking conllx v0.10.2 [INFO] [stderr] Checking ambiguity-stats v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/ambiguities.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | / /// with Hamburg Dependecy Treebank labels. [INFO] [stdout] 7 | | [INFO] [stdout] | |_^ [INFO] [stdout] 8 | pub fn get_ambiguity_counts( [INFO] [stdout] | --------------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use ambiguities::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ the name `pp_ambigs` in the value namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use ambiguities_ud::*; [INFO] [stdout] | ----------------- but the name `pp_ambigs` in the value namespace is also re-exported here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ambiguous_glob_reexports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use ambiguities::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ the name `pp_head_same_label_ambigs` in the value namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use ambiguities_ud::*; [INFO] [stdout] | ----------------- but the name `pp_head_same_label_ambigs` in the value namespace is also re-exported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use ambiguities::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ the name `pp_label_same_head_ambigs` in the value namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use ambiguities_ud::*; [INFO] [stdout] | ----------------- but the name `pp_label_same_head_ambigs` in the value namespace is also re-exported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use ambiguities::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ the name `subj_obj_ambigs` in the value namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use ambiguities_ud::*; [INFO] [stdout] | ----------------- but the name `subj_obj_ambigs` in the value namespace is also re-exported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use ambiguities::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ the name `inversion_ambigs` in the value namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use ambiguities_ud::*; [INFO] [stdout] | ----------------- but the name `inversion_ambigs` in the value namespace is also re-exported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/ambiguities_ud.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | / /// with Universal Dependencies labels. [INFO] [stdout] 8 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn pp_ambigs( [INFO] [stdout] | ---------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 8 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/comp.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / /// specific properties of one or two tokens [INFO] [stdout] 6 | | [INFO] [stdout] | |_^ [INFO] [stdout] 7 | pub fn heads_and_deprels_equal(token1: &Token, token2: &Token) -> bool { [INFO] [stdout] | ------------------------------ the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / /// different relations into different files. [INFO] [stdout] 9 | | [INFO] [stdout] | |_^ [INFO] [stdout] 10 | pub fn get_deprel_ngrams( [INFO] [stdout] | ------------------------ the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/readers/ngram_graph_reader.rs:14:22 [INFO] [stdout] | [INFO] [stdout] 14 | static PP_RELATION: &'static str = "PP"; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/readers/ngram_graph_reader.rs:15:24 [INFO] [stdout] | [INFO] [stdout] 15 | static OBJP_RELATION: &'static str = "OBJP"; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/ambiguities.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | / /// with Hamburg Dependecy Treebank labels. [INFO] [stdout] 7 | | [INFO] [stdout] | |_^ [INFO] [stdout] 8 | pub fn get_ambiguity_counts( [INFO] [stdout] | --------------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use ambiguities::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ the name `pp_ambigs` in the value namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use ambiguities_ud::*; [INFO] [stdout] | ----------------- but the name `pp_ambigs` in the value namespace is also re-exported here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ambiguous_glob_reexports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use ambiguities::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ the name `pp_head_same_label_ambigs` in the value namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use ambiguities_ud::*; [INFO] [stdout] | ----------------- but the name `pp_head_same_label_ambigs` in the value namespace is also re-exported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use ambiguities::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ the name `pp_label_same_head_ambigs` in the value namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use ambiguities_ud::*; [INFO] [stdout] | ----------------- but the name `pp_label_same_head_ambigs` in the value namespace is also re-exported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use ambiguities::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ the name `subj_obj_ambigs` in the value namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use ambiguities_ud::*; [INFO] [stdout] | ----------------- but the name `subj_obj_ambigs` in the value namespace is also re-exported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use ambiguities::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ the name `inversion_ambigs` in the value namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use ambiguities_ud::*; [INFO] [stdout] | ----------------- but the name `inversion_ambigs` in the value namespace is also re-exported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/ambiguities_ud.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | / /// with Universal Dependencies labels. [INFO] [stdout] 8 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn pp_ambigs( [INFO] [stdout] | ---------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 8 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/comp.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / /// specific properties of one or two tokens [INFO] [stdout] 6 | | [INFO] [stdout] | |_^ [INFO] [stdout] 7 | pub fn heads_and_deprels_equal(token1: &Token, token2: &Token) -> bool { [INFO] [stdout] | ------------------------------ the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / /// different relations into different files. [INFO] [stdout] 9 | | [INFO] [stdout] | |_^ [INFO] [stdout] 10 | pub fn get_deprel_ngrams( [INFO] [stdout] | ------------------------ the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/readers/ngram_graph_reader.rs:14:22 [INFO] [stdout] | [INFO] [stdout] 14 | static PP_RELATION: &'static str = "PP"; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/readers/ngram_graph_reader.rs:15:24 [INFO] [stdout] | [INFO] [stdout] 15 | static OBJP_RELATION: &'static str = "OBJP"; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred [INFO] [stdout] --> src/readers/ngram_graph_reader.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | / lazy_static! { [INFO] [stdout] 29 | | static ref PP_RELATIONS: HashSet<&'static str> = [INFO] [stdout] 30 | | [PP_RELATION, OBJP_RELATION].iter().cloned().collect(); [INFO] [stdout] 31 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred [INFO] [stdout] --> src/readers/ngram_graph_reader.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | / lazy_static! { [INFO] [stdout] 29 | | static ref PP_RELATIONS: HashSet<&'static str> = [INFO] [stdout] 30 | | [PP_RELATION, OBJP_RELATION].iter().cloned().collect(); [INFO] [stdout] 31 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/pmi_map_utils.rs:13:72 [INFO] [stdout] | [INFO] [stdout] 13 | Err(why) => panic!("Couldn't open {}: {}", path.display(), why.description()), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/pmi_map_utils.rs:63:72 [INFO] [stdout] | [INFO] [stdout] 63 | Err(why) => panic!("Couldn't open {}: {}", path.display(), why.description()), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/pmi_map_utils.rs:13:72 [INFO] [stdout] | [INFO] [stdout] 13 | Err(why) => panic!("Couldn't open {}: {}", path.display(), why.description()), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/pmi_map_utils.rs:63:72 [INFO] [stdout] | [INFO] [stdout] 63 | Err(why) => panic!("Couldn't open {}: {}", path.display(), why.description()), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `head_pos` [INFO] [stdout] --> src/ambiguities.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | let head_pos = &parser_sent[parser_headidx].pos().expect("No PoS tag"); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_head_pos` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `head_pos` [INFO] [stdout] --> src/ambiguities.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | let head_pos = &parser_sent[parser_headidx].pos().expect("No PoS tag"); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_head_pos` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ambiguities.rs:402:17 [INFO] [stdout] | [INFO] [stdout] 402 | let mut verb_idx; [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: variable does not need to be mutable [INFO] [stdout] --> src/ambiguities.rs:484:17 [INFO] [stdout] | [INFO] [stdout] 484 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ambiguities.rs:569:17 [INFO] [stdout] | [INFO] [stdout] 569 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ambiguities.rs:668:17 [INFO] [stdout] | [INFO] [stdout] 668 | let mut verb = gold_sent[*verb-1].lemma(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ambiguities.rs:753:17 [INFO] [stdout] | [INFO] [stdout] 753 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ambiguities.rs:884:17 [INFO] [stdout] | [INFO] [stdout] 884 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parser_head_headpos` [INFO] [stdout] --> src/ambiguities_ud.rs:437:21 [INFO] [stdout] | [INFO] [stdout] 437 | let parser_head_headpos = &parser_sent[parser_head_headidx-1].pos().expect("No PoS tag"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser_head_headpos` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/error_analysis.rs:105:17 [INFO] [stdout] | [INFO] [stdout] 105 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:82:17 [INFO] [stdout] | [INFO] [stdout] 82 | let mut ngram; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:84:17 [INFO] [stdout] | [INFO] [stdout] 84 | let mut token_form; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:103:29 [INFO] [stdout] | [INFO] [stdout] 103 | let mut head_form; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pmi_map_utils.rs:18:13 [INFO] [stdout] | [INFO] [stdout] 18 | let mut line = reader.unwrap(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ambiguities.rs:402:17 [INFO] [stdout] | [INFO] [stdout] 402 | let mut verb_idx; [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: variable does not need to be mutable [INFO] [stdout] --> src/ambiguities.rs:484:17 [INFO] [stdout] | [INFO] [stdout] 484 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ambiguities.rs:569:17 [INFO] [stdout] | [INFO] [stdout] 569 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ambiguities.rs:668:17 [INFO] [stdout] | [INFO] [stdout] 668 | let mut verb = gold_sent[*verb-1].lemma(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ambiguities.rs:753:17 [INFO] [stdout] | [INFO] [stdout] 753 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ambiguities.rs:884:17 [INFO] [stdout] | [INFO] [stdout] 884 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `print_sents` [INFO] [stdout] --> src/tp_fp_fn.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | print_sents: bool, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_print_sents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp_fp_fn.rs:187:17 [INFO] [stdout] | [INFO] [stdout] 187 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp_fp_fn.rs:310:13 [INFO] [stdout] | [INFO] [stdout] 310 | let mut gold_headidx = gold_token.head().expect("No head"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `print_sents` [INFO] [stdout] --> src/tp_fp_fn.rs:301:5 [INFO] [stdout] | [INFO] [stdout] 301 | print_sents: bool, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_print_sents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gold_head_headidx` [INFO] [stdout] --> src/tp_fp_fn.rs:345:21 [INFO] [stdout] | [INFO] [stdout] 345 | let gold_head_headidx = &gold_sent[gold_headidx - 1].head().expect("No head"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gold_head_headidx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp_fp_fn.rs:377:17 [INFO] [stdout] | [INFO] [stdout] 377 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pp_ambigs` is never used [INFO] [stdout] --> src/ambiguities_ud.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn pp_ambigs( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pp_head_same_label_ambigs` is never used [INFO] [stdout] --> src/ambiguities_ud.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn pp_head_same_label_ambigs( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pp_label_same_head_ambigs` is never used [INFO] [stdout] --> src/ambiguities_ud.rs:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | pub fn pp_label_same_head_ambigs( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `subj_obj_ambigs` is never used [INFO] [stdout] --> src/ambiguities_ud.rs:207:8 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn subj_obj_ambigs( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inversion_ambigs` is never used [INFO] [stdout] --> src/ambiguities_ud.rs:283:8 [INFO] [stdout] | [INFO] [stdout] 283 | pub fn inversion_ambigs( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `PP_RELATION` is never used [INFO] [stdout] --> src/readers/ngram_graph_reader.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | static PP_RELATION: &'static str = "PP"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `OBJP_RELATION` is never used [INFO] [stdout] --> src/readers/ngram_graph_reader.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | static OBJP_RELATION: &'static str = "OBJP"; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parser_head_headpos` [INFO] [stdout] --> src/ambiguities_ud.rs:437:21 [INFO] [stdout] | [INFO] [stdout] 437 | let parser_head_headpos = &parser_sent[parser_head_headidx-1].pos().expect("No PoS tag"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser_head_headpos` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/error_analysis.rs:105:17 [INFO] [stdout] | [INFO] [stdout] 105 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ambiguities.rs:299:67 [INFO] [stdout] | [INFO] [stdout] 299 | if (gold_deprel == "PP") && (parser_deprel == "OBJP") { [INFO] [stdout] | ___________________________________________________________________^ [INFO] [stdout] 300 | | *errors += 1; [INFO] [stdout] 301 | | [INFO] [stdout] 302 | | if print_sents && gold_sent.len() < 11 { [INFO] [stdout] ... | [INFO] [stdout] 312 | | } else if (gold_deprel == "OBJP") && (parser_deprel == "PP") { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ambiguities.rs:312:74 [INFO] [stdout] | [INFO] [stdout] 312 | } else if (gold_deprel == "OBJP") && (parser_deprel == "PP") { [INFO] [stdout] | __________________________________________________________________________^ [INFO] [stdout] 313 | | *errors += 1; [INFO] [stdout] 314 | | [INFO] [stdout] 315 | | if print_sents && gold_sent.len() < 11 { [INFO] [stdout] ... | [INFO] [stdout] 325 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ambiguities.rs:353:67 [INFO] [stdout] | [INFO] [stdout] 353 | if (gold_deprel == "PP") && (parser_deprel == "OBJP") { [INFO] [stdout] | ___________________________________________________________________^ [INFO] [stdout] 354 | | *errors += 1; [INFO] [stdout] 355 | | [INFO] [stdout] 356 | | if print_sents && gold_sent.len() < 11 { [INFO] [stdout] ... | [INFO] [stdout] 366 | | } else if (gold_deprel == "OBJP") && (parser_deprel == "PP") { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ambiguities.rs:366:74 [INFO] [stdout] | [INFO] [stdout] 366 | } else if (gold_deprel == "OBJP") && (parser_deprel == "PP") { [INFO] [stdout] | __________________________________________________________________________^ [INFO] [stdout] 367 | | *errors += 1; [INFO] [stdout] 368 | | [INFO] [stdout] 369 | | if print_sents && gold_sent.len() < 11 { [INFO] [stdout] ... | [INFO] [stdout] 379 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `verb` after checking its variant with `is_some` [INFO] [stdout] --> src/ambiguities.rs:670:46 [INFO] [stdout] | [INFO] [stdout] 669 | if verb.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = verb` [INFO] [stdout] 670 | let freq = verbs_freqs.entry(verb.unwrap().to_string()).or_insert(0); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `gold_sent` [INFO] [stdout] --> src/ambiguities.rs:643:14 [INFO] [stdout] | [INFO] [stdout] 643 | for i in 0..gold_sent.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 643 - for i in 0..gold_sent.len() { [INFO] [stdout] 643 + for (i, ) in gold_sent.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/ambiguities.rs:702:27 [INFO] [stdout] | [INFO] [stdout] 702 | let distance = if i < gold_headidx && (gold_headidx - i) > min_distance && gold_headidx > i [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 702 - let distance = if i < gold_headidx && (gold_headidx - i) > min_distance && gold_headidx > i [INFO] [stdout] 702 + let distance = if !(i >= gold_headidx || (gold_headidx - i) <= min_distance) [INFO] [stdout] | [INFO] [stdout] 702 - let distance = if i < gold_headidx && (gold_headidx - i) > min_distance && gold_headidx > i [INFO] [stdout] 702 + let distance = if i < gold_headidx && (gold_headidx - i) > min_distance [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:82:17 [INFO] [stdout] | [INFO] [stdout] 82 | let mut ngram; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:84:17 [INFO] [stdout] | [INFO] [stdout] 84 | let mut token_form; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:103:29 [INFO] [stdout] | [INFO] [stdout] 103 | let mut head_form; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `gold_sent` [INFO] [stdout] --> src/ambiguities.rs:997:30 [INFO] [stdout] | [INFO] [stdout] 997 | for j in 0..gold_sent.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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 997 - for j in 0..gold_sent.len() { [INFO] [stdout] 997 + for (j, ) in gold_sent.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pmi_map_utils.rs:18:13 [INFO] [stdout] | [INFO] [stdout] 18 | let mut line = reader.unwrap(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `print_sents` [INFO] [stdout] --> src/tp_fp_fn.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | print_sents: bool, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_print_sents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp_fp_fn.rs:187:17 [INFO] [stdout] | [INFO] [stdout] 187 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp_fp_fn.rs:310:13 [INFO] [stdout] | [INFO] [stdout] 310 | let mut gold_headidx = gold_token.head().expect("No head"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `print_sents` [INFO] [stdout] --> src/tp_fp_fn.rs:301:5 [INFO] [stdout] | [INFO] [stdout] 301 | print_sents: bool, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_print_sents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gold_head_headidx` [INFO] [stdout] --> src/tp_fp_fn.rs:345:21 [INFO] [stdout] | [INFO] [stdout] 345 | let gold_head_headidx = &gold_sent[gold_headidx - 1].head().expect("No head"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gold_head_headidx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/ambiguities_ud.rs:368:13 [INFO] [stdout] | [INFO] [stdout] 368 | gold_headidx = gold_headidx - 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `gold_headidx -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/ambiguities_ud.rs:408:13 [INFO] [stdout] | [INFO] [stdout] 408 | gold_headidx = gold_headidx - 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `gold_headidx -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/ambiguities_ud.rs:419:13 [INFO] [stdout] | [INFO] [stdout] 419 | parser_headidx = parser_headidx - 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parser_headidx -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp_fp_fn.rs:377:17 [INFO] [stdout] | [INFO] [stdout] 377 | let mut verb_idx; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pp_ambigs` is never used [INFO] [stdout] --> src/ambiguities_ud.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn pp_ambigs( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pp_head_same_label_ambigs` is never used [INFO] [stdout] --> src/ambiguities_ud.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn pp_head_same_label_ambigs( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pp_label_same_head_ambigs` is never used [INFO] [stdout] --> src/ambiguities_ud.rs:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | pub fn pp_label_same_head_ambigs( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `subj_obj_ambigs` is never used [INFO] [stdout] --> src/ambiguities_ud.rs:207:8 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn subj_obj_ambigs( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inversion_ambigs` is never used [INFO] [stdout] --> src/ambiguities_ud.rs:283:8 [INFO] [stdout] | [INFO] [stdout] 283 | pub fn inversion_ambigs( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `PP_RELATION` is never used [INFO] [stdout] --> src/readers/ngram_graph_reader.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | static PP_RELATION: &'static str = "PP"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `OBJP_RELATION` is never used [INFO] [stdout] --> src/readers/ngram_graph_reader.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | static OBJP_RELATION: &'static str = "OBJP"; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/error_analysis.rs:11:6 [INFO] [stdout] | [INFO] [stdout] 11 | ) -> (Vec>, Vec>, Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error_analysis.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | return (errs_shared, dep_errs, pmi_errs); [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] 45 - return (errs_shared, dep_errs, pmi_errs); [INFO] [stdout] 45 + (errs_shared, dep_errs, pmi_errs) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | input_dep: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 8 - input_dep: &Vec>, [INFO] [stdout] 8 + input_dep: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | input_pmi: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 9 - input_pmi: &Vec>, [INFO] [stdout] 9 + input_pmi: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | gold: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 10 - gold: &Vec>, [INFO] [stdout] 10 + gold: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/error_analysis.rs:52:6 [INFO] [stdout] | [INFO] [stdout] 52 | ) -> (Vec>, Vec>, Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error_analysis.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | return (errs_shared, dep_errs, pmi_errs); [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] 87 - return (errs_shared, dep_errs, pmi_errs); [INFO] [stdout] 87 + (errs_shared, dep_errs, pmi_errs) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:49:16 [INFO] [stdout] | [INFO] [stdout] 49 | input_dep: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 49 - input_dep: &Vec>, [INFO] [stdout] 49 + input_dep: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:50:16 [INFO] [stdout] | [INFO] [stdout] 50 | input_pmi: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 50 - input_pmi: &Vec>, [INFO] [stdout] 50 + input_pmi: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | gold: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 51 - gold: &Vec>, [INFO] [stdout] 51 + gold: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> src/error_analysis.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | / for subj_obj_idxs in dep_inv.iter() { [INFO] [stdout] 65 | | if let Some(subj_obj_idxs) = subj_obj_idxs { [INFO] [stdout] 66 | | let (subj, obj) = subj_obj_idxs; [INFO] [stdout] 67 | | if pmi_inv.contains(&Some(*subj_obj_idxs)) { [INFO] [stdout] ... | [INFO] [stdout] 76 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/error_analysis.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | / if let Some(subj_obj_idxs) = subj_obj_idxs { [INFO] [stdout] 66 | | let (subj, obj) = subj_obj_idxs; [INFO] [stdout] 67 | | if pmi_inv.contains(&Some(*subj_obj_idxs)) { [INFO] [stdout] ... | [INFO] [stdout] 75 | | } [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] 64 ~ for subj_obj_idxs in dep_inv.iter().flatten() { [INFO] [stdout] 65 + let (subj, obj) = subj_obj_idxs; [INFO] [stdout] 66 + if pmi_inv.contains(&Some(*subj_obj_idxs)) { [INFO] [stdout] 67 + // Both in dep_inv and pmi_inv [INFO] [stdout] 68 + add_err_sentence_tok2(&input_dep[sent_idx], *subj, *obj, &mut errs_shared); [INFO] [stdout] 69 + pmi_inv.remove(&Some(*subj_obj_idxs)); [INFO] [stdout] 70 + } else { [INFO] [stdout] 71 + // Only in dep_inv [INFO] [stdout] 72 + add_err_sentence_tok2(&input_dep[sent_idx], *subj, *obj, &mut dep_errs); [INFO] [stdout] 73 + } [INFO] [stdout] 74 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> src/error_analysis.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | / for subj_obj_idxs in pmi_inv.iter() { [INFO] [stdout] 79 | | // Only in pmi_inv [INFO] [stdout] 80 | | if let Some(subj_obj_idxs) = subj_obj_idxs { [INFO] [stdout] 81 | | let (subj, obj) = subj_obj_idxs; [INFO] [stdout] ... | [INFO] [stdout] 84 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/error_analysis.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | / if let Some(subj_obj_idxs) = subj_obj_idxs { [INFO] [stdout] 81 | | let (subj, obj) = subj_obj_idxs; [INFO] [stdout] 82 | | add_err_sentence_tok2(&input_pmi[sent_idx], *subj, *obj, &mut pmi_errs); [INFO] [stdout] 83 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 78 ~ for subj_obj_idxs in pmi_inv.iter().flatten() { [INFO] [stdout] 79 + let (subj, obj) = subj_obj_idxs; [INFO] [stdout] 80 + add_err_sentence_tok2(&input_pmi[sent_idx], *subj, *obj, &mut pmi_errs); [INFO] [stdout] 81 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:154:33 [INFO] [stdout] | [INFO] [stdout] 154 | fn add_err_sentence(input_sent: &Vec, tok_idx: usize, err_sents: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 154 - fn add_err_sentence(input_sent: &Vec, tok_idx: usize, err_sents: &mut Vec>) { [INFO] [stdout] 154 + fn add_err_sentence(input_sent: &[Token], tok_idx: usize, err_sents: &mut Vec>) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is used to index `input_sent` [INFO] [stdout] --> src/error_analysis.rs:156:16 [INFO] [stdout] | [INFO] [stdout] 156 | for idx in 0..input_sent.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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 156 - for idx in 0..input_sent.len() { [INFO] [stdout] 156 + for (idx, ) in input_sent.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:174:17 [INFO] [stdout] | [INFO] [stdout] 174 | input_sent: &Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 174 - input_sent: &Vec, [INFO] [stdout] 174 + input_sent: &[Token], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is used to index `input_sent` [INFO] [stdout] --> src/error_analysis.rs:180:16 [INFO] [stdout] | [INFO] [stdout] 180 | for idx in 0..input_sent.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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 180 - for idx in 0..input_sent.len() { [INFO] [stdout] 180 + for (idx, ) in input_sent.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/error_analysis.rs:186:27 [INFO] [stdout] | [INFO] [stdout] 186 | if idx == tok_idx { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 187 | | let token_str = format!("*{}_{}_{}*", form, head, deprel); [INFO] [stdout] 188 | | sent.push(token_str); [INFO] [stdout] 189 | | } else if idx == tok_idx2 { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/error_analysis.rs:189:35 [INFO] [stdout] | [INFO] [stdout] 189 | } else if idx == tok_idx2 { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 190 | | let token_str = format!("*{}_{}_{}*", form, head, deprel); [INFO] [stdout] 191 | | sent.push(token_str); [INFO] [stdout] 192 | | } else { [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ambiguities.rs:299:67 [INFO] [stdout] | [INFO] [stdout] 299 | if (gold_deprel == "PP") && (parser_deprel == "OBJP") { [INFO] [stdout] | ___________________________________________________________________^ [INFO] [stdout] 300 | | *errors += 1; [INFO] [stdout] 301 | | [INFO] [stdout] 302 | | if print_sents && gold_sent.len() < 11 { [INFO] [stdout] ... | [INFO] [stdout] 312 | | } else if (gold_deprel == "OBJP") && (parser_deprel == "PP") { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ambiguities.rs:312:74 [INFO] [stdout] | [INFO] [stdout] 312 | } else if (gold_deprel == "OBJP") && (parser_deprel == "PP") { [INFO] [stdout] | __________________________________________________________________________^ [INFO] [stdout] 313 | | *errors += 1; [INFO] [stdout] 314 | | [INFO] [stdout] 315 | | if print_sents && gold_sent.len() < 11 { [INFO] [stdout] ... | [INFO] [stdout] 325 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/error_analysis.rs:218:12 [INFO] [stdout] | [INFO] [stdout] 218 | if &gold_deprel == &label { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 218 - if &gold_deprel == &label { [INFO] [stdout] 218 + if gold_deprel == label { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ambiguities.rs:353:67 [INFO] [stdout] | [INFO] [stdout] 353 | if (gold_deprel == "PP") && (parser_deprel == "OBJP") { [INFO] [stdout] | ___________________________________________________________________^ [INFO] [stdout] 354 | | *errors += 1; [INFO] [stdout] 355 | | [INFO] [stdout] 356 | | if print_sents && gold_sent.len() < 11 { [INFO] [stdout] ... | [INFO] [stdout] 366 | | } else if (gold_deprel == "OBJP") && (parser_deprel == "PP") { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ambiguities.rs:366:74 [INFO] [stdout] | [INFO] [stdout] 366 | } else if (gold_deprel == "OBJP") && (parser_deprel == "PP") { [INFO] [stdout] | __________________________________________________________________________^ [INFO] [stdout] 367 | | *errors += 1; [INFO] [stdout] 368 | | [INFO] [stdout] 369 | | if print_sents && gold_sent.len() < 11 { [INFO] [stdout] ... | [INFO] [stdout] 379 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/io.rs:82:21 [INFO] [stdout] | [INFO] [stdout] 82 | if fs::metadata(&output_filename).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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 `if` statement can be collapsed [INFO] [stdout] --> src/io.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | / if path [INFO] [stdout] 92 | | .to_str() [INFO] [stdout] 93 | | .unwrap() [INFO] [stdout] 94 | | .clone() [INFO] [stdout] ... | [INFO] [stdout] 112 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 96 ~ .ends_with(file_ending) [INFO] [stdout] 97 ~ && path.is_file() { [INFO] [stdout] 98 | let f = File::open(&path)?; [INFO] [stdout] ... [INFO] [stdout] 109 | } [INFO] [stdout] 110 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/io.rs:117:37 [INFO] [stdout] | [INFO] [stdout] 117 | let mut file = File::create(&output_filename)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/io.rs:121:17 [INFO] [stdout] | [INFO] [stdout] 121 | / if path [INFO] [stdout] 122 | | .to_str() [INFO] [stdout] 123 | | .unwrap() [INFO] [stdout] 124 | | .clone() [INFO] [stdout] ... | [INFO] [stdout] 142 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 126 ~ .ends_with(file_ending) [INFO] [stdout] 127 ~ && path.is_file() { [INFO] [stdout] 128 | let f = File::open(&path)?; [INFO] [stdout] ... [INFO] [stdout] 139 | } [INFO] [stdout] 140 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/io.rs:155:21 [INFO] [stdout] | [INFO] [stdout] 155 | if fs::metadata(&output_filename).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/io.rs:164:17 [INFO] [stdout] | [INFO] [stdout] 164 | / if path [INFO] [stdout] 165 | | .to_str() [INFO] [stdout] 166 | | .unwrap() [INFO] [stdout] 167 | | .clone() [INFO] [stdout] ... | [INFO] [stdout] 185 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 169 ~ .ends_with(file_ending) [INFO] [stdout] 170 ~ && path.is_file() { [INFO] [stdout] 171 | let f = File::open(&path)?; [INFO] [stdout] ... [INFO] [stdout] 182 | } [INFO] [stdout] 183 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/io.rs:190:37 [INFO] [stdout] | [INFO] [stdout] 190 | let mut file = File::create(&output_filename)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/io.rs:194:17 [INFO] [stdout] | [INFO] [stdout] 194 | / if path [INFO] [stdout] 195 | | .to_str() [INFO] [stdout] 196 | | .unwrap() [INFO] [stdout] 197 | | .clone() [INFO] [stdout] ... | [INFO] [stdout] 215 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 199 ~ .ends_with(file_ending) [INFO] [stdout] 200 ~ && path.is_file() { [INFO] [stdout] 201 | let f = File::open(&path)?; [INFO] [stdout] ... [INFO] [stdout] 212 | } [INFO] [stdout] 213 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/io.rs:228:21 [INFO] [stdout] | [INFO] [stdout] 228 | if fs::metadata(&output_filename).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `verb` after checking its variant with `is_some` [INFO] [stdout] --> src/ambiguities.rs:670:46 [INFO] [stdout] | [INFO] [stdout] 669 | if verb.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = verb` [INFO] [stdout] 670 | let freq = verbs_freqs.entry(verb.unwrap().to_string()).or_insert(0); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `gold_sent` [INFO] [stdout] --> src/ambiguities.rs:643:14 [INFO] [stdout] | [INFO] [stdout] 643 | for i in 0..gold_sent.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 643 - for i in 0..gold_sent.len() { [INFO] [stdout] 643 + for (i, ) in gold_sent.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/io.rs:237:17 [INFO] [stdout] | [INFO] [stdout] 237 | / if path [INFO] [stdout] 238 | | .to_str() [INFO] [stdout] 239 | | .unwrap() [INFO] [stdout] 240 | | .clone() [INFO] [stdout] ... | [INFO] [stdout] 261 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 242 ~ .ends_with(file_ending) [INFO] [stdout] 243 ~ && path.is_file() { [INFO] [stdout] 244 | let f = File::open(&path)?; [INFO] [stdout] ... [INFO] [stdout] 258 | } [INFO] [stdout] 259 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/io.rs:266:37 [INFO] [stdout] | [INFO] [stdout] 266 | let mut file = File::create(&output_filename)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/io.rs:270:17 [INFO] [stdout] | [INFO] [stdout] 270 | / if path [INFO] [stdout] 271 | | .to_str() [INFO] [stdout] 272 | | .unwrap() [INFO] [stdout] 273 | | .clone() [INFO] [stdout] ... | [INFO] [stdout] 294 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 275 ~ .ends_with(file_ending) [INFO] [stdout] 276 ~ && path.is_file() { [INFO] [stdout] 277 | let f = File::open(&path)?; [INFO] [stdout] ... [INFO] [stdout] 291 | } [INFO] [stdout] 292 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/ambiguities.rs:702:27 [INFO] [stdout] | [INFO] [stdout] 702 | let distance = if i < gold_headidx && (gold_headidx - i) > min_distance && gold_headidx > i [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 702 - let distance = if i < gold_headidx && (gold_headidx - i) > min_distance && gold_headidx > i [INFO] [stdout] 702 + let distance = if !(i >= gold_headidx || (gold_headidx - i) <= min_distance) [INFO] [stdout] | [INFO] [stdout] 702 - let distance = if i < gold_headidx && (gold_headidx - i) > min_distance && gold_headidx > i [INFO] [stdout] 702 + let distance = if i < gold_headidx && (gold_headidx - i) > min_distance [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/io.rs:336:9 [INFO] [stdout] | [INFO] [stdout] 336 | / if !association_strengths.contains_key(&triple) { [INFO] [stdout] 337 | | association_strengths.insert(triple, line[3].parse::().unwrap()); [INFO] [stdout] 338 | | } [INFO] [stdout] | |_________^ help: try: `association_strengths.entry(triple).or_insert_with(|| line[3].parse::().unwrap());` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/io.rs:346:6 [INFO] [stdout] | [INFO] [stdout] 346 | ) -> io::Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/io.rs:375:9 [INFO] [stdout] | [INFO] [stdout] 375 | / if !association_strengths.contains_key(&triple) { [INFO] [stdout] 376 | | association_strengths.insert(triple, line[3].parse::().unwrap()); [INFO] [stdout] 377 | | } [INFO] [stdout] | |_________^ help: try: `association_strengths.entry(triple).or_insert_with(|| line[3].parse::().unwrap());` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:23:32 [INFO] [stdout] | [INFO] [stdout] 23 | ngram.push_str(&cur_token.form()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `cur_token.form()` [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: usage of a legacy numeric method [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:30:33 [INFO] [stdout] | [INFO] [stdout] 30 | let mut prev_head = usize::max_value(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 30 - let mut prev_head = usize::max_value(); [INFO] [stdout] 30 + let mut prev_head = usize::MAX; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:42:46 [INFO] [stdout] | [INFO] [stdout] 42 | ... deprels.push_str(&cur_token.head_rel().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `cur_token.head_rel().unwrap()` [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: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:43:29 [INFO] [stdout] | [INFO] [stdout] 43 | ... deprels.push_str("_"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `deprels.push('_')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:45:29 [INFO] [stdout] | [INFO] [stdout] 45 | ... ngram.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `ngram.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:47:48 [INFO] [stdout] | [INFO] [stdout] 47 | ... ngram.push_str(&cur_token.form()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `cur_token.form()` [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: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | ngram.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `ngram.push('\n')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `gold_sent` [INFO] [stdout] --> src/ambiguities.rs:997:30 [INFO] [stdout] | [INFO] [stdout] 997 | for j in 0..gold_sent.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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 997 - for j in 0..gold_sent.len() { [INFO] [stdout] 997 + for (j, ) in gold_sent.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/readers/sentence_tree.rs:7:32 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn from_sentence(sentence: &Vec) -> SentenceTree { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 7 - pub fn from_sentence(sentence: &Vec) -> SentenceTree { [INFO] [stdout] 7 + pub fn from_sentence(sentence: &[Token]) -> SentenceTree { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary operation [INFO] [stdout] --> src/readers/sentence_tree.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | &sentence_tree.push(root); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: statement can be reduced to: `sentence_tree.push(root);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stdout] = note: `#[warn(clippy::unnecessary_operation)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is used to index `sentence` [INFO] [stdout] --> src/readers/sentence_tree.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | for idx in 0..sentence.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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 14 - for idx in 0..sentence.len() { [INFO] [stdout] 14 + for (idx, ) in sentence.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary operation [INFO] [stdout] --> src/readers/sentence_tree.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | &sentence_tree.push(Node::new(&sentence[idx].clone(), idx)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: statement can be reduced to: `sentence_tree.push(Node::new(&sentence[idx].clone(), idx));` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/readers/ngram_graph_reader.rs:65:48 [INFO] [stdout] | [INFO] [stdout] 65 | let sentence_graph = sentence_to_graph(&sentence, false); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `sentence` [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: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/pmi_map_utils.rs:21:34 [INFO] [stdout] | [INFO] [stdout] 21 | for i in 0..ngram_size + 1 as usize { [INFO] [stdout] | ^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/pmi_map_utils.rs:24:36 [INFO] [stdout] | [INFO] [stdout] 24 | ngram.push_str(&split_line.next().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `split_line.next().unwrap()` [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: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/pmi_map_utils.rs:26:21 [INFO] [stdout] | [INFO] [stdout] 26 | ngram.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `ngram.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/pmi_map_utils.rs:27:36 [INFO] [stdout] | [INFO] [stdout] 27 | ngram.push_str(&split_line.next().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `split_line.next().unwrap()` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/pmi_map_utils.rs:41:33 [INFO] [stdout] | [INFO] [stdout] 41 | let mut file = File::create(&output_file)?; [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `output_file` [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] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/pmi_map_utils.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | line.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `line.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/pmi_map_utils.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | line.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `line.push('\n')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/reader.rs:8:24 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn ngrams_to_files<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] 9 | file_name_template: &'a str, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 8 ~ pub fn ngrams_to_files( [INFO] [stdout] 9 ~ file_name_template: &str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/reader.rs:31:23 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn ngrams_to_file<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] 32 | file_name_template: &'a str, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 31 ~ pub fn ngrams_to_file( [INFO] [stdout] 32 ~ file_name_template: &str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:65:29 [INFO] [stdout] | [INFO] [stdout] 65 | ... unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:83:29 [INFO] [stdout] | [INFO] [stdout] 83 | ... unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:101:29 [INFO] [stdout] | [INFO] [stdout] 101 | ... unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:119:29 [INFO] [stdout] | [INFO] [stdout] 119 | ... unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:137:29 [INFO] [stdout] | [INFO] [stdout] 137 | ... unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:155:29 [INFO] [stdout] | [INFO] [stdout] 155 | ... unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:158:25 [INFO] [stdout] | [INFO] [stdout] 158 | unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:160:21 [INFO] [stdout] | [INFO] [stdout] 160 | pp_count = pp_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `pp_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `example_sents_c` [INFO] [stdout] --> src/pps.rs:170:14 [INFO] [stdout] | [INFO] [stdout] 170 | for i in 0..7 { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 170 - for i in 0..7 { [INFO] [stdout] 170 + for (i, ) in example_sents_c.iter().enumerate().take(7) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `example_sents_c` [INFO] [stdout] --> src/pps.rs:173:22 [INFO] [stdout] | [INFO] [stdout] 173 | for j in 0..10 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 173 - for j in 0..10 { [INFO] [stdout] 173 + for in example_sents_c.iter().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `example_sents_lv` [INFO] [stdout] --> src/pps.rs:183:14 [INFO] [stdout] | [INFO] [stdout] 183 | for i in 0..7 { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 183 - for i in 0..7 { [INFO] [stdout] 183 + for (i, ) in example_sents_lv.iter().enumerate().take(7) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `example_sents_lv` [INFO] [stdout] --> src/pps.rs:186:22 [INFO] [stdout] | [INFO] [stdout] 186 | for j in 0..10 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 186 - for j in 0..10 { [INFO] [stdout] 186 + for in example_sents_lv.iter().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `example_sents_vf` [INFO] [stdout] --> src/pps.rs:196:14 [INFO] [stdout] | [INFO] [stdout] 196 | for i in 0..7 { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 196 - for i in 0..7 { [INFO] [stdout] 196 + for (i, ) in example_sents_vf.iter().enumerate().take(7) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/ambiguities_ud.rs:368:13 [INFO] [stdout] | [INFO] [stdout] 368 | gold_headidx = gold_headidx - 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `gold_headidx -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `example_sents_vf` [INFO] [stdout] --> src/pps.rs:199:22 [INFO] [stdout] | [INFO] [stdout] 199 | for j in 0..10 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 199 - for j in 0..10 { [INFO] [stdout] 199 + for in example_sents_vf.iter().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `example_sents_mf` [INFO] [stdout] --> src/pps.rs:209:14 [INFO] [stdout] | [INFO] [stdout] 209 | for i in 0..7 { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 209 - for i in 0..7 { [INFO] [stdout] 209 + for (i, ) in example_sents_mf.iter().enumerate().take(7) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/ambiguities_ud.rs:408:13 [INFO] [stdout] | [INFO] [stdout] 408 | gold_headidx = gold_headidx - 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `gold_headidx -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `example_sents_mf` [INFO] [stdout] --> src/pps.rs:212:22 [INFO] [stdout] | [INFO] [stdout] 212 | for j in 0..10 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 212 - for j in 0..10 { [INFO] [stdout] 212 + for in example_sents_mf.iter().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/ambiguities_ud.rs:419:13 [INFO] [stdout] | [INFO] [stdout] 419 | parser_headidx = parser_headidx - 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parser_headidx -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `example_sents_nf` [INFO] [stdout] --> src/pps.rs:222:14 [INFO] [stdout] | [INFO] [stdout] 222 | for i in 0..7 { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 222 - for i in 0..7 { [INFO] [stdout] 222 + for (i, ) in example_sents_nf.iter().enumerate().take(7) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `example_sents_nf` [INFO] [stdout] --> src/pps.rs:225:22 [INFO] [stdout] | [INFO] [stdout] 225 | for j in 0..10 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 225 - for j in 0..10 { [INFO] [stdout] 225 + for in example_sents_nf.iter().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `example_sents_vc` [INFO] [stdout] --> src/pps.rs:235:14 [INFO] [stdout] | [INFO] [stdout] 235 | for i in 0..7 { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 235 - for i in 0..7 { [INFO] [stdout] 235 + for (i, ) in example_sents_vc.iter().enumerate().take(7) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/error_analysis.rs:11:6 [INFO] [stdout] | [INFO] [stdout] 11 | ) -> (Vec>, Vec>, Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error_analysis.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | return (errs_shared, dep_errs, pmi_errs); [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] 45 - return (errs_shared, dep_errs, pmi_errs); [INFO] [stdout] 45 + (errs_shared, dep_errs, pmi_errs) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | input_dep: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 8 - input_dep: &Vec>, [INFO] [stdout] 8 + input_dep: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | input_pmi: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 9 - input_pmi: &Vec>, [INFO] [stdout] 9 + input_pmi: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `example_sents_vc` [INFO] [stdout] --> src/pps.rs:238:22 [INFO] [stdout] | [INFO] [stdout] 238 | for j in 0..10 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 238 - for j in 0..10 { [INFO] [stdout] 238 + for in example_sents_vc.iter().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:17:20 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn las(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 17 - pub fn las(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] 17 + pub fn las(output: &[Vec], gold: &Vec>) -> f32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:17:44 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn las(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 17 - pub fn las(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] 17 + pub fn las(output: &Vec>, gold: &[Vec]) -> f32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | gold: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 10 - gold: &Vec>, [INFO] [stdout] 10 + gold: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:35:20 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn uas(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 35 - pub fn uas(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] 35 + pub fn uas(output: &[Vec], gold: &Vec>) -> f32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/error_analysis.rs:52:6 [INFO] [stdout] | [INFO] [stdout] 52 | ) -> (Vec>, Vec>, Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:35:44 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn uas(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 35 - pub fn uas(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] 35 + pub fn uas(output: &Vec>, gold: &[Vec]) -> f32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:51:24 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn las_uas(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 51 - pub fn las_uas(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] 51 + pub fn las_uas(output: &[Vec], gold: &Vec>) -> (f32, f32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:51:48 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn las_uas(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 51 - pub fn las_uas(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] 51 + pub fn las_uas(output: &Vec>, gold: &[Vec]) -> (f32, f32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error_analysis.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | return (errs_shared, dep_errs, pmi_errs); [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] 87 - return (errs_shared, dep_errs, pmi_errs); [INFO] [stdout] 87 + (errs_shared, dep_errs, pmi_errs) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:49:16 [INFO] [stdout] | [INFO] [stdout] 49 | input_dep: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 49 - input_dep: &Vec>, [INFO] [stdout] 49 + input_dep: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:50:16 [INFO] [stdout] | [INFO] [stdout] 50 | input_pmi: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 50 - input_pmi: &Vec>, [INFO] [stdout] 50 + input_pmi: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | gold: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 51 - gold: &Vec>, [INFO] [stdout] 51 + gold: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> src/error_analysis.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | / for subj_obj_idxs in dep_inv.iter() { [INFO] [stdout] 65 | | if let Some(subj_obj_idxs) = subj_obj_idxs { [INFO] [stdout] 66 | | let (subj, obj) = subj_obj_idxs; [INFO] [stdout] 67 | | if pmi_inv.contains(&Some(*subj_obj_idxs)) { [INFO] [stdout] ... | [INFO] [stdout] 76 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/error_analysis.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | / if let Some(subj_obj_idxs) = subj_obj_idxs { [INFO] [stdout] 66 | | let (subj, obj) = subj_obj_idxs; [INFO] [stdout] 67 | | if pmi_inv.contains(&Some(*subj_obj_idxs)) { [INFO] [stdout] ... | [INFO] [stdout] 75 | | } [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] 64 ~ for subj_obj_idxs in dep_inv.iter().flatten() { [INFO] [stdout] 65 + let (subj, obj) = subj_obj_idxs; [INFO] [stdout] 66 + if pmi_inv.contains(&Some(*subj_obj_idxs)) { [INFO] [stdout] 67 + // Both in dep_inv and pmi_inv [INFO] [stdout] 68 + add_err_sentence_tok2(&input_dep[sent_idx], *subj, *obj, &mut errs_shared); [INFO] [stdout] 69 + pmi_inv.remove(&Some(*subj_obj_idxs)); [INFO] [stdout] 70 + } else { [INFO] [stdout] 71 + // Only in dep_inv [INFO] [stdout] 72 + add_err_sentence_tok2(&input_dep[sent_idx], *subj, *obj, &mut dep_errs); [INFO] [stdout] 73 + } [INFO] [stdout] 74 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:74:33 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn las_uas_no_punct(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 74 - pub fn las_uas_no_punct(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] 74 + pub fn las_uas_no_punct(output: &[Vec], gold: &Vec>) -> (f32, f32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:74:57 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn las_uas_no_punct(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 74 - pub fn las_uas_no_punct(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] 74 + pub fn las_uas_no_punct(output: &Vec>, gold: &[Vec]) -> (f32, f32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> src/error_analysis.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | / for subj_obj_idxs in pmi_inv.iter() { [INFO] [stdout] 79 | | // Only in pmi_inv [INFO] [stdout] 80 | | if let Some(subj_obj_idxs) = subj_obj_idxs { [INFO] [stdout] 81 | | let (subj, obj) = subj_obj_idxs; [INFO] [stdout] ... | [INFO] [stdout] 84 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/error_analysis.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | / if let Some(subj_obj_idxs) = subj_obj_idxs { [INFO] [stdout] 81 | | let (subj, obj) = subj_obj_idxs; [INFO] [stdout] 82 | | add_err_sentence_tok2(&input_pmi[sent_idx], *subj, *obj, &mut pmi_errs); [INFO] [stdout] 83 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 78 ~ for subj_obj_idxs in pmi_inv.iter().flatten() { [INFO] [stdout] 79 + let (subj, obj) = subj_obj_idxs; [INFO] [stdout] 80 + add_err_sentence_tok2(&input_pmi[sent_idx], *subj, *obj, &mut pmi_errs); [INFO] [stdout] 81 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:99:29 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn per_sent_las(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 99 - pub fn per_sent_las(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] 99 + pub fn per_sent_las(output: &[Vec], gold: &Vec>) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:99:53 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn per_sent_las(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 99 - pub fn per_sent_las(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] 99 + pub fn per_sent_las(output: &Vec>, gold: &[Vec]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:120:29 [INFO] [stdout] | [INFO] [stdout] 120 | pub fn per_sent_uas(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 120 - pub fn per_sent_uas(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] 120 + pub fn per_sent_uas(output: &[Vec], gold: &Vec>) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:120:53 [INFO] [stdout] | [INFO] [stdout] 120 | pub fn per_sent_uas(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 120 - pub fn per_sent_uas(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] 120 + pub fn per_sent_uas(output: &Vec>, gold: &[Vec]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:154:33 [INFO] [stdout] | [INFO] [stdout] 154 | fn add_err_sentence(input_sent: &Vec, tok_idx: usize, err_sents: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 154 - fn add_err_sentence(input_sent: &Vec, tok_idx: usize, err_sents: &mut Vec>) { [INFO] [stdout] 154 + fn add_err_sentence(input_sent: &[Token], tok_idx: usize, err_sents: &mut Vec>) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is used to index `input_sent` [INFO] [stdout] --> src/error_analysis.rs:156:16 [INFO] [stdout] | [INFO] [stdout] 156 | for idx in 0..input_sent.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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 156 - for idx in 0..input_sent.len() { [INFO] [stdout] 156 + for (idx, ) in input_sent.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp_fp_fn.rs:12:17 [INFO] [stdout] | [INFO] [stdout] 12 | gold_sents: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 12 - gold_sents: &Vec>, [INFO] [stdout] 12 + gold_sents: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp_fp_fn.rs:13:19 [INFO] [stdout] | [INFO] [stdout] 13 | parser_sents: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 13 - parser_sents: &Vec>, [INFO] [stdout] 13 + parser_sents: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/error_analysis.rs:174:17 [INFO] [stdout] | [INFO] [stdout] 174 | input_sent: &Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 174 - input_sent: &Vec, [INFO] [stdout] 174 + input_sent: &[Token], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is used to index `input_sent` [INFO] [stdout] --> src/error_analysis.rs:180:16 [INFO] [stdout] | [INFO] [stdout] 180 | for idx in 0..input_sent.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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 180 - for idx in 0..input_sent.len() { [INFO] [stdout] 180 + for (idx, ) in input_sent.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/error_analysis.rs:186:27 [INFO] [stdout] | [INFO] [stdout] 186 | if idx == tok_idx { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 187 | | let token_str = format!("*{}_{}_{}*", form, head, deprel); [INFO] [stdout] 188 | | sent.push(token_str); [INFO] [stdout] 189 | | } else if idx == tok_idx2 { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/error_analysis.rs:189:35 [INFO] [stdout] | [INFO] [stdout] 189 | } else if idx == tok_idx2 { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 190 | | let token_str = format!("*{}_{}_{}*", form, head, deprel); [INFO] [stdout] 191 | | sent.push(token_str); [INFO] [stdout] 192 | | } else { [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/error_analysis.rs:218:12 [INFO] [stdout] | [INFO] [stdout] 218 | if &gold_deprel == &label { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 218 - if &gold_deprel == &label { [INFO] [stdout] 218 + if gold_deprel == label { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/io.rs:82:21 [INFO] [stdout] | [INFO] [stdout] 82 | if fs::metadata(&output_filename).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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 `if` statement can be collapsed [INFO] [stdout] --> src/io.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | / if path [INFO] [stdout] 92 | | .to_str() [INFO] [stdout] 93 | | .unwrap() [INFO] [stdout] 94 | | .clone() [INFO] [stdout] ... | [INFO] [stdout] 112 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 96 ~ .ends_with(file_ending) [INFO] [stdout] 97 ~ && path.is_file() { [INFO] [stdout] 98 | let f = File::open(&path)?; [INFO] [stdout] ... [INFO] [stdout] 109 | } [INFO] [stdout] 110 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/io.rs:117:37 [INFO] [stdout] | [INFO] [stdout] 117 | let mut file = File::create(&output_filename)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/io.rs:121:17 [INFO] [stdout] | [INFO] [stdout] 121 | / if path [INFO] [stdout] 122 | | .to_str() [INFO] [stdout] 123 | | .unwrap() [INFO] [stdout] 124 | | .clone() [INFO] [stdout] ... | [INFO] [stdout] 142 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 126 ~ .ends_with(file_ending) [INFO] [stdout] 127 ~ && path.is_file() { [INFO] [stdout] 128 | let f = File::open(&path)?; [INFO] [stdout] ... [INFO] [stdout] 139 | } [INFO] [stdout] 140 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/io.rs:155:21 [INFO] [stdout] | [INFO] [stdout] 155 | if fs::metadata(&output_filename).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/io.rs:164:17 [INFO] [stdout] | [INFO] [stdout] 164 | / if path [INFO] [stdout] 165 | | .to_str() [INFO] [stdout] 166 | | .unwrap() [INFO] [stdout] 167 | | .clone() [INFO] [stdout] ... | [INFO] [stdout] 185 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 169 ~ .ends_with(file_ending) [INFO] [stdout] 170 ~ && path.is_file() { [INFO] [stdout] 171 | let f = File::open(&path)?; [INFO] [stdout] ... [INFO] [stdout] 182 | } [INFO] [stdout] 183 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/tp_fp_fn.rs:341:16 [INFO] [stdout] | [INFO] [stdout] 341 | } else if gold_deprel == "case" && gold_pos.starts_with("ADP-AP") { [INFO] [stdout] | ________________^ [INFO] [stdout] 342 | | [INFO] [stdout] 343 | | if gold_headidx > 0 { [INFO] [stdout] 344 | | let gold_head_deprel = &gold_sent[gold_headidx - 1].head_rel().expect("No deprel").to_string(); [INFO] [stdout] ... | [INFO] [stdout] 351 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 341 ~ } else if gold_deprel == "case" && gold_pos.starts_with("ADP-AP") [INFO] [stdout] 342 | [INFO] [stdout] 343 ~ && gold_headidx > 0 { [INFO] [stdout] 344 | let gold_head_deprel = &gold_sent[gold_headidx - 1].head_rel().expect("No deprel").to_string(); [INFO] [stdout] ... [INFO] [stdout] 349 | } [INFO] [stdout] 350 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/io.rs:190:37 [INFO] [stdout] | [INFO] [stdout] 190 | let mut file = File::create(&output_filename)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/io.rs:194:17 [INFO] [stdout] | [INFO] [stdout] 194 | / if path [INFO] [stdout] 195 | | .to_str() [INFO] [stdout] 196 | | .unwrap() [INFO] [stdout] 197 | | .clone() [INFO] [stdout] ... | [INFO] [stdout] 215 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 199 ~ .ends_with(file_ending) [INFO] [stdout] 200 ~ && path.is_file() { [INFO] [stdout] 201 | let f = File::open(&path)?; [INFO] [stdout] ... [INFO] [stdout] 212 | } [INFO] [stdout] 213 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/io.rs:228:21 [INFO] [stdout] | [INFO] [stdout] 228 | if fs::metadata(&output_filename).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/io.rs:237:17 [INFO] [stdout] | [INFO] [stdout] 237 | / if path [INFO] [stdout] 238 | | .to_str() [INFO] [stdout] 239 | | .unwrap() [INFO] [stdout] 240 | | .clone() [INFO] [stdout] ... | [INFO] [stdout] 261 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 242 ~ .ends_with(file_ending) [INFO] [stdout] 243 ~ && path.is_file() { [INFO] [stdout] 244 | let f = File::open(&path)?; [INFO] [stdout] ... [INFO] [stdout] 258 | } [INFO] [stdout] 259 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/io.rs:266:37 [INFO] [stdout] | [INFO] [stdout] 266 | let mut file = File::create(&output_filename)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/io.rs:270:17 [INFO] [stdout] | [INFO] [stdout] 270 | / if path [INFO] [stdout] 271 | | .to_str() [INFO] [stdout] 272 | | .unwrap() [INFO] [stdout] 273 | | .clone() [INFO] [stdout] ... | [INFO] [stdout] 294 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 275 ~ .ends_with(file_ending) [INFO] [stdout] 276 ~ && path.is_file() { [INFO] [stdout] 277 | let f = File::open(&path)?; [INFO] [stdout] ... [INFO] [stdout] 291 | } [INFO] [stdout] 292 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:63:54 [INFO] [stdout] | [INFO] [stdout] 63 | let filename = path.to_str().unwrap().clone().to_string(); [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:70:45 [INFO] [stdout] | [INFO] [stdout] 70 | let filename = dir.to_str().unwrap().clone().to_string(); [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:93:30 [INFO] [stdout] | [INFO] [stdout] 93 | .unwrap() [INFO] [stdout] | ______________________________^ [INFO] [stdout] 94 | | .clone() [INFO] [stdout] | |____________________________^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/io.rs:109:29 [INFO] [stdout] | [INFO] [stdout] 109 | ... writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel, pmi); [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] 109 | let _ = writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel, pmi); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/io.rs:336:9 [INFO] [stdout] | [INFO] [stdout] 336 | / if !association_strengths.contains_key(&triple) { [INFO] [stdout] 337 | | association_strengths.insert(triple, line[3].parse::().unwrap()); [INFO] [stdout] 338 | | } [INFO] [stdout] | |_________^ help: try: `association_strengths.entry(triple).or_insert_with(|| line[3].parse::().unwrap());` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:123:30 [INFO] [stdout] | [INFO] [stdout] 123 | .unwrap() [INFO] [stdout] | ______________________________^ [INFO] [stdout] 124 | | .clone() [INFO] [stdout] | |____________________________^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/io.rs:139:29 [INFO] [stdout] | [INFO] [stdout] 139 | ... writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel, pmi); [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] 139 | let _ = writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel, pmi); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/io.rs:346:6 [INFO] [stdout] | [INFO] [stdout] 346 | ) -> io::Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/io.rs:375:9 [INFO] [stdout] | [INFO] [stdout] 375 | / if !association_strengths.contains_key(&triple) { [INFO] [stdout] 376 | | association_strengths.insert(triple, line[3].parse::().unwrap()); [INFO] [stdout] 377 | | } [INFO] [stdout] | |_________^ help: try: `association_strengths.entry(triple).or_insert_with(|| line[3].parse::().unwrap());` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bigram_UD_pmi_to_dpar_pmis` should have a snake case name [INFO] [stdout] --> src/io.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | pub fn bigram_UD_pmi_to_dpar_pmis( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `bigram_ud_pmi_to_dpar_pmis` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:166:30 [INFO] [stdout] | [INFO] [stdout] 166 | .unwrap() [INFO] [stdout] | ______________________________^ [INFO] [stdout] 167 | | .clone() [INFO] [stdout] | |____________________________^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/io.rs:182:33 [INFO] [stdout] | [INFO] [stdout] 182 | ... writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel.replace("/", ":"), pmi); [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] 182 | let _ = writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel.replace("/", ":"), pmi); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:196:30 [INFO] [stdout] | [INFO] [stdout] 196 | .unwrap() [INFO] [stdout] | ______________________________^ [INFO] [stdout] 197 | | .clone() [INFO] [stdout] | |____________________________^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/io.rs:212:33 [INFO] [stdout] | [INFO] [stdout] 212 | ... writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel.replace("/", ":"), pmi); [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] 212 | let _ = writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel.replace("/", ":"), pmi); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:239:30 [INFO] [stdout] | [INFO] [stdout] 239 | .unwrap() [INFO] [stdout] | ______________________________^ [INFO] [stdout] 240 | | .clone() [INFO] [stdout] | |____________________________^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/io.rs:258:29 [INFO] [stdout] | [INFO] [stdout] 258 | ... writeln!(file, "{}\t{}\t{}\t{}\t{}\t{}", w1, w2, w3, d1, d2, pmi); [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] 258 | let _ = writeln!(file, "{}\t{}\t{}\t{}\t{}\t{}", w1, w2, w3, d1, d2, pmi); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:272:30 [INFO] [stdout] | [INFO] [stdout] 272 | .unwrap() [INFO] [stdout] | ______________________________^ [INFO] [stdout] 273 | | .clone() [INFO] [stdout] | |____________________________^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/io.rs:291:29 [INFO] [stdout] | [INFO] [stdout] 291 | ... writeln!(file, "{}\t{}\t{}\t{}\t{}\t{}", w1, w2, w3, d1, d2, pmi); [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] 291 | let _ = writeln!(file, "{}\t{}\t{}\t{}\t{}\t{}", w1, w2, w3, d1, d2, pmi); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/graph.rs:18:36 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn sentence_to_graph(sentence: &Sentence, projective: bool) -> DependencyGraph { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 18 | pub fn sentence_to_graph(sentence: &Sentence, projective: bool) -> DependencyGraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/readers/sentence_tree.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | &sentence_tree.push(root); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 10 | let _ = &sentence_tree.push(root); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/readers/sentence_tree.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | &sentence_tree.push(Node::new(&sentence[idx].clone(), idx)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 15 | let _ = &sentence_tree.push(Node::new(&sentence[idx].clone(), idx)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/reader.rs:18:17 [INFO] [stdout] | [INFO] [stdout] 18 | file.write_all(ngram.as_bytes()); [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] 18 | let _ = file.write_all(ngram.as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/reader.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | file.write_all(ngram.as_bytes()); [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] 23 | let _ = file.write_all(ngram.as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:23:32 [INFO] [stdout] | [INFO] [stdout] 23 | ngram.push_str(&cur_token.form()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `cur_token.form()` [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: usage of a legacy numeric method [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:30:33 [INFO] [stdout] | [INFO] [stdout] 30 | let mut prev_head = usize::max_value(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 30 - let mut prev_head = usize::max_value(); [INFO] [stdout] 30 + let mut prev_head = usize::MAX; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:42:46 [INFO] [stdout] | [INFO] [stdout] 42 | ... deprels.push_str(&cur_token.head_rel().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `cur_token.head_rel().unwrap()` [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: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:43:29 [INFO] [stdout] | [INFO] [stdout] 43 | ... deprels.push_str("_"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `deprels.push('_')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:45:29 [INFO] [stdout] | [INFO] [stdout] 45 | ... ngram.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `ngram.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:47:48 [INFO] [stdout] | [INFO] [stdout] 47 | ... ngram.push_str(&cur_token.form()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `cur_token.form()` [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: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/readers/ngram_dep_reader.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | ngram.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `ngram.push('\n')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/readers/sentence_tree.rs:7:32 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn from_sentence(sentence: &Vec) -> SentenceTree { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 7 - pub fn from_sentence(sentence: &Vec) -> SentenceTree { [INFO] [stdout] 7 + pub fn from_sentence(sentence: &[Token]) -> SentenceTree { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary operation [INFO] [stdout] --> src/readers/sentence_tree.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | &sentence_tree.push(root); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: statement can be reduced to: `sentence_tree.push(root);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stdout] = note: `#[warn(clippy::unnecessary_operation)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is used to index `sentence` [INFO] [stdout] --> src/readers/sentence_tree.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | for idx in 0..sentence.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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 14 - for idx in 0..sentence.len() { [INFO] [stdout] 14 + for (idx, ) in sentence.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary operation [INFO] [stdout] --> src/readers/sentence_tree.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | &sentence_tree.push(Node::new(&sentence[idx].clone(), idx)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: statement can be reduced to: `sentence_tree.push(Node::new(&sentence[idx].clone(), idx));` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/readers/ngram_graph_reader.rs:65:48 [INFO] [stdout] | [INFO] [stdout] 65 | let sentence_graph = sentence_to_graph(&sentence, false); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `sentence` [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: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> src/pmi_map_utils.rs:21:34 [INFO] [stdout] | [INFO] [stdout] 21 | for i in 0..ngram_size + 1 as usize { [INFO] [stdout] | ^^^^^^^^^^ help: try: `1_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/pmi_map_utils.rs:24:36 [INFO] [stdout] | [INFO] [stdout] 24 | ngram.push_str(&split_line.next().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `split_line.next().unwrap()` [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: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/pmi_map_utils.rs:26:21 [INFO] [stdout] | [INFO] [stdout] 26 | ngram.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `ngram.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/pmi_map_utils.rs:27:36 [INFO] [stdout] | [INFO] [stdout] 27 | ngram.push_str(&split_line.next().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `split_line.next().unwrap()` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/pmi_map_utils.rs:41:33 [INFO] [stdout] | [INFO] [stdout] 41 | let mut file = File::create(&output_file)?; [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `output_file` [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] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/pmi_map_utils.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | line.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `line.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/pmi_map_utils.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | line.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `line.push('\n')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/reader.rs:8:24 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn ngrams_to_files<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] 9 | file_name_template: &'a str, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 8 ~ pub fn ngrams_to_files( [INFO] [stdout] 9 ~ file_name_template: &str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/reader.rs:31:23 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn ngrams_to_file<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] 32 | file_name_template: &'a str, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 31 ~ pub fn ngrams_to_file( [INFO] [stdout] 32 ~ file_name_template: &str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:65:29 [INFO] [stdout] | [INFO] [stdout] 65 | ... unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:83:29 [INFO] [stdout] | [INFO] [stdout] 83 | ... unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:101:29 [INFO] [stdout] | [INFO] [stdout] 101 | ... unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:119:29 [INFO] [stdout] | [INFO] [stdout] 119 | ... unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:137:29 [INFO] [stdout] | [INFO] [stdout] 137 | ... unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:155:29 [INFO] [stdout] | [INFO] [stdout] 155 | ... unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:158:25 [INFO] [stdout] | [INFO] [stdout] 158 | unkn_count = unkn_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unkn_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/pps.rs:160:21 [INFO] [stdout] | [INFO] [stdout] 160 | pp_count = pp_count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `pp_count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `example_sents_c` [INFO] [stdout] --> src/pps.rs:170:14 [INFO] [stdout] | [INFO] [stdout] 170 | for i in 0..7 { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 170 - for i in 0..7 { [INFO] [stdout] 170 + for (i, ) in example_sents_c.iter().enumerate().take(7) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `example_sents_c` [INFO] [stdout] --> src/pps.rs:173:22 [INFO] [stdout] | [INFO] [stdout] 173 | for j in 0..10 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 173 - for j in 0..10 { [INFO] [stdout] 173 + for in example_sents_c.iter().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `example_sents_lv` [INFO] [stdout] --> src/pps.rs:183:14 [INFO] [stdout] | [INFO] [stdout] 183 | for i in 0..7 { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 183 - for i in 0..7 { [INFO] [stdout] 183 + for (i, ) in example_sents_lv.iter().enumerate().take(7) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `example_sents_lv` [INFO] [stdout] --> src/pps.rs:186:22 [INFO] [stdout] | [INFO] [stdout] 186 | for j in 0..10 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 186 - for j in 0..10 { [INFO] [stdout] 186 + for in example_sents_lv.iter().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `example_sents_vf` [INFO] [stdout] --> src/pps.rs:196:14 [INFO] [stdout] | [INFO] [stdout] 196 | for i in 0..7 { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 196 - for i in 0..7 { [INFO] [stdout] 196 + for (i, ) in example_sents_vf.iter().enumerate().take(7) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `example_sents_vf` [INFO] [stdout] --> src/pps.rs:199:22 [INFO] [stdout] | [INFO] [stdout] 199 | for j in 0..10 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 199 - for j in 0..10 { [INFO] [stdout] 199 + for in example_sents_vf.iter().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `example_sents_mf` [INFO] [stdout] --> src/pps.rs:209:14 [INFO] [stdout] | [INFO] [stdout] 209 | for i in 0..7 { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 209 - for i in 0..7 { [INFO] [stdout] 209 + for (i, ) in example_sents_mf.iter().enumerate().take(7) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `example_sents_mf` [INFO] [stdout] --> src/pps.rs:212:22 [INFO] [stdout] | [INFO] [stdout] 212 | for j in 0..10 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 212 - for j in 0..10 { [INFO] [stdout] 212 + for in example_sents_mf.iter().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `example_sents_nf` [INFO] [stdout] --> src/pps.rs:222:14 [INFO] [stdout] | [INFO] [stdout] 222 | for i in 0..7 { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 222 - for i in 0..7 { [INFO] [stdout] 222 + for (i, ) in example_sents_nf.iter().enumerate().take(7) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `example_sents_nf` [INFO] [stdout] --> src/pps.rs:225:22 [INFO] [stdout] | [INFO] [stdout] 225 | for j in 0..10 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 225 - for j in 0..10 { [INFO] [stdout] 225 + for in example_sents_nf.iter().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `example_sents_vc` [INFO] [stdout] --> src/pps.rs:235:14 [INFO] [stdout] | [INFO] [stdout] 235 | for i in 0..7 { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 235 - for i in 0..7 { [INFO] [stdout] 235 + for (i, ) in example_sents_vc.iter().enumerate().take(7) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `example_sents_vc` [INFO] [stdout] --> src/pps.rs:238:22 [INFO] [stdout] | [INFO] [stdout] 238 | for j in 0..10 { [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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 238 - for j in 0..10 { [INFO] [stdout] 238 + for in example_sents_vc.iter().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:17:20 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn las(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 17 - pub fn las(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] 17 + pub fn las(output: &[Vec], gold: &Vec>) -> f32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:17:44 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn las(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 17 - pub fn las(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] 17 + pub fn las(output: &Vec>, gold: &[Vec]) -> f32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:35:20 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn uas(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 35 - pub fn uas(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] 35 + pub fn uas(output: &[Vec], gold: &Vec>) -> f32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:35:44 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn uas(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 35 - pub fn uas(output: &Vec>, gold: &Vec>) -> f32 { [INFO] [stdout] 35 + pub fn uas(output: &Vec>, gold: &[Vec]) -> f32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:51:24 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn las_uas(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 51 - pub fn las_uas(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] 51 + pub fn las_uas(output: &[Vec], gold: &Vec>) -> (f32, f32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:51:48 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn las_uas(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 51 - pub fn las_uas(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] 51 + pub fn las_uas(output: &Vec>, gold: &[Vec]) -> (f32, f32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:74:33 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn las_uas_no_punct(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 74 - pub fn las_uas_no_punct(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] 74 + pub fn las_uas_no_punct(output: &[Vec], gold: &Vec>) -> (f32, f32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:74:57 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn las_uas_no_punct(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 74 - pub fn las_uas_no_punct(output: &Vec>, gold: &Vec>) -> (f32, f32) { [INFO] [stdout] 74 + pub fn las_uas_no_punct(output: &Vec>, gold: &[Vec]) -> (f32, f32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:99:29 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn per_sent_las(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 99 - pub fn per_sent_las(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] 99 + pub fn per_sent_las(output: &[Vec], gold: &Vec>) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:99:53 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn per_sent_las(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 99 - pub fn per_sent_las(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] 99 + pub fn per_sent_las(output: &Vec>, gold: &[Vec]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:120:29 [INFO] [stdout] | [INFO] [stdout] 120 | pub fn per_sent_uas(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 120 - pub fn per_sent_uas(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] 120 + pub fn per_sent_uas(output: &[Vec], gold: &Vec>) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/scores.rs:120:53 [INFO] [stdout] | [INFO] [stdout] 120 | pub fn per_sent_uas(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 120 - pub fn per_sent_uas(output: &Vec>, gold: &Vec>) -> Vec { [INFO] [stdout] 120 + pub fn per_sent_uas(output: &Vec>, gold: &[Vec]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp_fp_fn.rs:12:17 [INFO] [stdout] | [INFO] [stdout] 12 | gold_sents: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 12 - gold_sents: &Vec>, [INFO] [stdout] 12 + gold_sents: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp_fp_fn.rs:13:19 [INFO] [stdout] | [INFO] [stdout] 13 | parser_sents: &Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 13 - parser_sents: &Vec>, [INFO] [stdout] 13 + parser_sents: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/tp_fp_fn.rs:341:16 [INFO] [stdout] | [INFO] [stdout] 341 | } else if gold_deprel == "case" && gold_pos.starts_with("ADP-AP") { [INFO] [stdout] | ________________^ [INFO] [stdout] 342 | | [INFO] [stdout] 343 | | if gold_headidx > 0 { [INFO] [stdout] 344 | | let gold_head_deprel = &gold_sent[gold_headidx - 1].head_rel().expect("No deprel").to_string(); [INFO] [stdout] ... | [INFO] [stdout] 351 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 341 ~ } else if gold_deprel == "case" && gold_pos.starts_with("ADP-AP") [INFO] [stdout] 342 | [INFO] [stdout] 343 ~ && gold_headidx > 0 { [INFO] [stdout] 344 | let gold_head_deprel = &gold_sent[gold_headidx - 1].head_rel().expect("No deprel").to_string(); [INFO] [stdout] ... [INFO] [stdout] 349 | } [INFO] [stdout] 350 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:63:54 [INFO] [stdout] | [INFO] [stdout] 63 | let filename = path.to_str().unwrap().clone().to_string(); [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:70:45 [INFO] [stdout] | [INFO] [stdout] 70 | let filename = dir.to_str().unwrap().clone().to_string(); [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:93:30 [INFO] [stdout] | [INFO] [stdout] 93 | .unwrap() [INFO] [stdout] | ______________________________^ [INFO] [stdout] 94 | | .clone() [INFO] [stdout] | |____________________________^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/io.rs:109:29 [INFO] [stdout] | [INFO] [stdout] 109 | ... writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel, pmi); [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] 109 | let _ = writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel, pmi); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:123:30 [INFO] [stdout] | [INFO] [stdout] 123 | .unwrap() [INFO] [stdout] | ______________________________^ [INFO] [stdout] 124 | | .clone() [INFO] [stdout] | |____________________________^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/io.rs:139:29 [INFO] [stdout] | [INFO] [stdout] 139 | ... writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel, pmi); [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] 139 | let _ = writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel, pmi); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bigram_UD_pmi_to_dpar_pmis` should have a snake case name [INFO] [stdout] --> src/io.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | pub fn bigram_UD_pmi_to_dpar_pmis( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `bigram_ud_pmi_to_dpar_pmis` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:166:30 [INFO] [stdout] | [INFO] [stdout] 166 | .unwrap() [INFO] [stdout] | ______________________________^ [INFO] [stdout] 167 | | .clone() [INFO] [stdout] | |____________________________^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/io.rs:182:33 [INFO] [stdout] | [INFO] [stdout] 182 | ... writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel.replace("/", ":"), pmi); [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] 182 | let _ = writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel.replace("/", ":"), pmi); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:196:30 [INFO] [stdout] | [INFO] [stdout] 196 | .unwrap() [INFO] [stdout] | ______________________________^ [INFO] [stdout] 197 | | .clone() [INFO] [stdout] | |____________________________^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/io.rs:212:33 [INFO] [stdout] | [INFO] [stdout] 212 | ... writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel.replace("/", ":"), pmi); [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] 212 | let _ = writeln!(file, "{}\t{}\t{}\t{}", w1, w2, deprel.replace("/", ":"), pmi); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:239:30 [INFO] [stdout] | [INFO] [stdout] 239 | .unwrap() [INFO] [stdout] | ______________________________^ [INFO] [stdout] 240 | | .clone() [INFO] [stdout] | |____________________________^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/io.rs:258:29 [INFO] [stdout] | [INFO] [stdout] 258 | ... writeln!(file, "{}\t{}\t{}\t{}\t{}\t{}", w1, w2, w3, d1, d2, pmi); [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] 258 | let _ = writeln!(file, "{}\t{}\t{}\t{}\t{}\t{}", w1, w2, w3, d1, d2, pmi); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/io.rs:272:30 [INFO] [stdout] | [INFO] [stdout] 272 | .unwrap() [INFO] [stdout] | ______________________________^ [INFO] [stdout] 273 | | .clone() [INFO] [stdout] | |____________________________^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/io.rs:291:29 [INFO] [stdout] | [INFO] [stdout] 291 | ... writeln!(file, "{}\t{}\t{}\t{}\t{}\t{}", w1, w2, w3, d1, d2, pmi); [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] 291 | let _ = writeln!(file, "{}\t{}\t{}\t{}\t{}\t{}", w1, w2, w3, d1, d2, pmi); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/graph.rs:18:36 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn sentence_to_graph(sentence: &Sentence, projective: bool) -> DependencyGraph { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 18 | pub fn sentence_to_graph(sentence: &Sentence, projective: bool) -> DependencyGraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/readers/sentence_tree.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | &sentence_tree.push(root); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 10 | let _ = &sentence_tree.push(root); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/readers/sentence_tree.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | &sentence_tree.push(Node::new(&sentence[idx].clone(), idx)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 15 | let _ = &sentence_tree.push(Node::new(&sentence[idx].clone(), idx)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/reader.rs:18:17 [INFO] [stdout] | [INFO] [stdout] 18 | file.write_all(ngram.as_bytes()); [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] 18 | let _ = file.write_all(ngram.as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/reader.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | file.write_all(ngram.as_bytes()); [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] 23 | let _ = file.write_all(ngram.as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ngram_size` [INFO] [stdout] --> src/bin/pmis_main.rs:80:64 [INFO] [stdout] | [INFO] [stdout] 80 | fn collect_ngrams(files: Vec, filename_template: &str, ngram_size: usize) { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ngram_size` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collect_ngrams` is never used [INFO] [stdout] --> src/bin/pmis_main.rs:80:4 [INFO] [stdout] | [INFO] [stdout] 80 | fn collect_ngrams(files: Vec, filename_template: &str, ngram_size: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/bin/pmis_main.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | get_pmi(&focus_words, &context_words, &deprels, input_file); [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] 77 | let _ = get_pmi(&focus_words, &context_words, &deprels, input_file); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `conllx::Token` [INFO] [stdout] --> src/bin/analysis_main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use conllx::Token; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::vec::Vec` [INFO] [stdout] --> src/bin/analysis_main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::vec::Vec; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `conllx::Token` [INFO] [stdout] --> src/bin/analysis_main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use conllx::Token; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::vec::Vec` [INFO] [stdout] --> src/bin/analysis_main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::vec::Vec; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parserdata` [INFO] [stdout] --> src/bin/analysis_main.rs:35:20 [INFO] [stdout] | [INFO] [stdout] 35 | let (golddata, parserdata) = read_gng_data(golddatafile, parserdatafile); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parserdata` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/bin/analysis_main.rs:86:10 [INFO] [stdout] | [INFO] [stdout] 86 | for (key, val) in inv_verbs.iter() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `golddata` [INFO] [stdout] --> src/bin/analysis_main.rs:82:14 [INFO] [stdout] | [INFO] [stdout] 82 | for i in 0..golddata.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] 82 - for i in 0..golddata.len() { [INFO] [stdout] 82 + for in &golddata { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parserdata` [INFO] [stdout] --> src/bin/analysis_main.rs:35:20 [INFO] [stdout] | [INFO] [stdout] 35 | let (golddata, parserdata) = read_gng_data(golddatafile, parserdatafile); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parserdata` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/bin/analysis_main.rs:86:10 [INFO] [stdout] | [INFO] [stdout] 86 | for (key, val) in inv_verbs.iter() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `golddata` [INFO] [stdout] --> src/bin/analysis_main.rs:82:14 [INFO] [stdout] | [INFO] [stdout] 82 | for i in 0..golddata.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] 82 - for i in 0..golddata.len() { [INFO] [stdout] 82 + for in &golddata { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/taz-without-tdz_main.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | let mut output_file = File::create(&output_filename).expect("Could not create file"); [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/bin/taz-without-tdz_main.rs:50:40 [INFO] [stdout] | [INFO] [stdout] 50 | let mut output_file = File::create(&output_filename).expect("Could not create file"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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: variable does not need to be mutable [INFO] [stdout] --> src/bin/taz-without-tdz_main.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | let mut output_file = File::create(&output_filename).expect("Could not create file"); [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/bin/taz-without-tdz_main.rs:50:40 [INFO] [stdout] | [INFO] [stdout] 50 | let mut output_file = File::create(&output_filename).expect("Could not create file"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `output_filename` [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: unused import: `std::fs::File` [INFO] [stdout] --> src/bin/pmi_file_converter_main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/bin/pmi_file_converter_main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::process::Output` [INFO] [stdout] --> src/bin/err_comp_main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::process::Output; [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 `token_cnt` is assigned to, but never used [INFO] [stdout] --> src/bin/parser_errors_main.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | let mut token_cnt = 0; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_token_cnt` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `conllx::Sentence` [INFO] [stdout] --> src/bin/err_comp_main.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use conllx::Sentence; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sent_cnt` is assigned to, but never used [INFO] [stdout] --> src/bin/parser_errors_main.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | let mut sent_cnt = 0; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_sent_cnt` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::process::Output` [INFO] [stdout] --> src/bin/err_comp_main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::process::Output; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `conllx::Sentence` [INFO] [stdout] --> src/bin/err_comp_main.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use conllx::Sentence; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `las` [INFO] [stdout] --> src/bin/parser_errors_main.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | let las = (1.0 [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_las` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `uas` [INFO] [stdout] --> src/bin/parser_errors_main.rs:150:13 [INFO] [stdout] | [INFO] [stdout] 150 | let uas = (1.0 - ((all_combined_errors + all_head_errors) as f32 / all_attachments as f32)) [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_uas` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `error_sum` [INFO] [stdout] --> src/bin/parser_errors_main.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | let error_sum = all_combined_errors + all_head_errors + all_label_errors; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_sum` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `token_cnt` is never read [INFO] [stdout] --> src/bin/parser_errors_main.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | token_cnt += gold_sent.len(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sent_cnt` is never read [INFO] [stdout] --> src/bin/parser_errors_main.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | sent_cnt += 1; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ngram_size` [INFO] [stdout] --> src/bin/pmis_main.rs:80:64 [INFO] [stdout] | [INFO] [stdout] 80 | fn collect_ngrams(files: Vec, filename_template: &str, ngram_size: usize) { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ngram_size` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collect_ngrams` is never used [INFO] [stdout] --> src/bin/pmis_main.rs:80:4 [INFO] [stdout] | [INFO] [stdout] 80 | fn collect_ngrams(files: Vec, filename_template: &str, ngram_size: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `sent_cnt` is used as a loop counter [INFO] [stdout] --> src/bin/parser_errors_main.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | for (gold_sent, parser_sent) in golddata.iter().zip(parserdata.iter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (sent_cnt, (gold_sent, parser_sent)) in golddata.iter().zip(parserdata.iter()).enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bin/parser_errors_main.rs:134:38 [INFO] [stdout] | [INFO] [stdout] 134 | get_errors_by_labels(&label, gold_sent, parser_sent); [INFO] [stdout] | ^^^^^^ help: change this to: `label` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bin/parser_errors_main.rs:163:48 [INFO] [stdout] | [INFO] [stdout] 163 | wrong_label_vec.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^ help: change this to: `a.1` [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: unused import: `std::fs::File` [INFO] [stdout] --> src/bin/pmi_file_converter_main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/bin/pmi_file_converter_main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/bin/pmis_main.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | get_pmi(&focus_words, &context_words, &deprels, input_file); [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] 77 | let _ = get_pmi(&focus_words, &context_words, &deprels, input_file); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `token_cnt` is assigned to, but never used [INFO] [stdout] --> src/bin/parser_errors_main.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | let mut token_cnt = 0; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_token_cnt` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sent_cnt` is assigned to, but never used [INFO] [stdout] --> src/bin/parser_errors_main.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | let mut sent_cnt = 0; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_sent_cnt` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `las` [INFO] [stdout] --> src/bin/parser_errors_main.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | let las = (1.0 [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_las` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `uas` [INFO] [stdout] --> src/bin/parser_errors_main.rs:150:13 [INFO] [stdout] | [INFO] [stdout] 150 | let uas = (1.0 - ((all_combined_errors + all_head_errors) as f32 / all_attachments as f32)) [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_uas` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `error_sum` [INFO] [stdout] --> src/bin/parser_errors_main.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | let error_sum = all_combined_errors + all_head_errors + all_label_errors; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_sum` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `token_cnt` is never read [INFO] [stdout] --> src/bin/parser_errors_main.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | token_cnt += gold_sent.len(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sent_cnt` is never read [INFO] [stdout] --> src/bin/parser_errors_main.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | sent_cnt += 1; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `las` [INFO] [stdout] --> src/bin/attachment_scores_main.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | for las in per_sent_las { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_las` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `sent_cnt` is used as a loop counter [INFO] [stdout] --> src/bin/parser_errors_main.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | for (gold_sent, parser_sent) in golddata.iter().zip(parserdata.iter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (sent_cnt, (gold_sent, parser_sent)) in golddata.iter().zip(parserdata.iter()).enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bin/parser_errors_main.rs:134:38 [INFO] [stdout] | [INFO] [stdout] 134 | get_errors_by_labels(&label, gold_sent, parser_sent); [INFO] [stdout] | ^^^^^^ help: change this to: `label` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/bin/parser_errors_main.rs:163:48 [INFO] [stdout] | [INFO] [stdout] 163 | wrong_label_vec.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^ help: change this to: `a.1` [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: unused `std::result::Result` that must be used [INFO] [stdout] --> src/bin/pmi_file_converter_main.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | bigram_pmi_to_dpar_pmis(Path::new(input_dir1), input_dir2, "nsc"); [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] 38 | let _ = bigram_pmi_to_dpar_pmis(Path::new(input_dir1), input_dir2, "nsc"); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/bin/pmi_file_converter_main.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | bigram_pmi_to_dpar_pmis(Path::new(input_dir1), input_dir2, "nsc"); [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] 38 | let _ = bigram_pmi_to_dpar_pmis(Path::new(input_dir1), input_dir2, "nsc"); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `las` [INFO] [stdout] --> src/bin/attachment_scores_main.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | for las in per_sent_las { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_las` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is only used to index `errs_shared` [INFO] [stdout] --> src/bin/err_comp_main.rs:78:16 [INFO] [stdout] | [INFO] [stdout] 78 | for idx in 0..errs_shared.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] 78 - for idx in 0..errs_shared.len() { [INFO] [stdout] 78 + for in &errs_shared { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is only used to index `dep_errs` [INFO] [stdout] --> src/bin/err_comp_main.rs:84:16 [INFO] [stdout] | [INFO] [stdout] 84 | for idx in 0..dep_errs.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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 84 - for idx in 0..dep_errs.len() { [INFO] [stdout] 84 + for in &dep_errs { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is only used to index `errs_shared` [INFO] [stdout] --> src/bin/err_comp_main.rs:78:16 [INFO] [stdout] | [INFO] [stdout] 78 | for idx in 0..errs_shared.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] 78 - for idx in 0..errs_shared.len() { [INFO] [stdout] 78 + for in &errs_shared { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is only used to index `pmi_errs` [INFO] [stdout] --> src/bin/err_comp_main.rs:90:16 [INFO] [stdout] | [INFO] [stdout] 90 | for idx in 0..pmi_errs.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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 90 - for idx in 0..pmi_errs.len() { [INFO] [stdout] 90 + for in &pmi_errs { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is only used to index `dep_errs` [INFO] [stdout] --> src/bin/err_comp_main.rs:84:16 [INFO] [stdout] | [INFO] [stdout] 84 | for idx in 0..dep_errs.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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 84 - for idx in 0..dep_errs.len() { [INFO] [stdout] 84 + for in &dep_errs { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idx` is only used to index `pmi_errs` [INFO] [stdout] --> src/bin/err_comp_main.rs:90:16 [INFO] [stdout] | [INFO] [stdout] 90 | for idx in 0..pmi_errs.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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 90 - for idx in 0..pmi_errs.len() { [INFO] [stdout] 90 + for in &pmi_errs { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/bin/err_comp_main.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | writeln!(shared_errs_writer, "{:?}\n", errs_shared[idx]); [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] 80 | let _ = writeln!(shared_errs_writer, "{:?}\n", errs_shared[idx]); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/bin/err_comp_main.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | writeln!(dep_errs_writer, "{:?}\n", dep_errs[idx]); [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] 86 | let _ = writeln!(dep_errs_writer, "{:?}\n", dep_errs[idx]); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/bin/err_comp_main.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | writeln!(pmi_errs_writer, "{:?}\n", pmi_errs[idx]); [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] 92 | let _ = writeln!(pmi_errs_writer, "{:?}\n", pmi_errs[idx]); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/bin/err_comp_main.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | writeln!(shared_errs_writer, "{:?}\n", errs_shared[idx]); [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] 80 | let _ = writeln!(shared_errs_writer, "{:?}\n", errs_shared[idx]); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/bin/err_comp_main.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | writeln!(dep_errs_writer, "{:?}\n", dep_errs[idx]); [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] 86 | let _ = writeln!(dep_errs_writer, "{:?}\n", dep_errs[idx]); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/bin/err_comp_main.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | writeln!(pmi_errs_writer, "{:?}\n", pmi_errs[idx]); [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] 92 | let _ = writeln!(pmi_errs_writer, "{:?}\n", pmi_errs[idx]); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.02s [INFO] running `Command { std: "docker" "inspect" "71341300cb62f9bf68dad98121ae3da057ad4a7a58328990d255ce9bc80177ad", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "71341300cb62f9bf68dad98121ae3da057ad4a7a58328990d255ce9bc80177ad", kill_on_drop: false }` [INFO] [stdout] 71341300cb62f9bf68dad98121ae3da057ad4a7a58328990d255ce9bc80177ad