[INFO] fetching crate kybercheck 1.8.0...
[INFO] checking kybercheck-1.8.0 against master#c756124775121dea0e640652c5ee3c89e3dd0eb4 for pr-154971
[INFO] extracting crate kybercheck 1.8.0 into /workspace/builds/worker-0-tc1/source
[INFO] started tweaking crates.io crate kybercheck 1.8.0
[INFO] finished tweaking crates.io crate kybercheck 1.8.0
[INFO] tweaked toml for crates.io crate kybercheck 1.8.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate kybercheck 1.8.0 on toolchain c756124775121dea0e640652c5ee3c89e3dd0eb4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c756124775121dea0e640652c5ee3c89e3dd0eb4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate kybercheck 1.8.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" "+c756124775121dea0e640652c5ee3c89e3dd0eb4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded directories v5.0.1
[INFO] [stderr]   Downloaded cc v1.0.106
[INFO] [stderr]   Downloaded assert_cmd v2.1.1
[INFO] [stderr]   Downloaded pest_generator v2.8.4
[INFO] [stderr]   Downloaded colored v2.2.0
[INFO] [stderr]   Downloaded config v0.13.4
[INFO] [stderr]   Downloaded pest_meta v2.8.4
[INFO] [stderr]   Downloaded tree-sitter-go v0.20.0
[INFO] [stderr]   Downloaded pest v2.8.4
[INFO] [stderr]   Downloaded tree-sitter v0.20.10
[INFO] [stderr]   Downloaded tree-sitter-python v0.20.4
[INFO] [stderr]   Downloaded tree-sitter-java v0.20.2
[INFO] [stderr]   Downloaded git2 v0.18.3
[INFO] [stderr]   Downloaded tree-sitter-javascript v0.20.4
[INFO] [stderr]   Downloaded tree-sitter-rust v0.20.4
[INFO] [stderr]   Downloaded tree-sitter-c v0.20.8
[INFO] [stderr]   Downloaded tree-sitter-php v0.20.0
[INFO] [stderr]   Downloaded pest_derive v2.8.4
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.7
[INFO] [stderr]   Downloaded tree-sitter-bash v0.20.5
[INFO] [stderr]   Downloaded tree-sitter-ruby v0.20.1
[INFO] [stderr]   Downloaded libssh2-sys v0.3.1
[INFO] [stderr]   Downloaded libz-sys v1.1.23
[INFO] [stderr]   Downloaded tree-sitter-c-sharp v0.20.0
[INFO] [stderr]   Downloaded tree-sitter-cpp v0.20.5
[INFO] [stderr]   Downloaded tree-sitter-typescript v0.20.5
[INFO] [stderr]   Downloaded ring v0.17.9
[INFO] [stderr]   Downloaded libgit2-sys v0.16.2+1.7.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+c756124775121dea0e640652c5ee3c89e3dd0eb4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f1dda3eac196e4bacb2fd294269b6f0cb5269e2fe1851864a50ce53afc10de01
[INFO] running `Command { std: "docker" "start" "-a" "f1dda3eac196e4bacb2fd294269b6f0cb5269e2fe1851864a50ce53afc10de01", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f1dda3eac196e4bacb2fd294269b6f0cb5269e2fe1851864a50ce53afc10de01", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f1dda3eac196e4bacb2fd294269b6f0cb5269e2fe1851864a50ce53afc10de01", kill_on_drop: false }`
[INFO] [stdout] f1dda3eac196e4bacb2fd294269b6f0cb5269e2fe1851864a50ce53afc10de01
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+c756124775121dea0e640652c5ee3c89e3dd0eb4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e0afcffdce8623ee943e67a97386190f531bb5bad20b679601f8430a7ad5ccef
[INFO] running `Command { std: "docker" "start" "-a" "e0afcffdce8623ee943e67a97386190f531bb5bad20b679601f8430a7ad5ccef", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking 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]     Checking http v0.2.12
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]     Checking dlv-list v0.3.0
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]     Checking pest v2.8.4
[INFO] [stderr]     Checking winnow v0.7.14
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking predicates-core v1.0.9
[INFO] [stderr]     Checking clap_lex v0.7.6
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking clap_builder v4.5.53
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking float-cmp v0.10.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking normalize-line-endings v0.3.0
[INFO] [stderr]     Checking difflib v0.4.0
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking termtree v0.5.1
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]    Compiling assert_cmd v2.1.1
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]     Checking predicates-tree v1.0.12
[INFO] [stderr]     Checking glob v0.3.3
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking signal-hook-registry v1.4.7
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]    Compiling cc v1.0.106
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking ordered-multimap v0.4.3
[INFO] [stderr]     Checking uuid v1.19.0
[INFO] [stderr]     Checking directories v5.0.1
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]    Compiling pest_meta v2.8.4
[INFO] [stderr]     Checking rust-ini v0.18.0
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking tempfile v3.23.0
[INFO] [stderr]    Compiling tree-sitter v0.20.10
[INFO] [stderr]    Compiling ring v0.17.9
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling libz-sys v1.1.23
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling libgit2-sys v0.16.2+1.7.2
[INFO] [stderr]    Compiling tree-sitter-java v0.20.2
[INFO] [stderr]    Compiling tree-sitter-javascript v0.20.4
[INFO] [stderr]    Compiling tree-sitter-c-sharp v0.20.0
[INFO] [stderr]    Compiling tree-sitter-cpp v0.20.5
[INFO] [stderr]    Compiling tree-sitter-rust v0.20.4
[INFO] [stderr]    Compiling tree-sitter-php v0.20.0
[INFO] [stderr]    Compiling tree-sitter-go v0.20.0
[INFO] [stderr]    Compiling tree-sitter-python v0.20.4
[INFO] [stderr]    Compiling tree-sitter-typescript v0.20.5
[INFO] [stderr]    Compiling tree-sitter-ruby v0.20.1
[INFO] [stderr]    Compiling tree-sitter-bash v0.20.5
[INFO] [stderr]    Compiling tree-sitter-c v0.20.8
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking globset v0.4.18
[INFO] [stderr]     Checking ignore v0.4.25
[INFO] [stderr]     Checking predicates v3.1.3
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling pest_generator v2.8.4
[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]     Checking sct v0.7.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]     Checking tracing v0.1.43
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking clap v4.5.53
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking toml v0.5.11
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking ron v0.7.1
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking config v0.13.4
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking tokio-util v0.7.17
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking git2 v0.18.3
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking kybercheck v1.8.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: `anyhow::Result`
[INFO] [stdout]  --> src/analyzers/languages/lua.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Language`
[INFO] [stdout]   --> src/analyzers/languages/kotlin.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::types::{Language, Location, Severity, Vulnerability, VulnerabilityType};
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `kotlin::KotlinAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub use kotlin::KotlinAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `swift::SwiftAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub use swift::SwiftAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dart::DartAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub use dart::DartAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scala::ScalaAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub use scala::ScalaAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `perl::PerlAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub use perl::PerlAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `objective_c::ObjectiveCAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub use objective_c::ObjectiveCAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `haskell::HaskellAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub use haskell::HaskellAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `elixir::ElixirAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub use elixir::ElixirAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `r::RAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub use r::RAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `groovy::GroovyAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub use groovy::GroovyAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fsharp::FSharpAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub use fsharp::FSharpAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clojure::ClojureAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub use clojure::ClojureAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `solidity::SolidityAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub use solidity::SolidityAnalyzer;
[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: 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: `anyhow::Result`
[INFO] [stdout]  --> src/analyzers/languages/lua.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Language`
[INFO] [stdout]   --> src/analyzers/languages/kotlin.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::types::{Language, Location, Severity, Vulnerability, VulnerabilityType};
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `kotlin::KotlinAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub use kotlin::KotlinAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `swift::SwiftAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub use swift::SwiftAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dart::DartAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub use dart::DartAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scala::ScalaAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub use scala::ScalaAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `perl::PerlAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub use perl::PerlAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `objective_c::ObjectiveCAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub use objective_c::ObjectiveCAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `haskell::HaskellAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub use haskell::HaskellAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `elixir::ElixirAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub use elixir::ElixirAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `r::RAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub use r::RAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `groovy::GroovyAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub use groovy::GroovyAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fsharp::FSharpAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub use fsharp::FSharpAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clojure::ClojureAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub use clojure::ClojureAnalyzer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `solidity::SolidityAnalyzer`
[INFO] [stdout]   --> src/analyzers/languages/mod.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub use solidity::SolidityAnalyzer;
[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:780:34
[INFO] [stdout]     |
[INFO] [stdout] 780 |         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: use of deprecated method `tempfile::TempDir::into_path`: use TempDir::keep()
[INFO] [stdout]    --> src/main.rs:780:34
[INFO] [stdout]     |
[INFO] [stdout] 780 |         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: 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:2038:13
[INFO] [stdout]      |
[INFO] [stdout] 2038 |         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:2039:13
[INFO] [stdout]      |
[INFO] [stdout] 2039 |         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:2038:13
[INFO] [stdout]      |
[INFO] [stdout] 2038 |         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:2039:13
[INFO] [stdout]      |
[INFO] [stdout] 2039 |         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:2043:13
[INFO] [stdout]      |
[INFO] [stdout] 2043 |         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:2081:13
[INFO] [stdout]      |
[INFO] [stdout] 2081 |             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:2135:13
[INFO] [stdout]      |
[INFO] [stdout] 2135 |             _ => (&["//", "#"], &[], &[]) // Default fallback includes both // and #
[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:2135:13
[INFO] [stdout]      |
[INFO] [stdout] 2094 | /             Language::JavaScript | Language::TypeScript | Language::Java | Language::Rust | 
[INFO] [stdout] 2095 | |             Language::C | Language::Cpp | Language::CSharp | Language::Go | Language::Kotlin | 
[INFO] [stdout] 2096 | |             Language::Scala | Language::Swift | Language::Dart | Language::Groovy | 
[INFO] [stdout] 2097 | |             Language::ObjectiveC | Language::Php | Language::Solidity => {
[INFO] [stdout]      | |_____________________________________________________________________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2100 |               Language::Python => {
[INFO] [stdout]      |               ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2103 |               Language::Ruby => {
[INFO] [stdout]      |               -------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2108 |               Language::Shell | Language::Perl | Language::R => {
[INFO] [stdout]      |               ---------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2135 |               _ => (&["//", "#"], &[], &[]) // Default fallback includes both // and #
[INFO] [stdout]      |               ^ ...and 6 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: variable does not need to be mutable
[INFO] [stdout]     --> src/analyzers/pattern_matcher.rs:2038:13
[INFO] [stdout]      |
[INFO] [stdout] 2038 |         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:2039:13
[INFO] [stdout]      |
[INFO] [stdout] 2039 |         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:2038:13
[INFO] [stdout]      |
[INFO] [stdout] 2038 |         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:2039:13
[INFO] [stdout]      |
[INFO] [stdout] 2039 |         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:2043:13
[INFO] [stdout]      |
[INFO] [stdout] 2043 |         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:2081:13
[INFO] [stdout]      |
[INFO] [stdout] 2081 |             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:2135:13
[INFO] [stdout]      |
[INFO] [stdout] 2135 |             _ => (&["//", "#"], &[], &[]) // Default fallback includes both // and #
[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:2135:13
[INFO] [stdout]      |
[INFO] [stdout] 2094 | /             Language::JavaScript | Language::TypeScript | Language::Java | Language::Rust | 
[INFO] [stdout] 2095 | |             Language::C | Language::Cpp | Language::CSharp | Language::Go | Language::Kotlin | 
[INFO] [stdout] 2096 | |             Language::Scala | Language::Swift | Language::Dart | Language::Groovy | 
[INFO] [stdout] 2097 | |             Language::ObjectiveC | Language::Php | Language::Solidity => {
[INFO] [stdout]      | |_____________________________________________________________________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2100 |               Language::Python => {
[INFO] [stdout]      |               ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2103 |               Language::Ruby => {
[INFO] [stdout]      |               -------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2108 |               Language::Shell | Language::Perl | Language::R => {
[INFO] [stdout]      |               ---------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2135 |               _ => (&["//", "#"], &[], &[]) // Default fallback includes both // and #
[INFO] [stdout]      |               ^ ...and 6 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<Rule> {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_language`
[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<Rule> {
[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:334:13
[INFO] [stdout]     |
[INFO] [stdout] 334 |         let mut by_language: HashMap<String, usize> = 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:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn extract_snippet(source: &str, line: usize, context_lines: usize) -> Option<String> {
[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:115:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub fn offset_to_position(source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `libraries` is never read
[INFO] [stdout]   --> src/analyzers/library_detector.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct LibraryDetector {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 28 |     libraries: Vec<CryptoLibrary>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LuaAnalyzer` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/lua.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct LuaAnalyzer;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `check_lua_import` are never used
[INFO] [stdout]   --> src/analyzers/languages/lua.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl LuaAnalyzer {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn check_lua_import(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SwiftAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/swift.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct SwiftAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SwiftPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/swift.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct SwiftPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/swift.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl SwiftAnalyzer {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<SwiftPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DartAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/dart.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct DartAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DartPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/dart.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct DartPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/dart.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl DartAnalyzer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<DartPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScalaAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/scala.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ScalaAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScalaPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/scala.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct ScalaPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/scala.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl ScalaAnalyzer {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<ScalaPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerlAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/perl.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct PerlAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerlPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/perl.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct PerlPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/perl.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl PerlAnalyzer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<PerlPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ObjectiveCAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/objective_c.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ObjectiveCAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ObjCPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/objective_c.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct ObjCPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/objective_c.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl ObjectiveCAnalyzer {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<ObjCPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HaskellAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/haskell.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct HaskellAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HaskellPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/haskell.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct HaskellPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/haskell.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl HaskellAnalyzer {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<HaskellPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ElixirAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/elixir.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ElixirAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ElixirPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/elixir.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct ElixirPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/elixir.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl ElixirAnalyzer {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<ElixirPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/r.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct RAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/r.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct RPattern {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/r.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl RAnalyzer {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<RPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GroovyAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/groovy.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct GroovyAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GroovyPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/groovy.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct GroovyPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/groovy.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl GroovyAnalyzer {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<GroovyPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FSharpAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/fsharp.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct FSharpAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FSharpPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/fsharp.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct FSharpPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/fsharp.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl FSharpAnalyzer {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<FSharpPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClojureAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/clojure.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ClojureAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClojurePattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/clojure.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct ClojurePattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/clojure.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl ClojureAnalyzer {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<ClojurePattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SolidityAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/solidity.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct SolidityAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SolidityPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/solidity.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct SolidityPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]   --> src/analyzers/languages/solidity.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl SolidityAnalyzer {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 23 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn compile_patterns() -> Vec<SolidityPattern> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[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<tree_sitter::Parser> {
[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<String>,
[INFO] [stdout] 29 |         module: Option<String>,
[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<String>,
[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<Rule> {
[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] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/types.rs:334:13
[INFO] [stdout]     |
[INFO] [stdout] 334 |         let mut by_language: HashMap<String, usize> = 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:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn extract_snippet(source: &str, line: usize, context_lines: usize) -> Option<String> {
[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:115:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub fn offset_to_position(source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `libraries` is never read
[INFO] [stdout]   --> src/analyzers/library_detector.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct LibraryDetector {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 28 |     libraries: Vec<CryptoLibrary>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LuaAnalyzer` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/lua.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct LuaAnalyzer;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `check_lua_import` are never used
[INFO] [stdout]   --> src/analyzers/languages/lua.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl LuaAnalyzer {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn check_lua_import(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KotlinAnalyzer` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/kotlin.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct KotlinAnalyzer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KotlinPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/kotlin.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct KotlinPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/analyzers/languages/kotlin.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl KotlinAnalyzer {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  33 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  39 |     fn compile_patterns() -> Vec<KotlinPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     fn is_informational_string(&self, source: &str, start: usize, end: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 439 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SwiftAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/swift.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct SwiftAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SwiftPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/swift.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct SwiftPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/swift.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl SwiftAnalyzer {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<SwiftPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DartAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/dart.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct DartAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DartPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/dart.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct DartPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/dart.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl DartAnalyzer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<DartPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScalaAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/scala.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ScalaAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScalaPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/scala.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct ScalaPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/scala.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl ScalaAnalyzer {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<ScalaPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerlAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/perl.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct PerlAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerlPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/perl.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct PerlPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/perl.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl PerlAnalyzer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<PerlPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ObjectiveCAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/objective_c.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ObjectiveCAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ObjCPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/objective_c.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct ObjCPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/objective_c.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl ObjectiveCAnalyzer {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<ObjCPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HaskellAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/haskell.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct HaskellAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HaskellPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/haskell.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct HaskellPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/haskell.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl HaskellAnalyzer {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<HaskellPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ElixirAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/elixir.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ElixirAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ElixirPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/elixir.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct ElixirPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/elixir.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl ElixirAnalyzer {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<ElixirPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/r.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct RAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/r.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct RPattern {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/r.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl RAnalyzer {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<RPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GroovyAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/groovy.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct GroovyAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GroovyPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/groovy.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct GroovyPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/groovy.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl GroovyAnalyzer {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<GroovyPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FSharpAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/fsharp.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct FSharpAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FSharpPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/fsharp.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct FSharpPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/fsharp.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl FSharpAnalyzer {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<FSharpPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClojureAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/clojure.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ClojureAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClojurePattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/clojure.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct ClojurePattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]    --> src/analyzers/languages/clojure.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl ClojureAnalyzer {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn compile_patterns() -> Vec<ClojurePattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SolidityAnalyzer` is never constructed
[INFO] [stdout]  --> src/analyzers/languages/solidity.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct SolidityAnalyzer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SolidityPattern` is never constructed
[INFO] [stdout]   --> src/analyzers/languages/solidity.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct SolidityPattern {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compile_patterns`, `analyze`, `is_in_comment`, `offset_to_position`, and `extract_snippet` are never used
[INFO] [stdout]   --> src/analyzers/languages/solidity.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl SolidityAnalyzer {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 23 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn compile_patterns() -> Vec<SolidityPattern> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn analyze(&self, source: &str, file_path: &Path) -> Vec<Vulnerability> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     fn is_in_comment(&self, source: &str, offset: usize) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     fn offset_to_position(&self, source: &str, offset: usize) -> (usize, usize) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     fn extract_snippet(&self, source: &str, line: usize) -> Option<String> {
[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<tree_sitter::Parser> {
[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<String>,
[INFO] [stdout] 29 |         module: Option<String>,
[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<String>,
[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<Rule> {
[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 1m 49s
[INFO] running `Command { std: "docker" "inspect" "e0afcffdce8623ee943e67a97386190f531bb5bad20b679601f8430a7ad5ccef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e0afcffdce8623ee943e67a97386190f531bb5bad20b679601f8430a7ad5ccef", kill_on_drop: false }`
[INFO] [stdout] e0afcffdce8623ee943e67a97386190f531bb5bad20b679601f8430a7ad5ccef
