[INFO] fetching crate kybercheck 1.3.0... [INFO] testing kybercheck-1.3.0 against try#bd7d74411512a3dd3b35d2f699c51dd2557c7e7e+cargoflags=-Zbuild-dir-new-layout for pr-149852-1 [INFO] extracting crate kybercheck 1.3.0 into /workspace/builds/worker-5-tc2/source [INFO] started tweaking crates.io crate kybercheck 1.3.0 [INFO] finished tweaking crates.io crate kybercheck 1.3.0 [INFO] tweaked toml for crates.io crate kybercheck 1.3.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate kybercheck 1.3.0 on toolchain bd7d74411512a3dd3b35d2f699c51dd2557c7e7e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate kybercheck 1.3.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" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 92a1b39c68ca4541c76f92191905b627374ed05bd8fe337b490bad4fc1d1b2ff [INFO] running `Command { std: "docker" "start" "-a" "92a1b39c68ca4541c76f92191905b627374ed05bd8fe337b490bad4fc1d1b2ff", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "92a1b39c68ca4541c76f92191905b627374ed05bd8fe337b490bad4fc1d1b2ff", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "92a1b39c68ca4541c76f92191905b627374ed05bd8fe337b490bad4fc1d1b2ff", kill_on_drop: false }` [INFO] [stdout] 92a1b39c68ca4541c76f92191905b627374ed05bd8fe337b490bad4fc1d1b2ff [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "build" "--frozen" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }` [INFO] [stdout] 1f9fa775d0d5c6f97500a745f439ad166cd8382b67fb584d890676d1963437d1 [INFO] running `Command { std: "docker" "start" "-a" "1f9fa775d0d5c6f97500a745f439ad166cd8382b67fb584d890676d1963437d1", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.178 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling tracing-core v0.1.35 [INFO] [stderr] Compiling indexmap v2.12.1 [INFO] [stderr] Compiling ahash v0.7.8 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Compiling syn v2.0.111 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Compiling dlv-list v0.3.0 [INFO] [stderr] Compiling portable-atomic v1.11.1 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling pest v2.8.4 [INFO] [stderr] Compiling linked-hash-map v0.5.6 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling yaml-rust v0.4.5 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling clap_builder v4.5.53 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling number_prefix v0.4.0 [INFO] [stderr] Compiling iana-time-zone v0.1.64 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling pathdiff v0.2.3 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling signal-hook-registry v1.4.7 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.1 [INFO] [stderr] Compiling cc v1.0.106 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling pest_meta v2.8.4 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling directories v5.0.1 [INFO] [stderr] Compiling uuid v1.19.0 [INFO] [stderr] Compiling ordered-multimap v0.4.3 [INFO] [stderr] Compiling indicatif v0.17.11 [INFO] [stderr] Compiling tempfile v3.23.0 [INFO] [stderr] Compiling rust-ini v0.18.0 [INFO] [stderr] Compiling tree-sitter v0.20.10 [INFO] [stderr] Compiling ring v0.17.9 [INFO] [stderr] Compiling libz-sys v1.1.23 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling libssh2-sys v0.3.1 [INFO] [stderr] Compiling libgit2-sys v0.16.2+1.7.2 [INFO] [stderr] Compiling tree-sitter-c v0.20.8 [INFO] [stderr] Compiling tree-sitter-php v0.20.0 [INFO] [stderr] Compiling tree-sitter-go v0.20.0 [INFO] [stderr] Compiling tree-sitter-javascript v0.20.4 [INFO] [stderr] Compiling tree-sitter-java v0.20.2 [INFO] [stderr] Compiling tree-sitter-typescript v0.20.5 [INFO] [stderr] Compiling tree-sitter-rust v0.20.4 [INFO] [stderr] Compiling tree-sitter-c-sharp v0.20.0 [INFO] [stderr] Compiling tree-sitter-bash v0.20.5 [INFO] [stderr] Compiling tree-sitter-cpp v0.20.5 [INFO] [stderr] Compiling tree-sitter-python v0.20.4 [INFO] [stderr] Compiling tree-sitter-ruby v0.20.1 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling pest_generator v2.8.4 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling ignore v0.4.25 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling pest_derive v2.8.4 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling rustls-webpki v0.101.7 [INFO] [stderr] Compiling sct v0.7.1 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling tracing v0.1.43 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling clap v4.5.53 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml v0.5.11 [INFO] [stderr] Compiling json5 v0.4.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling ron v0.7.1 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling url v2.5.7 [INFO] [stderr] Compiling config v0.13.4 [INFO] [stderr] Compiling tokio-util v0.7.17 [INFO] [stderr] Compiling tokio-rustls v0.24.1 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling h2 v0.3.27 [INFO] [stderr] Compiling git2 v0.18.3 [INFO] [stderr] Compiling hyper v0.14.32 [INFO] [stderr] Compiling hyper-rustls v0.24.2 [INFO] [stderr] Compiling reqwest v0.11.27 [INFO] [stderr] Compiling kybercheck v1.3.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `RulePattern` [INFO] [stdout] --> src/analyzers/mod.rs:5:41 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::rules::{get_all_rules, Rule, RulePattern}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Language`, `Location`, and `MigrationImpact` [INFO] [stdout] --> src/analyzers/mod.rs:6:20 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::types::{Language, Location, MigrationImpact, Severity, Vulnerability}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/analyzers/mod.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/javascript.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/python.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/go.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/java.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/rust.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/cpp.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/csharp.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/php.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/ruby.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/shell.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dependency_rules::DependencyRule` [INFO] [stdout] --> src/rules/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use dependency_rules::DependencyRule; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `get_parser_for_file` [INFO] [stdout] --> src/scanner.rs:17:22 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::parsers::{get_parser_for_file, parse_file}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `tempfile::TempDir::into_path`: use TempDir::keep() [INFO] [stdout] --> src/main.rs:597:34 [INFO] [stdout] | [INFO] [stdout] 597 | let kept_path = temp_dir.into_path(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> src/analyzers/ast_analyzer.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | node: &Node, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1164:13 [INFO] [stdout] | [INFO] [stdout] 1164 | let mut in_java_string = false; // "..." [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1165:13 [INFO] [stdout] | [INFO] [stdout] 1165 | let mut in_lua_multiline = false; // [[ ... ]] [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `in_java_string` [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1164:13 [INFO] [stdout] | [INFO] [stdout] 1164 | let mut in_java_string = false; // "..." [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_java_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `in_lua_multiline` [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1165:13 [INFO] [stdout] | [INFO] [stdout] 1165 | let mut in_lua_multiline = false; // [[ ... ]] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_lua_multiline` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `last_char` is assigned to, but never used [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1169:13 [INFO] [stdout] | [INFO] [stdout] 1169 | let mut last_char = ' '; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_last_char` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `last_char` is never read [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1207:13 [INFO] [stdout] | [INFO] [stdout] 1207 | last_char = ch; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1245:13 [INFO] [stdout] | [INFO] [stdout] 1245 | _ => (&["//"], &[], &[]) // Default fallback [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1245:13 [INFO] [stdout] | [INFO] [stdout] 1220 | / Language::JavaScript | Language::TypeScript | Language::Java | Language::Rust | [INFO] [stdout] 1221 | | Language::C | Language::Cpp | Language::CSharp | Language::Go | Language::Kotlin | [INFO] [stdout] 1222 | | Language::Scala | Language::Swift | Language::Dart | Language::Groovy | [INFO] [stdout] 1223 | | Language::ObjectiveC | Language::Php => { [INFO] [stdout] | |________________________________________________- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 1226 | Language::Python => { [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 1229 | Language::Ruby => { [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 1234 | Language::Shell | Language::Perl => { [INFO] [stdout] | -------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 1245 | _ => (&["//"], &[], &[]) // Default fallback [INFO] [stdout] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/analyzers/languages/javascript.rs:358:13 [INFO] [stdout] | [INFO] [stdout] 120 | "call_expression" => { [INFO] [stdout] | ----------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 358 | "call_expression" if node_text.contains("require(") => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `language` [INFO] [stdout] --> src/rules/mod.rs:86:31 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn get_rules_for_language(language: &crate::types::Language) -> Vec { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_language` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/types.rs:281:13 [INFO] [stdout] | [INFO] [stdout] 281 | let mut by_language: HashMap = HashMap::new(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_snippet` is never used [INFO] [stdout] --> src/analyzers/mod.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn extract_snippet(source: &str, line: usize, context_lines: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `offset_to_position` is never used [INFO] [stdout] --> src/analyzers/mod.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn offset_to_position(source: &str, offset: usize) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_tree_sitter_language` is never used [INFO] [stdout] --> src/parsers/mod.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub trait LanguageParser { [INFO] [stdout] | -------------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 40 | fn get_tree_sitter_language(&self) -> tree_sitter::Language; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_parser` is never used [INFO] [stdout] --> src/parsers/mod.rs:91:4 [INFO] [stdout] | [INFO] [stdout] 91 | fn create_parser(language: tree_sitter::Language) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TsxParser` is never constructed [INFO] [stdout] --> src/parsers/javascript.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 70 | pub struct TsxParser { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/parsers/javascript.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl TsxParser { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 75 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `compact` is never used [INFO] [stdout] --> src/reporters/json.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl JsonReporter { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn compact() -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `name` are never read [INFO] [stdout] --> src/rules/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct Rule { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 12 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 13 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Rule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `module` is never read [INFO] [stdout] --> src/rules/mod.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 27 | FunctionCall { [INFO] [stdout] | ------------ field in this variant [INFO] [stdout] 28 | names: Vec, [INFO] [stdout] 29 | module: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RulePattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `object_type` is never read [INFO] [stdout] --> src/rules/mod.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 37 | MethodCall { [INFO] [stdout] | ---------- field in this variant [INFO] [stdout] 38 | object_type: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RulePattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Regex` and `AstNode` are never constructed [INFO] [stdout] --> src/rules/mod.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum RulePattern { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 46 | Regex { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | AstNode { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RulePattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_rules_for_language` is never used [INFO] [stdout] --> src/rules/mod.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn get_rules_for_language(language: &crate::types::Language) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CryptoRule` is never used [INFO] [stdout] --> src/rules/crypto_rules.rs:429:11 [INFO] [stdout] | [INFO] [stdout] 429 | pub trait CryptoRule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RuleContext` is never constructed [INFO] [stdout] --> src/rules/crypto_rules.rs:435:12 [INFO] [stdout] | [INFO] [stdout] 435 | pub struct RuleContext<'a> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RuleMatch` is never constructed [INFO] [stdout] --> src/rules/crypto_rules.rs:444:12 [INFO] [stdout] | [INFO] [stdout] 444 | pub struct RuleMatch { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `DependencyRule` is never used [INFO] [stdout] --> src/rules/dependency_rules.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait DependencyRule { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DependencyVulnerability` is never constructed [INFO] [stdout] --> src/rules/dependency_rules.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct DependencyVulnerability { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `KnownVulnerablePackages` is never constructed [INFO] [stdout] --> src/rules/dependency_rules.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct KnownVulnerablePackages; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `javascript`, `python`, `go`, and `java` are never used [INFO] [stdout] --> src/rules/dependency_rules.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl KnownVulnerablePackages { [INFO] [stdout] | ---------------------------- associated functions in this implementation [INFO] [stdout] 33 | /// JavaScript/Node.js packages with known crypto issues [INFO] [stdout] 34 | pub fn javascript() -> Vec<(&'static str, &'static str, &'static str)> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn python() -> Vec<(&'static str, &'static str, &'static str)> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn go() -> Vec<(&'static str, &'static str, &'static str)> { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn java() -> Vec<(&'static str, &'static str, &'static str)> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 02s [INFO] running `Command { std: "docker" "inspect" "1f9fa775d0d5c6f97500a745f439ad166cd8382b67fb584d890676d1963437d1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1f9fa775d0d5c6f97500a745f439ad166cd8382b67fb584d890676d1963437d1", kill_on_drop: false }` [INFO] [stdout] 1f9fa775d0d5c6f97500a745f439ad166cd8382b67fb584d890676d1963437d1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "--no-run" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }` [INFO] [stdout] af4417694a31f221a141b064d9d9ecffc73b2ae2fbc0fafb914fe3ba91cc2dad [INFO] running `Command { std: "docker" "start" "-a" "af4417694a31f221a141b064d9d9ecffc73b2ae2fbc0fafb914fe3ba91cc2dad", kill_on_drop: false }` [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling predicates-core v1.0.9 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling assert_cmd v2.1.1 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling predicates-tree v1.0.12 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling predicates v3.1.3 [INFO] [stderr] Compiling ignore v0.4.25 [INFO] [stderr] Compiling kybercheck v1.3.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `RulePattern` [INFO] [stdout] --> src/analyzers/mod.rs:5:41 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::rules::{get_all_rules, Rule, RulePattern}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Language`, `Location`, and `MigrationImpact` [INFO] [stdout] --> src/analyzers/mod.rs:6:20 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::types::{Language, Location, MigrationImpact, Severity, Vulnerability}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/analyzers/mod.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/javascript.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/python.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/go.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/java.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/rust.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/cpp.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/csharp.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/php.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/ruby.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/analyzers/languages/shell.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dependency_rules::DependencyRule` [INFO] [stdout] --> src/rules/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use dependency_rules::DependencyRule; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `get_parser_for_file` [INFO] [stdout] --> src/scanner.rs:17:22 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::parsers::{get_parser_for_file, parse_file}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `tempfile::TempDir::into_path`: use TempDir::keep() [INFO] [stdout] --> src/main.rs:597:34 [INFO] [stdout] | [INFO] [stdout] 597 | let kept_path = temp_dir.into_path(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> src/analyzers/ast_analyzer.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | node: &Node, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1164:13 [INFO] [stdout] | [INFO] [stdout] 1164 | let mut in_java_string = false; // "..." [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1165:13 [INFO] [stdout] | [INFO] [stdout] 1165 | let mut in_lua_multiline = false; // [[ ... ]] [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `in_java_string` [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1164:13 [INFO] [stdout] | [INFO] [stdout] 1164 | let mut in_java_string = false; // "..." [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_java_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `in_lua_multiline` [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1165:13 [INFO] [stdout] | [INFO] [stdout] 1165 | let mut in_lua_multiline = false; // [[ ... ]] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_lua_multiline` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `last_char` is assigned to, but never used [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1169:13 [INFO] [stdout] | [INFO] [stdout] 1169 | let mut last_char = ' '; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_last_char` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `last_char` is never read [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1207:13 [INFO] [stdout] | [INFO] [stdout] 1207 | last_char = ch; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1245:13 [INFO] [stdout] | [INFO] [stdout] 1245 | _ => (&["//"], &[], &[]) // Default fallback [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/analyzers/pattern_matcher.rs:1245:13 [INFO] [stdout] | [INFO] [stdout] 1220 | / Language::JavaScript | Language::TypeScript | Language::Java | Language::Rust | [INFO] [stdout] 1221 | | Language::C | Language::Cpp | Language::CSharp | Language::Go | Language::Kotlin | [INFO] [stdout] 1222 | | Language::Scala | Language::Swift | Language::Dart | Language::Groovy | [INFO] [stdout] 1223 | | Language::ObjectiveC | Language::Php => { [INFO] [stdout] | |________________________________________________- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 1226 | Language::Python => { [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 1229 | Language::Ruby => { [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 1234 | Language::Shell | Language::Perl => { [INFO] [stdout] | -------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 1245 | _ => (&["//"], &[], &[]) // Default fallback [INFO] [stdout] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/analyzers/languages/javascript.rs:358:13 [INFO] [stdout] | [INFO] [stdout] 120 | "call_expression" => { [INFO] [stdout] | ----------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 358 | "call_expression" if node_text.contains("require(") => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `language` [INFO] [stdout] --> src/rules/mod.rs:86:31 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn get_rules_for_language(language: &crate::types::Language) -> Vec { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_language` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/types.rs:281:13 [INFO] [stdout] | [INFO] [stdout] 281 | let mut by_language: HashMap = HashMap::new(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_snippet` is never used [INFO] [stdout] --> src/analyzers/mod.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn extract_snippet(source: &str, line: usize, context_lines: usize) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `offset_to_position` is never used [INFO] [stdout] --> src/analyzers/mod.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn offset_to_position(source: &str, offset: usize) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_tree_sitter_language` is never used [INFO] [stdout] --> src/parsers/mod.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub trait LanguageParser { [INFO] [stdout] | -------------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 40 | fn get_tree_sitter_language(&self) -> tree_sitter::Language; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_parser` is never used [INFO] [stdout] --> src/parsers/mod.rs:91:4 [INFO] [stdout] | [INFO] [stdout] 91 | fn create_parser(language: tree_sitter::Language) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TsxParser` is never constructed [INFO] [stdout] --> src/parsers/javascript.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 70 | pub struct TsxParser { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/parsers/javascript.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl TsxParser { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 75 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `compact` is never used [INFO] [stdout] --> src/reporters/json.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl JsonReporter { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn compact() -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `name` are never read [INFO] [stdout] --> src/rules/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct Rule { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 12 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 13 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Rule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `module` is never read [INFO] [stdout] --> src/rules/mod.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 27 | FunctionCall { [INFO] [stdout] | ------------ field in this variant [INFO] [stdout] 28 | names: Vec, [INFO] [stdout] 29 | module: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RulePattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `object_type` is never read [INFO] [stdout] --> src/rules/mod.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 37 | MethodCall { [INFO] [stdout] | ---------- field in this variant [INFO] [stdout] 38 | object_type: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RulePattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Regex` and `AstNode` are never constructed [INFO] [stdout] --> src/rules/mod.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum RulePattern { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 46 | Regex { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | AstNode { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RulePattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_rules_for_language` is never used [INFO] [stdout] --> src/rules/mod.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn get_rules_for_language(language: &crate::types::Language) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CryptoRule` is never used [INFO] [stdout] --> src/rules/crypto_rules.rs:429:11 [INFO] [stdout] | [INFO] [stdout] 429 | pub trait CryptoRule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RuleContext` is never constructed [INFO] [stdout] --> src/rules/crypto_rules.rs:435:12 [INFO] [stdout] | [INFO] [stdout] 435 | pub struct RuleContext<'a> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RuleMatch` is never constructed [INFO] [stdout] --> src/rules/crypto_rules.rs:444:12 [INFO] [stdout] | [INFO] [stdout] 444 | pub struct RuleMatch { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `DependencyRule` is never used [INFO] [stdout] --> src/rules/dependency_rules.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait DependencyRule { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DependencyVulnerability` is never constructed [INFO] [stdout] --> src/rules/dependency_rules.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct DependencyVulnerability { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `KnownVulnerablePackages` is never constructed [INFO] [stdout] --> src/rules/dependency_rules.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct KnownVulnerablePackages; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `javascript`, `python`, `go`, and `java` are never used [INFO] [stdout] --> src/rules/dependency_rules.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl KnownVulnerablePackages { [INFO] [stdout] | ---------------------------- associated functions in this implementation [INFO] [stdout] 33 | /// JavaScript/Node.js packages with known crypto issues [INFO] [stdout] 34 | pub fn javascript() -> Vec<(&'static str, &'static str, &'static str)> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn python() -> Vec<(&'static str, &'static str, &'static str)> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn go() -> Vec<(&'static str, &'static str, &'static str)> { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn java() -> Vec<(&'static str, &'static str, &'static str)> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 7.75s [INFO] running `Command { std: "docker" "inspect" "af4417694a31f221a141b064d9d9ecffc73b2ae2fbc0fafb914fe3ba91cc2dad", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "af4417694a31f221a141b064d9d9ecffc73b2ae2fbc0fafb914fe3ba91cc2dad", kill_on_drop: false }` [INFO] [stdout] af4417694a31f221a141b064d9d9ecffc73b2ae2fbc0fafb914fe3ba91cc2dad [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "-Zbuild-dir-new-layout", kill_on_drop: false }` [INFO] [stdout] 5c5b9624625691ee4ce9233d1885fd0ccda5fcbf9bc557c7a456e1cd361ccd2b [INFO] running `Command { std: "docker" "start" "-a" "5c5b9624625691ee4ce9233d1885fd0ccda5fcbf9bc557c7a456e1cd361ccd2b", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `RulePattern` [INFO] [stderr] --> src/analyzers/mod.rs:5:41 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::rules::{get_all_rules, Rule, RulePattern}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Language`, `Location`, and `MigrationImpact` [INFO] [stderr] --> src/analyzers/mod.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::types::{Language, Location, MigrationImpact, Severity, Vulnerability}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `uuid::Uuid` [INFO] [stderr] --> src/analyzers/mod.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use uuid::Uuid; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `anyhow::Result` [INFO] [stderr] --> src/analyzers/languages/javascript.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use anyhow::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `anyhow::Result` [INFO] [stderr] --> src/analyzers/languages/python.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use anyhow::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `anyhow::Result` [INFO] [stderr] --> src/analyzers/languages/go.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use anyhow::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `anyhow::Result` [INFO] [stderr] --> src/analyzers/languages/java.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use anyhow::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `anyhow::Result` [INFO] [stderr] --> src/analyzers/languages/rust.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use anyhow::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `anyhow::Result` [INFO] [stderr] --> src/analyzers/languages/cpp.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use anyhow::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `anyhow::Result` [INFO] [stderr] --> src/analyzers/languages/csharp.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use anyhow::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `anyhow::Result` [INFO] [stderr] --> src/analyzers/languages/php.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use anyhow::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `anyhow::Result` [INFO] [stderr] --> src/analyzers/languages/ruby.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use anyhow::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `anyhow::Result` [INFO] [stderr] --> src/analyzers/languages/shell.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use anyhow::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `dependency_rules::DependencyRule` [INFO] [stderr] --> src/rules/mod.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | pub use dependency_rules::DependencyRule; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `get_parser_for_file` [INFO] [stderr] --> src/scanner.rs:17:22 [INFO] [stderr] | [INFO] [stderr] 17 | use crate::parsers::{get_parser_for_file, parse_file}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated method `tempfile::TempDir::into_path`: use TempDir::keep() [INFO] [stderr] --> src/main.rs:597:34 [INFO] [stderr] | [INFO] [stderr] 597 | let kept_path = temp_dir.into_path(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `node` [INFO] [stderr] --> src/analyzers/ast_analyzer.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | node: &Node, [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/analyzers/pattern_matcher.rs:1164:13 [INFO] [stderr] | [INFO] [stderr] 1164 | let mut in_java_string = false; // "..." [INFO] [stderr] | ----^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/analyzers/pattern_matcher.rs:1165:13 [INFO] [stderr] | [INFO] [stderr] 1165 | let mut in_lua_multiline = false; // [[ ... ]] [INFO] [stderr] | ----^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `in_java_string` [INFO] [stderr] --> src/analyzers/pattern_matcher.rs:1164:13 [INFO] [stderr] | [INFO] [stderr] 1164 | let mut in_java_string = false; // "..." [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_java_string` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `in_lua_multiline` [INFO] [stderr] --> src/analyzers/pattern_matcher.rs:1165:13 [INFO] [stderr] | [INFO] [stderr] 1165 | let mut in_lua_multiline = false; // [[ ... ]] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_lua_multiline` [INFO] [stderr] [INFO] [stderr] warning: variable `last_char` is assigned to, but never used [INFO] [stderr] --> src/analyzers/pattern_matcher.rs:1169:13 [INFO] [stderr] | [INFO] [stderr] 1169 | let mut last_char = ' '; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_last_char` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `last_char` is never read [INFO] [stderr] --> src/analyzers/pattern_matcher.rs:1207:13 [INFO] [stderr] | [INFO] [stderr] 1207 | last_char = ch; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/analyzers/pattern_matcher.rs:1245:13 [INFO] [stderr] | [INFO] [stderr] 1245 | _ => (&["//"], &[], &[]) // Default fallback [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/analyzers/pattern_matcher.rs:1245:13 [INFO] [stderr] | [INFO] [stderr] 1220 | / Language::JavaScript | Language::TypeScript | Language::Java | Language::Rust | [INFO] [stderr] 1221 | | Language::C | Language::Cpp | Language::CSharp | Language::Go | Language::Kotlin | [INFO] [stderr] 1222 | | Language::Scala | Language::Swift | Language::Dart | Language::Groovy | [INFO] [stderr] 1223 | | Language::ObjectiveC | Language::Php => { [INFO] [stderr] | |________________________________________________- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 1226 | Language::Python => { [INFO] [stderr] | ---------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 1229 | Language::Ruby => { [INFO] [stderr] | -------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 1234 | Language::Shell | Language::Perl => { [INFO] [stderr] | -------------------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 1245 | _ => (&["//"], &[], &[]) // Default fallback [INFO] [stderr] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/analyzers/languages/javascript.rs:358:13 [INFO] [stderr] | [INFO] [stderr] 120 | "call_expression" => { [INFO] [stderr] | ----------------- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 358 | "call_expression" if node_text.contains("require(") => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stderr] [INFO] [stderr] warning: unused variable: `language` [INFO] [stderr] --> src/rules/mod.rs:86:31 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn get_rules_for_language(language: &crate::types::Language) -> Vec { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_language` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/types.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | let mut by_language: HashMap = HashMap::new(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function `extract_snippet` is never used [INFO] [stderr] --> src/analyzers/mod.rs:79:8 [INFO] [stderr] | [INFO] [stderr] 79 | pub fn extract_snippet(source: &str, line: usize, context_lines: usize) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `offset_to_position` is never used [INFO] [stderr] --> src/analyzers/mod.rs:99:8 [INFO] [stderr] | [INFO] [stderr] 99 | pub fn offset_to_position(source: &str, offset: usize) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `get_tree_sitter_language` is never used [INFO] [stderr] --> src/parsers/mod.rs:40:8 [INFO] [stderr] | [INFO] [stderr] 37 | pub trait LanguageParser { [INFO] [stderr] | -------------- method in this trait [INFO] [stderr] ... [INFO] [stderr] 40 | fn get_tree_sitter_language(&self) -> tree_sitter::Language; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `create_parser` is never used [INFO] [stderr] --> src/parsers/mod.rs:91:4 [INFO] [stderr] | [INFO] [stderr] 91 | fn create_parser(language: tree_sitter::Language) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `TsxParser` is never constructed [INFO] [stderr] --> src/parsers/javascript.rs:70:12 [INFO] [stderr] | [INFO] [stderr] 70 | pub struct TsxParser { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/parsers/javascript.rs:75:12 [INFO] [stderr] | [INFO] [stderr] 74 | impl TsxParser { [INFO] [stderr] | -------------- associated function in this implementation [INFO] [stderr] 75 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `compact` is never used [INFO] [stderr] --> src/reporters/json.rs:16:12 [INFO] [stderr] | [INFO] [stderr] 11 | impl JsonReporter { [INFO] [stderr] | ----------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 16 | pub fn compact() -> Self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `id` and `name` are never read [INFO] [stderr] --> src/rules/mod.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 11 | pub struct Rule { [INFO] [stderr] | ---- fields in this struct [INFO] [stderr] 12 | pub id: String, [INFO] [stderr] | ^^ [INFO] [stderr] 13 | pub name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Rule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `module` is never read [INFO] [stderr] --> src/rules/mod.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 27 | FunctionCall { [INFO] [stderr] | ------------ field in this variant [INFO] [stderr] 28 | names: Vec, [INFO] [stderr] 29 | module: Option, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RulePattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `object_type` is never read [INFO] [stderr] --> src/rules/mod.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 37 | MethodCall { [INFO] [stderr] | ---------- field in this variant [INFO] [stderr] 38 | object_type: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RulePattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `Regex` and `AstNode` are never constructed [INFO] [stderr] --> src/rules/mod.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 25 | pub enum RulePattern { [INFO] [stderr] | ----------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 46 | Regex { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 50 | AstNode { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RulePattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `get_rules_for_language` is never used [INFO] [stderr] --> src/rules/mod.rs:86:8 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn get_rules_for_language(language: &crate::types::Language) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait `CryptoRule` is never used [INFO] [stderr] --> src/rules/crypto_rules.rs:429:11 [INFO] [stderr] | [INFO] [stderr] 429 | pub trait CryptoRule { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `RuleContext` is never constructed [INFO] [stderr] --> src/rules/crypto_rules.rs:435:12 [INFO] [stderr] | [INFO] [stderr] 435 | pub struct RuleContext<'a> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `RuleMatch` is never constructed [INFO] [stderr] --> src/rules/crypto_rules.rs:444:12 [INFO] [stderr] | [INFO] [stderr] 444 | pub struct RuleMatch { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait `DependencyRule` is never used [INFO] [stderr] --> src/rules/dependency_rules.rs:11:11 [INFO] [stderr] | [INFO] [stderr] 11 | pub trait DependencyRule { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `DependencyVulnerability` is never constructed [INFO] [stderr] --> src/rules/dependency_rules.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 21 | pub struct DependencyVulnerability { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `KnownVulnerablePackages` is never constructed [INFO] [stderr] --> src/rules/dependency_rules.rs:30:12 [INFO] [stderr] | [INFO] [stderr] 30 | pub struct KnownVulnerablePackages; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `javascript`, `python`, `go`, and `java` are never used [INFO] [stderr] --> src/rules/dependency_rules.rs:34:12 [INFO] [stderr] | [INFO] [stderr] 32 | impl KnownVulnerablePackages { [INFO] [stderr] | ---------------------------- associated functions in this implementation [INFO] [stderr] 33 | /// JavaScript/Node.js packages with known crypto issues [INFO] [stderr] 34 | pub fn javascript() -> Vec<(&'static str, &'static str, &'static str)> { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 47 | pub fn python() -> Vec<(&'static str, &'static str, &'static str)> { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 59 | pub fn go() -> Vec<(&'static str, &'static str, &'static str)> { [INFO] [stderr] | ^^ [INFO] [stderr] ... [INFO] [stderr] 69 | pub fn java() -> Vec<(&'static str, &'static str, &'static str)> { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: `kybercheck` (bin "kybercheck" test) generated 46 warnings (run `cargo fix --bin "kybercheck" -p kybercheck --tests` to apply 22 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.38s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/build/kybercheck/7fb0a3149035fa75/deps/kybercheck-7fb0a3149035fa75) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test config::tests::test_default_config ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "5c5b9624625691ee4ce9233d1885fd0ccda5fcbf9bc557c7a456e1cd361ccd2b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5c5b9624625691ee4ce9233d1885fd0ccda5fcbf9bc557c7a456e1cd361ccd2b", kill_on_drop: false }` [INFO] [stdout] 5c5b9624625691ee4ce9233d1885fd0ccda5fcbf9bc557c7a456e1cd361ccd2b