[INFO] fetching crate pbd 0.5.0... [INFO] linting pbd-0.5.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate pbd 0.5.0 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate pbd 0.5.0 [INFO] finished tweaking crates.io crate pbd 0.5.0 [INFO] tweaked toml for crates.io crate pbd 0.5.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate pbd 0.5.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate pbd 0.5.0 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] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded errno v0.3.2 [INFO] [stderr] Downloaded fastrand v2.0.0 [INFO] [stderr] Downloaded rust-tfidf v1.1.1 [INFO] [stderr] Downloaded language-tags v0.2.2 [INFO] [stderr] Downloaded bytestring v1.3.0 [INFO] [stderr] Downloaded actix-testing v1.0.1 [INFO] [stderr] Downloaded actix-threadpool v0.3.3 [INFO] [stderr] Downloaded actix-connect v2.0.0 [INFO] [stderr] Downloaded thiserror-impl v1.0.47 [INFO] [stderr] Downloaded actix-tls v2.0.0 [INFO] [stderr] Downloaded actix-utils v2.0.0 [INFO] [stderr] Downloaded thiserror v1.0.47 [INFO] [stderr] Downloaded actix-server v1.0.4 [INFO] [stderr] Downloaded actix-router v0.2.7 [INFO] [stderr] Downloaded tokio-util v0.7.8 [INFO] [stderr] Downloaded trust-dns-resolver v0.19.7 [INFO] [stderr] Downloaded reqwest v0.11.20 [INFO] [stderr] Downloaded actix-http v2.2.2 [INFO] [stderr] Downloaded brotli-decompressor v2.3.4 [INFO] [stderr] Downloaded trust-dns-proto v0.19.7 [INFO] [stderr] Downloaded actix-web v3.3.3 [INFO] [stderr] Downloaded regex v1.9.3 [INFO] [stderr] Downloaded rayon v1.5.3 [INFO] [stderr] Downloaded pin-project v0.4.30 [INFO] [stderr] Downloaded base64 v0.21.2 [INFO] [stderr] Downloaded openssl-sys v0.9.91 [INFO] [stderr] Downloaded awc v2.0.3 [INFO] [stderr] Downloaded regex-syntax v0.7.4 [INFO] [stderr] Downloaded rustix v0.38.9 [INFO] [stderr] Downloaded socket2 v0.5.3 [INFO] [stderr] Downloaded actix-rt v1.1.1 [INFO] [stderr] Downloaded pin-project-internal v0.4.30 [INFO] [stderr] Downloaded semver v1.0.18 [INFO] [stderr] Downloaded openssl v0.10.56 [INFO] [stderr] Downloaded pow_sha256 v0.2.1 [INFO] [stderr] Downloaded url v2.4.0 [INFO] [stderr] Downloaded actix-service v1.0.6 [INFO] [stderr] Downloaded const_fn v0.4.9 [INFO] [stderr] Downloaded eddie v0.4.2 [INFO] [stderr] Downloaded actix-codec v0.3.0 [INFO] [stderr] Downloaded actix-web-codegen v0.4.0 [INFO] [stderr] Downloaded regex-automata v0.3.6 [INFO] [stderr] Downloaded actix-macros v0.1.3 [INFO] [stderr] Downloaded linux-raw-sys v0.4.5 [INFO] [stderr] Downloaded brotli v3.3.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ed071d1162bc41a3cea5552dd87706bde6158eedccc7ef7bb928a6d43d581520 [INFO] running `Command { std: "docker" "start" "-a" "ed071d1162bc41a3cea5552dd87706bde6158eedccc7ef7bb928a6d43d581520", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ed071d1162bc41a3cea5552dd87706bde6158eedccc7ef7bb928a6d43d581520", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ed071d1162bc41a3cea5552dd87706bde6158eedccc7ef7bb928a6d43d581520", kill_on_drop: false }` [INFO] [stdout] ed071d1162bc41a3cea5552dd87706bde6158eedccc7ef7bb928a6d43d581520 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cdd1074d3310c3fe28acd20b01b6aebff860aa71d0e8c0a06063e48aa3219e31 [INFO] running `Command { std: "docker" "start" "-a" "cdd1074d3310c3fe28acd20b01b6aebff860aa71d0e8c0a06063e48aa3219e31", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Compiling proc-macro2 v1.0.66 [INFO] [stderr] Compiling unicode-ident v1.0.11 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Compiling futures-core v0.3.28 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking futures-sink v0.3.28 [INFO] [stderr] Compiling futures-channel v0.3.28 [INFO] [stderr] Compiling futures-task v0.3.28 [INFO] [stderr] Compiling futures-util v0.3.28 [INFO] [stderr] Checking futures-io v0.3.28 [INFO] [stderr] Checking once_cell v1.18.0 [INFO] [stderr] Checking itoa v1.0.9 [INFO] [stderr] Compiling serde v1.0.188 [INFO] [stderr] Compiling pin-project-internal v0.4.30 [INFO] [stderr] Compiling parking_lot_core v0.8.6 [INFO] [stderr] Checking instant v0.1.12 [INFO] [stderr] Checking percent-encoding v2.3.0 [INFO] [stderr] Checking http v0.2.9 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling convert_case v0.4.0 [INFO] [stderr] Checking tracing-core v0.1.31 [INFO] [stderr] Checking lock_api v0.4.10 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Checking unicode-bidi v0.3.13 [INFO] [stderr] Compiling pkg-config v0.3.27 [INFO] [stderr] Checking form_urlencoded v1.2.0 [INFO] [stderr] Compiling standback v0.2.17 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Checking copyless v0.1.5 [INFO] [stderr] Checking aho-corasick v1.0.4 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling async-trait v0.1.73 [INFO] [stderr] Compiling crossbeam-utils v0.8.16 [INFO] [stderr] Compiling thiserror v1.0.47 [INFO] [stderr] Checking byteorder v1.4.3 [INFO] [stderr] Checking regex-syntax v0.7.4 [INFO] [stderr] Compiling memoffset v0.9.0 [INFO] [stderr] Checking idna v0.4.0 [INFO] [stderr] Checking match_cfg v0.1.0 [INFO] [stderr] Checking ryu v1.0.15 [INFO] [stderr] Checking matches v0.1.10 [INFO] [stderr] Compiling openssl v0.10.56 [INFO] [stderr] Compiling const_fn v0.4.9 [INFO] [stderr] Checking idna v0.2.3 [INFO] [stderr] Checking tracing v0.1.37 [INFO] [stderr] Compiling time v0.2.27 [INFO] [stderr] Compiling crossbeam-epoch v0.9.15 [INFO] [stderr] Checking linked-hash-map v0.5.6 [INFO] [stderr] Checking alloc-no-stdlib v2.0.4 [INFO] [stderr] Compiling serde_json v1.0.105 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking lru-cache v0.1.2 [INFO] [stderr] Checking alloc-stdlib v0.2.2 [INFO] [stderr] Checking generic-array v0.12.4 [INFO] [stderr] Compiling cookie v0.14.4 [INFO] [stderr] Compiling rayon-core v1.11.0 [INFO] [stderr] Checking miniz_oxide v0.7.1 [INFO] [stderr] Compiling syn v2.0.29 [INFO] [stderr] Checking brotli-decompressor v2.3.4 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Checking http-body v0.4.5 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking cpufeatures v0.2.9 [INFO] [stderr] Checking opaque-debug v0.3.0 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Compiling rayon v1.5.3 [INFO] [stderr] Checking language-tags v0.2.2 [INFO] [stderr] Checking digest v0.8.1 [INFO] [stderr] Checking block-buffer v0.7.3 [INFO] [stderr] Checking url v2.4.0 [INFO] [stderr] Checking sha-1 v0.9.8 [INFO] [stderr] Checking crossbeam-channel v0.5.8 [INFO] [stderr] Checking humantime v1.3.0 [INFO] [stderr] Checking sha2 v0.8.2 [INFO] [stderr] Checking bytestring v1.3.0 [INFO] [stderr] Checking flate2 v1.0.27 [INFO] [stderr] Checking base64 v0.21.2 [INFO] [stderr] Checking termcolor v1.2.0 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking net2 v0.2.39 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking mio v0.6.23 [INFO] [stderr] Checking mio v0.8.8 [INFO] [stderr] Checking threadpool v1.8.1 [INFO] [stderr] Checking socket2 v0.5.3 [INFO] [stderr] Checking hostname v0.3.1 [INFO] [stderr] Checking parking_lot v0.11.2 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking socket2 v0.4.9 [INFO] [stderr] Checking crossbeam-deque v0.8.3 [INFO] [stderr] Checking socket2 v0.3.19 [INFO] [stderr] Checking resolv-conf v0.7.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking ipnet v2.8.0 [INFO] [stderr] Checking levenshtein v1.0.5 [INFO] [stderr] Checking eddie v0.4.2 [INFO] [stderr] Checking rust-tfidf v1.1.1 [INFO] [stderr] Checking tokio v1.32.0 [INFO] [stderr] Checking mio-uds v0.6.8 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking base64 v0.12.3 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Checking tokio v0.2.25 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking brotli v3.3.4 [INFO] [stderr] Checking regex-automata v0.3.6 [INFO] [stderr] Compiling openssl-sys v0.9.91 [INFO] [stderr] Compiling native-tls v0.2.11 [INFO] [stderr] Checking tokio-util v0.3.1 [INFO] [stderr] Checking regex v1.9.3 [INFO] [stderr] Checking env_logger v0.7.1 [INFO] [stderr] Compiling futures-macro v0.3.28 [INFO] [stderr] Compiling serde_derive v1.0.188 [INFO] [stderr] Compiling thiserror-impl v1.0.47 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling pin-project-internal v1.1.3 [INFO] [stderr] Compiling derive_more v0.99.17 [INFO] [stderr] Compiling actix-macros v0.1.3 [INFO] [stderr] Compiling time-macros-impl v0.1.2 [INFO] [stderr] Compiling enum-as-inner v0.3.4 [INFO] [stderr] Compiling actix-web-codegen v0.4.0 [INFO] [stderr] Checking time-macros v0.1.1 [INFO] [stderr] Checking pin-project v1.1.3 [INFO] [stderr] Checking tracing-futures v0.2.5 [INFO] [stderr] Checking pin-project v0.4.30 [INFO] [stderr] Checking tokio-util v0.7.8 [INFO] [stderr] Checking actix-codec v0.3.0 [INFO] [stderr] Checking actix-threadpool v0.3.3 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking actix-service v1.0.6 [INFO] [stderr] Checking futures-executor v0.3.28 [INFO] [stderr] Checking actix-rt v1.1.1 [INFO] [stderr] Checking h2 v0.3.21 [INFO] [stderr] Checking h2 v0.2.7 [INFO] [stderr] Checking futures v0.3.28 [INFO] [stderr] Checking trust-dns-proto v0.19.7 [INFO] [stderr] Checking actix-utils v2.0.0 [INFO] [stderr] Checking actix-server v1.0.4 [INFO] [stderr] Checking actix-tls v2.0.0 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking actix-router v0.2.7 [INFO] [stderr] Checking multimap v0.8.3 [INFO] [stderr] Checking actix-testing v1.0.1 [INFO] [stderr] Checking pow_sha256 v0.2.1 [INFO] [stderr] Checking trust-dns-resolver v0.19.7 [INFO] [stderr] Checking actix-connect v2.0.0 [INFO] [stderr] Checking actix-http v2.2.2 [INFO] [stderr] Checking hyper v0.14.27 [INFO] [stderr] Checking awc v2.0.3 [INFO] [stderr] Checking actix-web v3.3.3 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.20 [INFO] [stderr] Checking pbd v0.5.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: consider choosing a more descriptive name [INFO] [stdout] --> src/dpi/mod.rs:2658:18 [INFO] [stdout] | [INFO] [stdout] 2658 | Some(_3869) => { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#just_underscores_and_digits [INFO] [stdout] = note: `#[warn(clippy::just_underscores_and_digits)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `String` [INFO] [stdout] --> src/dua/policy.rs:1127:37 [INFO] [stdout] | [INFO] [stdout] 1127 | Condition::Category(String) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_String` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `String` [INFO] [stdout] --> src/dua/policy.rs:1133:36 [INFO] [stdout] | [INFO] [stdout] 1133 | Condition::Subject(String) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `String` [INFO] [stdout] --> src/dua/policy.rs:1139:32 [INFO] [stdout] | [INFO] [stdout] 1139 | Condition::Use(String) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TfIdfzr` is never constructed [INFO] [stdout] --> src/dpi/mod.rs:1358:16 [INFO] [stdout] | [INFO] [stdout] 1358 | struct TfIdfzr; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TfIdfzr` is never constructed [INFO] [stdout] --> src/dpi/mod.rs:1398:16 [INFO] [stdout] | [INFO] [stdout] 1398 | struct TfIdfzr; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TfIdfzr` is never constructed [INFO] [stdout] --> src/dpi/mod.rs:1439:16 [INFO] [stdout] | [INFO] [stdout] 1439 | struct TfIdfzr; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dpi/mod.rs:1305:30 [INFO] [stdout] | [INFO] [stdout] 1305 | serde_json::from_str(&serialized).unwrap() [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [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/dpi/mod.rs:1481:39 [INFO] [stdout] | [INFO] [stdout] 1481 | let dpiarc = Arc::<&DPI>::new(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [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 to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/dpi/mod.rs:1599:43 [INFO] [stdout] | [INFO] [stdout] 1599 | if (n / docs.len() as f64) >= Self::TFIDF_LIMIT as f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Self::TFIDF_LIMIT` [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: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/dpi/mod.rs:1705:13 [INFO] [stdout] | [INFO] [stdout] 1705 | / match tkn.to_lowercase() == word.to_lowercase() { [INFO] [stdout] 1706 | | true => { [INFO] [stdout] 1707 | | let idx_scope: Vec = vec![-2, -1, 1, 2]; [INFO] [stdout] ... | [INFO] [stdout] 1728 | | false => {} [INFO] [stdout] 1729 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1705 ~ if tkn.to_lowercase() == word.to_lowercase() == true { [INFO] [stdout] 1706 + let idx_scope: Vec = vec![-2, -1, 1, 2]; [INFO] [stdout] 1707 + [INFO] [stdout] 1708 + for i in &idx_scope { [INFO] [stdout] 1709 + let t = match add(idx, *i) >= tokens.len() { [INFO] [stdout] 1710 + true => tokens.len() - 1, [INFO] [stdout] 1711 + false => add(idx, *i), [INFO] [stdout] 1712 + }; [INFO] [stdout] 1713 + let word = tokens[t].clone(); [INFO] [stdout] 1714 + let cnt = freq_counts.get(&word).unwrap(); [INFO] [stdout] 1715 + if (cnt / total_count) <= Self::TF_LIMIT as usize { [INFO] [stdout] 1716 + suggestions.push(word.clone()); [INFO] [stdout] 1717 + [INFO] [stdout] 1718 + suggestions.append(&mut DPI::suggest_from_sounds_like( [INFO] [stdout] 1719 + word.clone(), [INFO] [stdout] 1720 + tokens.clone(), [INFO] [stdout] 1721 + )); [INFO] [stdout] 1722 + suggestions [INFO] [stdout] 1723 + .append(&mut DPI::suggest_from_levenshtein(word, tokens.clone())); [INFO] [stdout] 1724 + } [INFO] [stdout] 1725 + } [INFO] [stdout] 1726 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/dpi/mod.rs:1751:13 [INFO] [stdout] | [INFO] [stdout] 1751 | / match Self::sounds_like(&word, tkn) { [INFO] [stdout] 1752 | | true => { [INFO] [stdout] 1753 | | suggestions.push(tkn.to_string()); [INFO] [stdout] ... | [INFO] [stdout] 1756 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1751 ~ if Self::sounds_like(&word, tkn) == true { [INFO] [stdout] 1752 + suggestions.push(tkn.to_string()); [INFO] [stdout] 1753 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/dpi/mod.rs:2235:9 [INFO] [stdout] | [INFO] [stdout] 2235 | / let mut lists = Vec::new(); [INFO] [stdout] 2236 | | [INFO] [stdout] 2237 | | lists.push(Self::basic_list()); [INFO] [stdout] 2238 | | lists.push(Self::health_list()); [INFO] [stdout] 2239 | | lists.push(Self::nppi_list()); [INFO] [stdout] 2240 | | lists.push(Self::pci_list()); [INFO] [stdout] | |_____________________________________^ help: consider using the `vec![]` macro: `let lists = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dsg/mod.rs:145:36 [INFO] [stdout] | [INFO] [stdout] 145 | match serde_json::from_str(&serialized) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dtc/mod.rs:307:36 [INFO] [stdout] | [INFO] [stdout] 307 | match serde_json::from_str(&serialized) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dua/mod.rs:128:30 [INFO] [stdout] | [INFO] [stdout] 128 | serde_json::from_str(&serialized).unwrap() [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/dua/data_category.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | / pub fn new( [INFO] [stdout] 64 | | nme: String, [INFO] [stdout] 65 | | descr: String, [INFO] [stdout] 66 | | key: String, [INFO] [stdout] ... | [INFO] [stdout] 71 | | ind_active: bool, [INFO] [stdout] 72 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` 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/dua/data_category.rs:134:30 [INFO] [stdout] | [INFO] [stdout] 134 | serde_json::from_str(&serialized).unwrap() [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [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: you should consider adding a `Default` implementation for `DataCategoryFactory` [INFO] [stdout] --> src/dua/data_category.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | / pub fn new() -> Self { [INFO] [stdout] 190 | | DataCategoryFactory { [INFO] [stdout] 191 | | data_categories: Self::build_data_categories(), [INFO] [stdout] 192 | | } [INFO] [stdout] 193 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 175 + impl Default for DataCategoryFactory { [INFO] [stdout] 176 + fn default() -> Self { [INFO] [stdout] 177 + Self::new() [INFO] [stdout] 178 + } [INFO] [stdout] 179 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_category.rs:255:43 [INFO] [stdout] | [INFO] [stdout] 255 | let filtered: Vec = self [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 256 | | .data_categories [INFO] [stdout] 257 | | .iter() [INFO] [stdout] 258 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 255 ~ let filtered: Vec = self [INFO] [stdout] 256 + .data_categories [INFO] [stdout] 257 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/dua/data_category.rs:259:25 [INFO] [stdout] | [INFO] [stdout] 259 | .filter(|s| s.active == true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `s.active` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_category.rs:288:43 [INFO] [stdout] | [INFO] [stdout] 288 | let filtered: Vec = self [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 289 | | .data_categories [INFO] [stdout] 290 | | .iter() [INFO] [stdout] 291 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 288 ~ let filtered: Vec = self [INFO] [stdout] 289 + .data_categories [INFO] [stdout] 290 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_category.rs:324:43 [INFO] [stdout] | [INFO] [stdout] 324 | let filtered: Vec = self [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 325 | | .data_categories [INFO] [stdout] 326 | | .iter() [INFO] [stdout] 327 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 324 ~ let filtered: Vec = self [INFO] [stdout] 325 + .data_categories [INFO] [stdout] 326 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_category.rs:358:43 [INFO] [stdout] | [INFO] [stdout] 358 | let filtered: Vec = self [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 359 | | .data_categories [INFO] [stdout] 360 | | .iter() [INFO] [stdout] 361 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 358 ~ let filtered: Vec = self [INFO] [stdout] 359 + .data_categories [INFO] [stdout] 360 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_category.rs:394:51 [INFO] [stdout] | [INFO] [stdout] 394 | let filtered: Vec = self [INFO] [stdout] | ___________________________________________________^ [INFO] [stdout] 395 | | .data_categories [INFO] [stdout] 396 | | .iter() [INFO] [stdout] 397 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 394 ~ let filtered: Vec = self [INFO] [stdout] 395 + .data_categories [INFO] [stdout] 396 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/dua/data_category.rs:438:24 [INFO] [stdout] | [INFO] [stdout] 438 | let mut list = match heirarchy { [INFO] [stdout] | ________________________^ [INFO] [stdout] 439 | | Some(h) => h, [INFO] [stdout] 440 | | None => Vec::new(), [INFO] [stdout] 441 | | }; [INFO] [stdout] | |_________^ help: replace it with: `heirarchy.unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/dua/data_subject.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | / pub fn from_str(val: &str) -> Right { [INFO] [stdout] 53 | | match val { [INFO] [stdout] 54 | | "Informed" => Right::Informed, [INFO] [stdout] 55 | | "Access" => Right::Access, [INFO] [stdout] ... | [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/dua/data_subject.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | / pub fn from_str(val: &str) -> Strategy { [INFO] [stdout] 101 | | match val { [INFO] [stdout] 102 | | "ALL" => Strategy::ALL, [INFO] [stdout] 103 | | "EXCLUDE" => Strategy::EXCLUDE, [INFO] [stdout] ... | [INFO] [stdout] 108 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dua/data_subject.rs:216:30 [INFO] [stdout] | [INFO] [stdout] 216 | serde_json::from_str(&serialized).unwrap() [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/dua/data_subject.rs:310:5 [INFO] [stdout] | [INFO] [stdout] 310 | / pub fn new( [INFO] [stdout] 311 | | nme: String, [INFO] [stdout] 312 | | descr: String, [INFO] [stdout] 313 | | key: String, [INFO] [stdout] ... | [INFO] [stdout] 319 | | ind_active: bool, [INFO] [stdout] 320 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/dua/data_subject.rs:360:9 [INFO] [stdout] | [INFO] [stdout] 360 | / match self.rights.as_ref() { [INFO] [stdout] 361 | | Some(r) => Some(r.clone().get_rights()), [INFO] [stdout] 362 | | None => None, [INFO] [stdout] 363 | | } [INFO] [stdout] | |_________^ help: try: `self.rights.as_ref().map(|r| r.clone().get_rights())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/dua/data_subject.rs:392:9 [INFO] [stdout] | [INFO] [stdout] 392 | / match self.rights.as_ref() { [INFO] [stdout] 393 | | Some(r) => Some(r.clone().get_strategy()), [INFO] [stdout] 394 | | None => None, [INFO] [stdout] 395 | | } [INFO] [stdout] | |_________^ help: try: `self.rights.as_ref().map(|r| r.clone().get_strategy())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `DataSubjectFactory` [INFO] [stdout] --> src/dua/data_subject.rs:447:5 [INFO] [stdout] | [INFO] [stdout] 447 | / pub fn new() -> Self { [INFO] [stdout] 448 | | DataSubjectFactory { [INFO] [stdout] 449 | | subjects: Self::build_subjects(), [INFO] [stdout] 450 | | } [INFO] [stdout] 451 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 433 + impl Default for DataSubjectFactory { [INFO] [stdout] 434 + fn default() -> Self { [INFO] [stdout] 435 + Self::new() [INFO] [stdout] 436 + } [INFO] [stdout] 437 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_subject.rs:528:42 [INFO] [stdout] | [INFO] [stdout] 528 | let filtered: Vec = self [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 529 | | .subjects [INFO] [stdout] 530 | | .iter() [INFO] [stdout] 531 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 528 ~ let filtered: Vec = self [INFO] [stdout] 529 + .subjects [INFO] [stdout] 530 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/dua/data_subject.rs:532:25 [INFO] [stdout] | [INFO] [stdout] 532 | .filter(|s| s.active == true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `s.active` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_subject.rs:561:42 [INFO] [stdout] | [INFO] [stdout] 561 | let filtered: Vec = self [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 562 | | .subjects [INFO] [stdout] 563 | | .iter() [INFO] [stdout] 564 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 561 ~ let filtered: Vec = self [INFO] [stdout] 562 + .subjects [INFO] [stdout] 563 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_subject.rs:597:42 [INFO] [stdout] | [INFO] [stdout] 597 | let filtered: Vec = self [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 598 | | .subjects [INFO] [stdout] 599 | | .iter() [INFO] [stdout] 600 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 597 ~ let filtered: Vec = self [INFO] [stdout] 598 + .subjects [INFO] [stdout] 599 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/dua/data_use.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub fn from_str(val: &str) -> LegalBasis { [INFO] [stdout] 47 | | match val { [INFO] [stdout] 48 | | "Consent" => LegalBasis::Consent, [INFO] [stdout] 49 | | "Contract" => LegalBasis::Contract, [INFO] [stdout] ... | [INFO] [stdout] 56 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/dua/data_use.rs:102:5 [INFO] [stdout] | [INFO] [stdout] 102 | / pub fn from_str(val: &str) -> SpecialCategory { [INFO] [stdout] 103 | | match val { [INFO] [stdout] 104 | | "Consent" => SpecialCategory::Consent, [INFO] [stdout] 105 | | "Employment" => SpecialCategory::Employment, [INFO] [stdout] ... | [INFO] [stdout] 115 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (13/7) [INFO] [stdout] --> src/dua/data_use.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 194 | / pub fn new( [INFO] [stdout] 195 | | nme: String, [INFO] [stdout] 196 | | descr: String, [INFO] [stdout] 197 | | key: String, [INFO] [stdout] ... | [INFO] [stdout] 207 | | ind_active: bool, [INFO] [stdout] 208 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dua/data_use.rs:280:30 [INFO] [stdout] | [INFO] [stdout] 280 | serde_json::from_str(&serialized).unwrap() [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [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: you should consider adding a `Default` implementation for `DataUseFactory` [INFO] [stdout] --> src/dua/data_use.rs:340:5 [INFO] [stdout] | [INFO] [stdout] 340 | / pub fn new() -> Self { [INFO] [stdout] 341 | | DataUseFactory { [INFO] [stdout] 342 | | data_uses: Self::build_data_uses(), [INFO] [stdout] 343 | | } [INFO] [stdout] 344 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 326 + impl Default for DataUseFactory { [INFO] [stdout] 327 + fn default() -> Self { [INFO] [stdout] 328 + Self::new() [INFO] [stdout] 329 + } [INFO] [stdout] 330 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_use.rs:446:38 [INFO] [stdout] | [INFO] [stdout] 446 | let filtered: Vec = self [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 447 | | .data_uses [INFO] [stdout] 448 | | .iter() [INFO] [stdout] 449 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 446 ~ let filtered: Vec = self [INFO] [stdout] 447 + .data_uses [INFO] [stdout] 448 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/dua/data_use.rs:450:25 [INFO] [stdout] | [INFO] [stdout] 450 | .filter(|s| s.active == true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `s.active` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_use.rs:479:38 [INFO] [stdout] | [INFO] [stdout] 479 | let filtered: Vec = self [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 480 | | .data_uses [INFO] [stdout] 481 | | .iter() [INFO] [stdout] 482 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 479 ~ let filtered: Vec = self [INFO] [stdout] 480 + .data_uses [INFO] [stdout] 481 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_use.rs:515:38 [INFO] [stdout] | [INFO] [stdout] 515 | let filtered: Vec = self [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 516 | | .data_uses [INFO] [stdout] 517 | | .iter() [INFO] [stdout] 518 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 515 ~ let filtered: Vec = self [INFO] [stdout] 516 + .data_uses [INFO] [stdout] 517 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_use.rs:549:38 [INFO] [stdout] | [INFO] [stdout] 549 | let filtered: Vec = self [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 550 | | .data_uses [INFO] [stdout] 551 | | .iter() [INFO] [stdout] 552 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 549 ~ let filtered: Vec = self [INFO] [stdout] 550 + .data_uses [INFO] [stdout] 551 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_use.rs:585:46 [INFO] [stdout] | [INFO] [stdout] 585 | let filtered: Vec = self [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 586 | | .data_uses [INFO] [stdout] 587 | | .iter() [INFO] [stdout] 588 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 585 ~ let filtered: Vec = self [INFO] [stdout] 586 + .data_uses [INFO] [stdout] 587 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/dua/data_use.rs:629:24 [INFO] [stdout] | [INFO] [stdout] 629 | let mut list = match heirarchy { [INFO] [stdout] | ________________________^ [INFO] [stdout] 630 | | Some(h) => h, [INFO] [stdout] 631 | | None => Vec::new(), [INFO] [stdout] 632 | | }; [INFO] [stdout] | |_________^ help: replace it with: `heirarchy.unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dua/policy.rs:339:9 [INFO] [stdout] | [INFO] [stdout] 339 | return policy; [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] 339 - return policy; [INFO] [stdout] 339 + policy [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/dua/policy.rs:420:9 [INFO] [stdout] | [INFO] [stdout] 420 | policy.push_str(")"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `policy.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/dua/policy.rs:510:9 [INFO] [stdout] | [INFO] [stdout] 510 | policy.push_str(")"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `policy.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/dua/policy.rs:672:30 [INFO] [stdout] | [INFO] [stdout] 672 | serde_json::from_str(&serialized).unwrap() [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [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: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/dua/policy.rs:1128:21 [INFO] [stdout] | [INFO] [stdout] 1128 | / match self.has_category(condition.to_string()) { [INFO] [stdout] 1129 | | false => conflicts.push(condition), [INFO] [stdout] 1130 | | true => {} [INFO] [stdout] 1131 | | }; [INFO] [stdout] | |_____________________^ help: try: `if self.has_category(condition.to_string()) == false { conflicts.push(condition) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/dua/policy.rs:1134:21 [INFO] [stdout] | [INFO] [stdout] 1134 | / match self.has_subject(condition.to_string()) { [INFO] [stdout] 1135 | | false => conflicts.push(condition), [INFO] [stdout] 1136 | | true => {} [INFO] [stdout] 1137 | | }; [INFO] [stdout] | |_____________________^ help: try: `if self.has_subject(condition.to_string()) == false { conflicts.push(condition) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/dua/policy.rs:1140:21 [INFO] [stdout] | [INFO] [stdout] 1140 | / match self.has_use(condition.to_string()) { [INFO] [stdout] 1141 | | false => conflicts.push(condition), [INFO] [stdout] 1142 | | true => {} [INFO] [stdout] 1143 | | }; [INFO] [stdout] | |_____________________^ help: try: `if self.has_use(condition.to_string()) == false { conflicts.push(condition) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `String` should have a snake case name [INFO] [stdout] --> src/dua/policy.rs:1127:37 [INFO] [stdout] | [INFO] [stdout] 1127 | Condition::Category(String) => { [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `string` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `String` should have a snake case name [INFO] [stdout] --> src/dua/policy.rs:1133:36 [INFO] [stdout] | [INFO] [stdout] 1133 | Condition::Subject(String) => { [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `String` should have a snake case name [INFO] [stdout] --> src/dua/policy.rs:1139:32 [INFO] [stdout] | [INFO] [stdout] 1139 | Condition::Use(String) => { [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `String` [INFO] [stdout] --> src/dua/policy.rs:1127:37 [INFO] [stdout] | [INFO] [stdout] 1127 | Condition::Category(String) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_String` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `String` [INFO] [stdout] --> src/dua/policy.rs:1133:36 [INFO] [stdout] | [INFO] [stdout] 1133 | Condition::Subject(String) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `String` [INFO] [stdout] --> src/dua/policy.rs:1139:32 [INFO] [stdout] | [INFO] [stdout] 1139 | Condition::Use(String) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_String` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TfIdfzr` is never constructed [INFO] [stdout] --> src/dpi/mod.rs:1358:16 [INFO] [stdout] | [INFO] [stdout] 1358 | struct TfIdfzr; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TfIdfzr` is never constructed [INFO] [stdout] --> src/dpi/mod.rs:1398:16 [INFO] [stdout] | [INFO] [stdout] 1398 | struct TfIdfzr; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TfIdfzr` is never constructed [INFO] [stdout] --> src/dpi/mod.rs:1439:16 [INFO] [stdout] | [INFO] [stdout] 1439 | struct TfIdfzr; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dpi/mod.rs:1305:30 [INFO] [stdout] | [INFO] [stdout] 1305 | serde_json::from_str(&serialized).unwrap() [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [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/dpi/mod.rs:1481:39 [INFO] [stdout] | [INFO] [stdout] 1481 | let dpiarc = Arc::<&DPI>::new(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [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 to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/dpi/mod.rs:1599:43 [INFO] [stdout] | [INFO] [stdout] 1599 | if (n / docs.len() as f64) >= Self::TFIDF_LIMIT as f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Self::TFIDF_LIMIT` [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: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/dpi/mod.rs:1705:13 [INFO] [stdout] | [INFO] [stdout] 1705 | / match tkn.to_lowercase() == word.to_lowercase() { [INFO] [stdout] 1706 | | true => { [INFO] [stdout] 1707 | | let idx_scope: Vec = vec![-2, -1, 1, 2]; [INFO] [stdout] ... | [INFO] [stdout] 1728 | | false => {} [INFO] [stdout] 1729 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1705 ~ if tkn.to_lowercase() == word.to_lowercase() == true { [INFO] [stdout] 1706 + let idx_scope: Vec = vec![-2, -1, 1, 2]; [INFO] [stdout] 1707 + [INFO] [stdout] 1708 + for i in &idx_scope { [INFO] [stdout] 1709 + let t = match add(idx, *i) >= tokens.len() { [INFO] [stdout] 1710 + true => tokens.len() - 1, [INFO] [stdout] 1711 + false => add(idx, *i), [INFO] [stdout] 1712 + }; [INFO] [stdout] 1713 + let word = tokens[t].clone(); [INFO] [stdout] 1714 + let cnt = freq_counts.get(&word).unwrap(); [INFO] [stdout] 1715 + if (cnt / total_count) <= Self::TF_LIMIT as usize { [INFO] [stdout] 1716 + suggestions.push(word.clone()); [INFO] [stdout] 1717 + [INFO] [stdout] 1718 + suggestions.append(&mut DPI::suggest_from_sounds_like( [INFO] [stdout] 1719 + word.clone(), [INFO] [stdout] 1720 + tokens.clone(), [INFO] [stdout] 1721 + )); [INFO] [stdout] 1722 + suggestions [INFO] [stdout] 1723 + .append(&mut DPI::suggest_from_levenshtein(word, tokens.clone())); [INFO] [stdout] 1724 + } [INFO] [stdout] 1725 + } [INFO] [stdout] 1726 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/dpi/mod.rs:1751:13 [INFO] [stdout] | [INFO] [stdout] 1751 | / match Self::sounds_like(&word, tkn) { [INFO] [stdout] 1752 | | true => { [INFO] [stdout] 1753 | | suggestions.push(tkn.to_string()); [INFO] [stdout] ... | [INFO] [stdout] 1756 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1751 ~ if Self::sounds_like(&word, tkn) == true { [INFO] [stdout] 1752 + suggestions.push(tkn.to_string()); [INFO] [stdout] 1753 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/dpi/mod.rs:2235:9 [INFO] [stdout] | [INFO] [stdout] 2235 | / let mut lists = Vec::new(); [INFO] [stdout] 2236 | | [INFO] [stdout] 2237 | | lists.push(Self::basic_list()); [INFO] [stdout] 2238 | | lists.push(Self::health_list()); [INFO] [stdout] 2239 | | lists.push(Self::nppi_list()); [INFO] [stdout] 2240 | | lists.push(Self::pci_list()); [INFO] [stdout] | |_____________________________________^ help: consider using the `vec![]` macro: `let lists = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/dpi/reference.rs:713:17 [INFO] [stdout] | [INFO] [stdout] 713 | assert!(!Lib::from_bytes("15001".as_bytes()).is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Lib::from_bytes("15001".as_bytes()).is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/dpi/reference.rs:714:17 [INFO] [stdout] | [INFO] [stdout] 714 | assert!(!Lib::from_bytes("36666".as_bytes()).is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Lib::from_bytes("36666".as_bytes()).is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `dpi::reference::Lib` [INFO] [stdout] --> src/dpi/reference.rs:801:34 [INFO] [stdout] | [INFO] [stdout] 801 | let try_successful_lib = Lib::try_from(Lib::TEXT_SSN_ABBR); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `Lib::try_from()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u16` is unnecessary [INFO] [stdout] --> src/dpi/reference.rs:819:48 [INFO] [stdout] | [INFO] [stdout] 819 | let try_successful_u16 = Lib::try_from(15000 as u16); [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `15000_u16` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/dpi/mod.rs:2269:9 [INFO] [stdout] | [INFO] [stdout] 2269 | / ... let mut v = Vec::new(); [INFO] [stdout] 2270 | | ... v.push( DPI { [INFO] [stdout] 2271 | | ... key_patterns: Some(vec!["###p##p####".to_string()]), [INFO] [stdout] 2272 | | ... key_regexs: Some(vec![r"^(?!b(d)1+-(d)1+-(d)1+b)(?!123-45-6789|219-09-9999|078-05-1120)(?!666|000|9d{2})d{3}-(... [INFO] [stdout] 2273 | | ... key_words: Some(vec!["ssn".to_string()]), [INFO] [stdout] 2274 | | ... scores: ScoreCard::new(), [INFO] [stdout] 2275 | | ... }); [INFO] [stdout] | |_________________^ help: consider using the `vec![]` macro: `let v = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/dpi/mod.rs:2484:21 [INFO] [stdout] | [INFO] [stdout] 2484 | n = n + TfIdfzr::tfidf(key, doc_idx, docs.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `n += TfIdfzr::tfidf(key, doc_idx, docs.clone())` [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: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/dpi/mod.rs:2487:47 [INFO] [stdout] | [INFO] [stdout] 2487 | if (n / docs.len() as f64) >= DPI::TFIDF_LIMIT as f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `DPI::TFIDF_LIMIT` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting float literal to `f64` is unnecessary [INFO] [stdout] --> src/dpi/mod.rs:2493:54 [INFO] [stdout] | [INFO] [stdout] 2493 | assert_eq!(*rslts.get("statement").unwrap(), 67.13741764082893 as f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `67.13741764082893_f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/dpi/mod.rs:2518:21 [INFO] [stdout] | [INFO] [stdout] 2518 | n = n + TfIdfzr::tfidf(key, doc_idx, docs.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `n += TfIdfzr::tfidf(key, doc_idx, docs.clone())` [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: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/dpi/mod.rs:2521:47 [INFO] [stdout] | [INFO] [stdout] 2521 | if (n / docs.len() as f64) >= DPI::TFIDF_LIMIT as f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `DPI::TFIDF_LIMIT` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting float literal to `f64` is unnecessary [INFO] [stdout] --> src/dpi/mod.rs:2527:54 [INFO] [stdout] | [INFO] [stdout] 2527 | assert_eq!(*rslts.get("statement").unwrap(), 67.13741764082893 as f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `67.13741764082893_f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dpi/mod.rs:2629:9 [INFO] [stdout] | [INFO] [stdout] 2629 | assert!(true); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] = note: `#[warn(clippy::assertions_on_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get("statement").is_some()` [INFO] [stdout] --> src/dpi/mod.rs:2654:29 [INFO] [stdout] | [INFO] [stdout] 2654 | assert!(suggestions.get("statement").is_some()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key("statement")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dpi/mod.rs:2662:21 [INFO] [stdout] | [INFO] [stdout] 2662 | None => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/dpi/mod.rs:2677:17 [INFO] [stdout] | [INFO] [stdout] 2677 | assert!(rslts.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!rslts.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/dpi/mod.rs:2691:17 [INFO] [stdout] | [INFO] [stdout] 2691 | assert!(rslts.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!rslts.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/dpi/mod.rs:2705:17 [INFO] [stdout] | [INFO] [stdout] 2705 | assert!(rslts.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!rslts.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dpi/mod.rs:2811:23 [INFO] [stdout] | [INFO] [stdout] 2811 | Ok(_x) => assert!(true), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dpi/mod.rs:2814:17 [INFO] [stdout] | [INFO] [stdout] 2814 | assert!(false) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dpi/mod.rs:2824:23 [INFO] [stdout] | [INFO] [stdout] 2824 | Ok(_x) => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dpi/mod.rs:2826:17 [INFO] [stdout] | [INFO] [stdout] 2826 | assert!(true) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/dpi/mod.rs:2894:34 [INFO] [stdout] | [INFO] [stdout] 2894 | assert_eq!(pttrn_def.get(&"VowelUpper".to_string()), 'V'); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `"VowelUpper"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/dpi/mod.rs:2900:34 [INFO] [stdout] | [INFO] [stdout] 2900 | assert_eq!(pttrn_def.get(&"VowelUpper".to_string()), 'V'); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `"VowelUpper"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dsg/mod.rs:145:36 [INFO] [stdout] | [INFO] [stdout] 145 | match serde_json::from_str(&serialized) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dsg/mod.rs:452:53 [INFO] [stdout] | [INFO] [stdout] 452 | match guard.decrypt_data(key.to_vec(), Some(&nonce), message_received.to_vec()) { [INFO] [stdout] | ^^^^^^ help: change this to: `nonce` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:457:17 [INFO] [stdout] | [INFO] [stdout] 457 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dsg/mod.rs:473:53 [INFO] [stdout] | [INFO] [stdout] 473 | match guard.decrypt_data(key.to_vec(), Some(&nonce), message_received.to_vec()) { [INFO] [stdout] | ^^^^^^ help: change this to: `nonce` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:474:22 [INFO] [stdout] | [INFO] [stdout] 474 | Ok(_) => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dsg/mod.rs:475:23 [INFO] [stdout] | [INFO] [stdout] 475 | Err(_) => assert!(true), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dsg/mod.rs:488:17 [INFO] [stdout] | [INFO] [stdout] 488 | assert!(true); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:491:17 [INFO] [stdout] | [INFO] [stdout] 491 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:504:22 [INFO] [stdout] | [INFO] [stdout] 504 | Ok(_) => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dsg/mod.rs:505:23 [INFO] [stdout] | [INFO] [stdout] 505 | Err(_) => assert!(true), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dsg/mod.rs:525:21 [INFO] [stdout] | [INFO] [stdout] 525 | assert!(true); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:529:21 [INFO] [stdout] | [INFO] [stdout] 529 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:541:17 [INFO] [stdout] | [INFO] [stdout] 541 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:559:17 [INFO] [stdout] | [INFO] [stdout] 559 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dsg/mod.rs:567:17 [INFO] [stdout] | [INFO] [stdout] 567 | assert!(true); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:571:17 [INFO] [stdout] | [INFO] [stdout] 571 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dsg/mod.rs:592:21 [INFO] [stdout] | [INFO] [stdout] 592 | assert!(true); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:596:21 [INFO] [stdout] | [INFO] [stdout] 596 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dsg/mod.rs:603:17 [INFO] [stdout] | [INFO] [stdout] 603 | assert!(true); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:607:17 [INFO] [stdout] | [INFO] [stdout] 607 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:640:22 [INFO] [stdout] | [INFO] [stdout] 640 | Ok(_) => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dsg/mod.rs:641:23 [INFO] [stdout] | [INFO] [stdout] 641 | Err(_) => assert!(true), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:660:17 [INFO] [stdout] | [INFO] [stdout] 660 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:671:17 [INFO] [stdout] | [INFO] [stdout] 671 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:687:22 [INFO] [stdout] | [INFO] [stdout] 687 | Ok(_) => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dsg/mod.rs:688:23 [INFO] [stdout] | [INFO] [stdout] 688 | Err(_) => assert!(true), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Padding` which implements the `Copy` trait [INFO] [stdout] --> src/dsg/mod.rs:698:78 [INFO] [stdout] | [INFO] [stdout] 698 | let trans = match guard.secure_for_tranfer(pub_key, message.clone(), padding.clone()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `padding` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:701:17 [INFO] [stdout] | [INFO] [stdout] 701 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:749:17 [INFO] [stdout] | [INFO] [stdout] 749 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dsg/mod.rs:796:17 [INFO] [stdout] | [INFO] [stdout] 796 | assert!(true); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:832:22 [INFO] [stdout] | [INFO] [stdout] 832 | Ok(_) => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dsg/mod.rs:833:26 [INFO] [stdout] | [INFO] [stdout] 833 | Err(_err) => assert!(true), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:885:17 [INFO] [stdout] | [INFO] [stdout] 885 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/dsg/mod.rs:908:22 [INFO] [stdout] | [INFO] [stdout] 908 | Ok(_) => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/dsg/mod.rs:909:23 [INFO] [stdout] | [INFO] [stdout] 909 | Err(_) => assert!(true), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dtc/mod.rs:307:36 [INFO] [stdout] | [INFO] [stdout] 307 | match serde_json::from_str(&serialized) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [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: length comparison to zero [INFO] [stdout] --> src/dtc/mod.rs:515:17 [INFO] [stdout] | [INFO] [stdout] 515 | assert!(mkrchn.serialize().len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!mkrchn.serialize().is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/dtc/mod.rs:550:9 [INFO] [stdout] | [INFO] [stdout] 550 | assert_eq!(Tracker::is_valid(&tracker_tampered), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 550 - assert_eq!(Tracker::is_valid(&tracker_tampered), false); [INFO] [stdout] 550 + assert!(!Tracker::is_valid(&tracker_tampered)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dua/mod.rs:128:30 [INFO] [stdout] | [INFO] [stdout] 128 | serde_json::from_str(&serialized).unwrap() [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/dua/data_category.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | / pub fn new( [INFO] [stdout] 64 | | nme: String, [INFO] [stdout] 65 | | descr: String, [INFO] [stdout] 66 | | key: String, [INFO] [stdout] ... | [INFO] [stdout] 71 | | ind_active: bool, [INFO] [stdout] 72 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` 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/dua/data_category.rs:134:30 [INFO] [stdout] | [INFO] [stdout] 134 | serde_json::from_str(&serialized).unwrap() [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [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: you should consider adding a `Default` implementation for `DataCategoryFactory` [INFO] [stdout] --> src/dua/data_category.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | / pub fn new() -> Self { [INFO] [stdout] 190 | | DataCategoryFactory { [INFO] [stdout] 191 | | data_categories: Self::build_data_categories(), [INFO] [stdout] 192 | | } [INFO] [stdout] 193 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 175 + impl Default for DataCategoryFactory { [INFO] [stdout] 176 + fn default() -> Self { [INFO] [stdout] 177 + Self::new() [INFO] [stdout] 178 + } [INFO] [stdout] 179 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_category.rs:255:43 [INFO] [stdout] | [INFO] [stdout] 255 | let filtered: Vec = self [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 256 | | .data_categories [INFO] [stdout] 257 | | .iter() [INFO] [stdout] 258 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 255 ~ let filtered: Vec = self [INFO] [stdout] 256 + .data_categories [INFO] [stdout] 257 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/dua/data_category.rs:259:25 [INFO] [stdout] | [INFO] [stdout] 259 | .filter(|s| s.active == true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `s.active` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_category.rs:288:43 [INFO] [stdout] | [INFO] [stdout] 288 | let filtered: Vec = self [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 289 | | .data_categories [INFO] [stdout] 290 | | .iter() [INFO] [stdout] 291 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 288 ~ let filtered: Vec = self [INFO] [stdout] 289 + .data_categories [INFO] [stdout] 290 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_category.rs:324:43 [INFO] [stdout] | [INFO] [stdout] 324 | let filtered: Vec = self [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 325 | | .data_categories [INFO] [stdout] 326 | | .iter() [INFO] [stdout] 327 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 324 ~ let filtered: Vec = self [INFO] [stdout] 325 + .data_categories [INFO] [stdout] 326 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_category.rs:358:43 [INFO] [stdout] | [INFO] [stdout] 358 | let filtered: Vec = self [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 359 | | .data_categories [INFO] [stdout] 360 | | .iter() [INFO] [stdout] 361 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 358 ~ let filtered: Vec = self [INFO] [stdout] 359 + .data_categories [INFO] [stdout] 360 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_category.rs:394:51 [INFO] [stdout] | [INFO] [stdout] 394 | let filtered: Vec = self [INFO] [stdout] | ___________________________________________________^ [INFO] [stdout] 395 | | .data_categories [INFO] [stdout] 396 | | .iter() [INFO] [stdout] 397 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 394 ~ let filtered: Vec = self [INFO] [stdout] 395 + .data_categories [INFO] [stdout] 396 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/dua/data_category.rs:438:24 [INFO] [stdout] | [INFO] [stdout] 438 | let mut list = match heirarchy { [INFO] [stdout] | ________________________^ [INFO] [stdout] 439 | | Some(h) => h, [INFO] [stdout] 440 | | None => Vec::new(), [INFO] [stdout] 441 | | }; [INFO] [stdout] | |_________^ help: replace it with: `heirarchy.unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/dua/data_category.rs:472:9 [INFO] [stdout] | [INFO] [stdout] 462 | / let category = DataCategory::new( [INFO] [stdout] 463 | | "Authentication Data".to_string(), [INFO] [stdout] 464 | | "Data used to manage access to the system.".to_string(), [INFO] [stdout] 465 | | "system.authentication".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 470 | | true, [INFO] [stdout] 471 | | ); [INFO] [stdout] | |__________- unnecessary `let` binding [INFO] [stdout] 472 | category [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 462 ~ [INFO] [stdout] 463 ~ DataCategory::new( [INFO] [stdout] 464 + "Authentication Data".to_string(), [INFO] [stdout] 465 + "Data used to manage access to the system.".to_string(), [INFO] [stdout] 466 + "system.authentication".to_string(), [INFO] [stdout] 467 + "default_organization".to_string(), [INFO] [stdout] 468 + Some("system".to_string()), // parent key [INFO] [stdout] 469 + None, // tags [INFO] [stdout] 470 + false, [INFO] [stdout] 471 + true, [INFO] [stdout] 472 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/dua/data_subject.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | / pub fn from_str(val: &str) -> Right { [INFO] [stdout] 53 | | match val { [INFO] [stdout] 54 | | "Informed" => Right::Informed, [INFO] [stdout] 55 | | "Access" => Right::Access, [INFO] [stdout] ... | [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/dua/data_subject.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | / pub fn from_str(val: &str) -> Strategy { [INFO] [stdout] 101 | | match val { [INFO] [stdout] 102 | | "ALL" => Strategy::ALL, [INFO] [stdout] 103 | | "EXCLUDE" => Strategy::EXCLUDE, [INFO] [stdout] ... | [INFO] [stdout] 108 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dua/data_subject.rs:216:30 [INFO] [stdout] | [INFO] [stdout] 216 | serde_json::from_str(&serialized).unwrap() [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/dua/data_subject.rs:310:5 [INFO] [stdout] | [INFO] [stdout] 310 | / pub fn new( [INFO] [stdout] 311 | | nme: String, [INFO] [stdout] 312 | | descr: String, [INFO] [stdout] 313 | | key: String, [INFO] [stdout] ... | [INFO] [stdout] 319 | | ind_active: bool, [INFO] [stdout] 320 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/dua/data_subject.rs:360:9 [INFO] [stdout] | [INFO] [stdout] 360 | / match self.rights.as_ref() { [INFO] [stdout] 361 | | Some(r) => Some(r.clone().get_rights()), [INFO] [stdout] 362 | | None => None, [INFO] [stdout] 363 | | } [INFO] [stdout] | |_________^ help: try: `self.rights.as_ref().map(|r| r.clone().get_rights())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/dua/data_subject.rs:392:9 [INFO] [stdout] | [INFO] [stdout] 392 | / match self.rights.as_ref() { [INFO] [stdout] 393 | | Some(r) => Some(r.clone().get_strategy()), [INFO] [stdout] 394 | | None => None, [INFO] [stdout] 395 | | } [INFO] [stdout] | |_________^ help: try: `self.rights.as_ref().map(|r| r.clone().get_strategy())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `DataSubjectFactory` [INFO] [stdout] --> src/dua/data_subject.rs:447:5 [INFO] [stdout] | [INFO] [stdout] 447 | / pub fn new() -> Self { [INFO] [stdout] 448 | | DataSubjectFactory { [INFO] [stdout] 449 | | subjects: Self::build_subjects(), [INFO] [stdout] 450 | | } [INFO] [stdout] 451 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 433 + impl Default for DataSubjectFactory { [INFO] [stdout] 434 + fn default() -> Self { [INFO] [stdout] 435 + Self::new() [INFO] [stdout] 436 + } [INFO] [stdout] 437 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_subject.rs:528:42 [INFO] [stdout] | [INFO] [stdout] 528 | let filtered: Vec = self [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 529 | | .subjects [INFO] [stdout] 530 | | .iter() [INFO] [stdout] 531 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 528 ~ let filtered: Vec = self [INFO] [stdout] 529 + .subjects [INFO] [stdout] 530 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/dua/data_subject.rs:532:25 [INFO] [stdout] | [INFO] [stdout] 532 | .filter(|s| s.active == true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `s.active` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_subject.rs:561:42 [INFO] [stdout] | [INFO] [stdout] 561 | let filtered: Vec = self [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 562 | | .subjects [INFO] [stdout] 563 | | .iter() [INFO] [stdout] 564 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 561 ~ let filtered: Vec = self [INFO] [stdout] 562 + .subjects [INFO] [stdout] 563 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_subject.rs:597:42 [INFO] [stdout] | [INFO] [stdout] 597 | let filtered: Vec = self [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 598 | | .subjects [INFO] [stdout] 599 | | .iter() [INFO] [stdout] 600 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 597 ~ let filtered: Vec = self [INFO] [stdout] 598 + .subjects [INFO] [stdout] 599 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/dua/data_subject.rs:622:9 [INFO] [stdout] | [INFO] [stdout] 621 | let data_rights = DataRights::new(Strategy::ALL, get_rights()); [INFO] [stdout] | --------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 622 | data_rights [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 621 ~ [INFO] [stdout] 622 ~ DataRights::new(Strategy::ALL, get_rights()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/dua/data_use.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub fn from_str(val: &str) -> LegalBasis { [INFO] [stdout] 47 | | match val { [INFO] [stdout] 48 | | "Consent" => LegalBasis::Consent, [INFO] [stdout] 49 | | "Contract" => LegalBasis::Contract, [INFO] [stdout] ... | [INFO] [stdout] 56 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/dua/data_use.rs:102:5 [INFO] [stdout] | [INFO] [stdout] 102 | / pub fn from_str(val: &str) -> SpecialCategory { [INFO] [stdout] 103 | | match val { [INFO] [stdout] 104 | | "Consent" => SpecialCategory::Consent, [INFO] [stdout] 105 | | "Employment" => SpecialCategory::Employment, [INFO] [stdout] ... | [INFO] [stdout] 115 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (13/7) [INFO] [stdout] --> src/dua/data_use.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 194 | / pub fn new( [INFO] [stdout] 195 | | nme: String, [INFO] [stdout] 196 | | descr: String, [INFO] [stdout] 197 | | key: String, [INFO] [stdout] ... | [INFO] [stdout] 207 | | ind_active: bool, [INFO] [stdout] 208 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dua/data_use.rs:280:30 [INFO] [stdout] | [INFO] [stdout] 280 | serde_json::from_str(&serialized).unwrap() [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [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: you should consider adding a `Default` implementation for `DataUseFactory` [INFO] [stdout] --> src/dua/data_use.rs:340:5 [INFO] [stdout] | [INFO] [stdout] 340 | / pub fn new() -> Self { [INFO] [stdout] 341 | | DataUseFactory { [INFO] [stdout] 342 | | data_uses: Self::build_data_uses(), [INFO] [stdout] 343 | | } [INFO] [stdout] 344 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 326 + impl Default for DataUseFactory { [INFO] [stdout] 327 + fn default() -> Self { [INFO] [stdout] 328 + Self::new() [INFO] [stdout] 329 + } [INFO] [stdout] 330 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_use.rs:446:38 [INFO] [stdout] | [INFO] [stdout] 446 | let filtered: Vec = self [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 447 | | .data_uses [INFO] [stdout] 448 | | .iter() [INFO] [stdout] 449 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 446 ~ let filtered: Vec = self [INFO] [stdout] 447 + .data_uses [INFO] [stdout] 448 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/dua/data_use.rs:450:25 [INFO] [stdout] | [INFO] [stdout] 450 | .filter(|s| s.active == true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `s.active` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_use.rs:479:38 [INFO] [stdout] | [INFO] [stdout] 479 | let filtered: Vec = self [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 480 | | .data_uses [INFO] [stdout] 481 | | .iter() [INFO] [stdout] 482 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 479 ~ let filtered: Vec = self [INFO] [stdout] 480 + .data_uses [INFO] [stdout] 481 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_use.rs:515:38 [INFO] [stdout] | [INFO] [stdout] 515 | let filtered: Vec = self [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 516 | | .data_uses [INFO] [stdout] 517 | | .iter() [INFO] [stdout] 518 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 515 ~ let filtered: Vec = self [INFO] [stdout] 516 + .data_uses [INFO] [stdout] 517 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_use.rs:549:38 [INFO] [stdout] | [INFO] [stdout] 549 | let filtered: Vec = self [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 550 | | .data_uses [INFO] [stdout] 551 | | .iter() [INFO] [stdout] 552 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 549 ~ let filtered: Vec = self [INFO] [stdout] 550 + .data_uses [INFO] [stdout] 551 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/dua/data_use.rs:585:46 [INFO] [stdout] | [INFO] [stdout] 585 | let filtered: Vec = self [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 586 | | .data_uses [INFO] [stdout] 587 | | .iter() [INFO] [stdout] 588 | | .map(|s| s.clone()) [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 585 ~ let filtered: Vec = self [INFO] [stdout] 586 + .data_uses [INFO] [stdout] 587 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/dua/data_use.rs:629:24 [INFO] [stdout] | [INFO] [stdout] 629 | let mut list = match heirarchy { [INFO] [stdout] | ________________________^ [INFO] [stdout] 630 | | Some(h) => h, [INFO] [stdout] 631 | | None => Vec::new(), [INFO] [stdout] 632 | | }; [INFO] [stdout] | |_________^ help: replace it with: `heirarchy.unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/dua/data_use.rs:672:9 [INFO] [stdout] | [INFO] [stdout] 653 | / let datause = DataUse::new( [INFO] [stdout] 654 | | "Provide the capability".to_string(), [INFO] [stdout] 655 | | "Provide, give, or make available the product, service, application or system." [INFO] [stdout] 656 | | .to_string(), [INFO] [stdout] ... | [INFO] [stdout] 670 | | true, [INFO] [stdout] 671 | | ); [INFO] [stdout] | |__________- unnecessary `let` binding [INFO] [stdout] 672 | datause [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 653 ~ [INFO] [stdout] 654 ~ DataUse::new( [INFO] [stdout] 655 + "Provide the capability".to_string(), [INFO] [stdout] 656 + "Provide, give, or make available the product, service, application or system." [INFO] [stdout] 657 + .to_string(), [INFO] [stdout] 658 + "provide".to_string(), [INFO] [stdout] 659 + "default_organization".to_string(), [INFO] [stdout] 660 + None, [INFO] [stdout] 661 + Some(LegalBasis::LegitimateInterest), [INFO] [stdout] 662 + Some(SpecialCategory::VitalInterests), [INFO] [stdout] 663 + Some(vec![ [INFO] [stdout] 664 + "marketing team".to_string(), [INFO] [stdout] 665 + "dog shelter".to_string(), [INFO] [stdout] 666 + ]), [INFO] [stdout] 667 + false, [INFO] [stdout] 668 + Some("https://example.org/legitimate_interest_assessment".to_string()), [INFO] [stdout] 669 + None, [INFO] [stdout] 670 + false, [INFO] [stdout] 671 + true, [INFO] [stdout] 672 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dua/policy.rs:339:9 [INFO] [stdout] | [INFO] [stdout] 339 | return policy; [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] 339 - return policy; [INFO] [stdout] 339 + policy [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/dua/policy.rs:420:9 [INFO] [stdout] | [INFO] [stdout] 420 | policy.push_str(")"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `policy.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/dua/policy.rs:510:9 [INFO] [stdout] | [INFO] [stdout] 510 | policy.push_str(")"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `policy.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/dua/policy.rs:672:30 [INFO] [stdout] | [INFO] [stdout] 672 | serde_json::from_str(&serialized).unwrap() [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `serialized` [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: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/dua/policy.rs:1128:21 [INFO] [stdout] | [INFO] [stdout] 1128 | / match self.has_category(condition.to_string()) { [INFO] [stdout] 1129 | | false => conflicts.push(condition), [INFO] [stdout] 1130 | | true => {} [INFO] [stdout] 1131 | | }; [INFO] [stdout] | |_____________________^ help: try: `if self.has_category(condition.to_string()) == false { conflicts.push(condition) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/dua/policy.rs:1134:21 [INFO] [stdout] | [INFO] [stdout] 1134 | / match self.has_subject(condition.to_string()) { [INFO] [stdout] 1135 | | false => conflicts.push(condition), [INFO] [stdout] 1136 | | true => {} [INFO] [stdout] 1137 | | }; [INFO] [stdout] | |_____________________^ help: try: `if self.has_subject(condition.to_string()) == false { conflicts.push(condition) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/dua/policy.rs:1140:21 [INFO] [stdout] | [INFO] [stdout] 1140 | / match self.has_use(condition.to_string()) { [INFO] [stdout] 1141 | | false => conflicts.push(condition), [INFO] [stdout] 1142 | | true => {} [INFO] [stdout] 1143 | | }; [INFO] [stdout] | |_____________________^ help: try: `if self.has_use(condition.to_string()) == false { conflicts.push(condition) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/dua/policy.rs:1225:9 [INFO] [stdout] | [INFO] [stdout] 1220 | / let dup = DUP::new( [INFO] [stdout] 1221 | | "General Policy".to_string(), [INFO] [stdout] 1222 | | "This is a high-level policy.".to_string(), [INFO] [stdout] 1223 | | "1.0.1".to_string(), [INFO] [stdout] 1224 | | ); [INFO] [stdout] | |__________- unnecessary `let` binding [INFO] [stdout] 1225 | dup [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 1220 ~ [INFO] [stdout] 1221 ~ DUP::new( [INFO] [stdout] 1222 + "General Policy".to_string(), [INFO] [stdout] 1223 + "This is a high-level policy.".to_string(), [INFO] [stdout] 1224 + "1.0.1".to_string(), [INFO] [stdout] 1225 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/dua/policy.rs:1390:9 [INFO] [stdout] | [INFO] [stdout] 1390 | assert_eq!(dup.has_category(get_data_category().get_key()), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1390 - assert_eq!(dup.has_category(get_data_category().get_key()), true); [INFO] [stdout] 1390 + assert!(dup.has_category(get_data_category().get_key())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/dua/policy.rs:1397:9 [INFO] [stdout] | [INFO] [stdout] 1397 | assert_eq!(dup.has_subject(get_data_subject().get_key()), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1397 - assert_eq!(dup.has_subject(get_data_subject().get_key()), true); [INFO] [stdout] 1397 + assert!(dup.has_subject(get_data_subject().get_key())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/dua/policy.rs:1404:9 [INFO] [stdout] | [INFO] [stdout] 1404 | assert_eq!(dup.has_use(get_data_use().get_key()), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1404 - assert_eq!(dup.has_use(get_data_use().get_key()), true); [INFO] [stdout] 1404 + assert!(dup.has_use(get_data_use().get_key())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/dua/policy.rs:1410:9 [INFO] [stdout] | [INFO] [stdout] 1410 | / let mut conditions: Vec = Vec::new(); [INFO] [stdout] 1411 | | conditions.push(Condition::Category(get_data_category().get_key())); [INFO] [stdout] 1412 | | conditions.push(Condition::Subject(get_data_subject().get_key())); [INFO] [stdout] 1413 | | conditions.push(Condition::Use(get_data_use().get_key())); [INFO] [stdout] | |__________________________________________________________________^ help: consider using the `vec![]` macro: `let conditions: Vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/dua/policy.rs:1425:9 [INFO] [stdout] | [INFO] [stdout] 1425 | / let mut conditions: Vec = Vec::new(); [INFO] [stdout] 1426 | | conditions.push(Condition::Category(get_data_category().get_key())); [INFO] [stdout] 1427 | | conditions.push(Condition::Subject(get_data_subject().get_key())); [INFO] [stdout] 1428 | | conditions.push(Condition::Use(get_data_use().get_key())); [INFO] [stdout] | |__________________________________________________________________^ help: consider using the `vec![]` macro: `let conditions: Vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/dua/policy.rs:1439:9 [INFO] [stdout] | [INFO] [stdout] 1439 | / let mut conditions: Vec = Vec::new(); [INFO] [stdout] 1440 | | conditions.push(Condition::Category(get_data_category().get_key())); [INFO] [stdout] 1441 | | conditions.push(Condition::Subject(get_data_subject().get_key())); [INFO] [stdout] 1442 | | conditions.push(Condition::Use(get_data_use().get_key())); [INFO] [stdout] | |__________________________________________________________________^ help: consider using the `vec![]` macro: `let conditions: Vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/dua/mod.rs:177:9 [INFO] [stdout] | [INFO] [stdout] 177 | / let mut v = Vec::new(); [INFO] [stdout] 178 | | v.push(DUA { [INFO] [stdout] 179 | | agreement_name: "billing".to_string(), [INFO] [stdout] 180 | | location: "www.dua.org/billing.pdf".to_string(), [INFO] [stdout] 181 | | agreed_dtm: 1553988607, [INFO] [stdout] 182 | | }); [INFO] [stdout] | |___________^ help: consider using the `vec![]` macro: `let v = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/dpi/mod.rs:2280:21 [INFO] [stdout] | [INFO] [stdout] 2280 | let files = vec![ [INFO] [stdout] | _____________________^ [INFO] [stdout] 2281 | | "acme_payment_notification.txt", [INFO] [stdout] 2282 | | "renewal_notification.txt", [INFO] [stdout] 2283 | | "statement_ready_notification.txt", [INFO] [stdout] 2284 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 2280 ~ let files = ["acme_payment_notification.txt", [INFO] [stdout] 2281 + "renewal_notification.txt", [INFO] [stdout] 2282 ~ "statement_ready_notification.txt"]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/dpi/mod.rs:2668:22 [INFO] [stdout] | [INFO] [stdout] 2668 | let tokens = vec!["My", "ssn", "is", "003-76-0098"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["My", "ssn", "is", "003-76-0098"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/dpi/mod.rs:2682:22 [INFO] [stdout] | [INFO] [stdout] 2682 | let tokens = vec!["My", "ssn", "is", "003-76-0098"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["My", "ssn", "is", "003-76-0098"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/dpi/mod.rs:2696:22 [INFO] [stdout] | [INFO] [stdout] 2696 | let tokens = vec!["My", "ssn", "is", "003-76-0098"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["My", "ssn", "is", "003-76-0098"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `String` should have a snake case name [INFO] [stdout] --> src/dua/policy.rs:1127:37 [INFO] [stdout] | [INFO] [stdout] 1127 | Condition::Category(String) => { [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `string` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `String` should have a snake case name [INFO] [stdout] --> src/dua/policy.rs:1133:36 [INFO] [stdout] | [INFO] [stdout] 1133 | Condition::Subject(String) => { [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `String` should have a snake case name [INFO] [stdout] --> src/dua/policy.rs:1139:32 [INFO] [stdout] | [INFO] [stdout] 1139 | Condition::Use(String) => { [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `string` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.83s [INFO] running `Command { std: "docker" "inspect" "cdd1074d3310c3fe28acd20b01b6aebff860aa71d0e8c0a06063e48aa3219e31", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cdd1074d3310c3fe28acd20b01b6aebff860aa71d0e8c0a06063e48aa3219e31", kill_on_drop: false }` [INFO] [stdout] cdd1074d3310c3fe28acd20b01b6aebff860aa71d0e8c0a06063e48aa3219e31