[INFO] fetching crate cargo-fl 0.3.0... [INFO] checking cargo-fl-0.3.0 against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145342-1 [INFO] extracting crate cargo-fl 0.3.0 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate cargo-fl 0.3.0 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate cargo-fl 0.3.0 [INFO] tweaked toml for crates.io crate cargo-fl 0.3.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate cargo-fl 0.3.0 on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate cargo-fl 0.3.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tower-lsp-macros v0.9.0 [INFO] [stderr] Downloaded memmap2 v0.9.7 [INFO] [stderr] Downloaded globset v0.4.16 [INFO] [stderr] Downloaded clap_lex v0.7.5 [INFO] [stderr] Downloaded ignore v0.4.23 [INFO] [stderr] Downloaded clap_derive v4.5.41 [INFO] [stderr] Downloaded lsp-types v0.94.1 [INFO] [stderr] Downloaded clap v4.5.42 [INFO] [stderr] Downloaded zerovec v0.11.3 [INFO] [stderr] Downloaded tower-lsp v0.20.0 [INFO] [stderr] Downloaded criterion v0.5.1 [INFO] [stderr] Downloaded clap_builder v4.5.42 [INFO] [stderr] Downloaded bstr v1.12.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 11204e5be555b6604f929d2ec30b674406555036374808f3fff93f8a23851ba0 [INFO] running `Command { std: "docker" "start" "-a" "11204e5be555b6604f929d2ec30b674406555036374808f3fff93f8a23851ba0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "11204e5be555b6604f929d2ec30b674406555036374808f3fff93f8a23851ba0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "11204e5be555b6604f929d2ec30b674406555036374808f3fff93f8a23851ba0", kill_on_drop: false }` [INFO] [stdout] 11204e5be555b6604f929d2ec30b674406555036374808f3fff93f8a23851ba0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bdc2f9703e40f1d0b7299c8ec400d1cfedb3d0390484cab5791279bdbd8c1258 [INFO] running `Command { std: "docker" "start" "-a" "bdc2f9703e40f1d0b7299c8ec400d1cfedb3d0390484cab5791279bdbd8c1258", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Checking memchr v2.7.5 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Checking cfg-if v1.0.1 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Checking writeable v0.6.1 [INFO] [stderr] Checking litemap v0.8.0 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Checking pin-project-lite v0.2.16 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Compiling serde_json v1.0.142 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Checking utf8parse v0.2.2 [INFO] [stderr] Checking itoa v1.0.15 [INFO] [stderr] Checking ryu v1.0.20 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Checking anstyle-query v1.1.3 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking colorchoice v1.0.4 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Checking anstyle-parse v0.2.7 [INFO] [stderr] Checking anstyle v1.0.11 [INFO] [stderr] Checking is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Checking slab v0.4.10 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Checking clap_lex v0.7.5 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Compiling zerocopy v0.8.26 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Checking hashbrown v0.15.4 [INFO] [stderr] Checking anstream v0.6.19 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling portable-atomic v1.11.1 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking strsim v0.11.1 [INFO] [stderr] Checking equivalent v1.0.2 [INFO] [stderr] Checking bytes v1.10.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking bstr v1.12.0 [INFO] [stderr] Checking walkdir v2.5.0 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Checking clap_builder v4.5.42 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking toml_write v0.1.2 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking tower-layer v0.3.3 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Checking unicode-width v0.2.1 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Checking winnow v0.7.12 [INFO] [stderr] Checking tower-service v0.3.3 [INFO] [stderr] Checking crossbeam-deque v0.8.6 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking socket2 v0.6.0 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Checking signal-hook-registry v1.4.6 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking number_prefix v0.4.0 [INFO] [stderr] Checking colored v2.2.0 [INFO] [stderr] Checking memmap2 v0.9.7 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Compiling rustix v1.0.8 [INFO] [stderr] Checking ciborium-io v0.2.2 [INFO] [stderr] Checking plotters-backend v0.3.7 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking bitflags v2.9.1 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking plotters-svg v0.3.7 [INFO] [stderr] Checking cast v0.3.0 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking linux-raw-sys v0.9.4 [INFO] [stderr] Checking is-terminal v0.4.16 [INFO] [stderr] Checking oorandom v11.1.5 [INFO] [stderr] Checking fastrand v2.3.0 [INFO] [stderr] Checking anes v0.1.6 [INFO] [stderr] Checking indicatif v0.17.11 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking globset v0.4.16 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Checking ignore v0.4.23 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling clap_derive v4.5.41 [INFO] [stderr] Compiling tower-lsp-macros v0.9.0 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling auto_impl v1.3.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking tokio v1.47.1 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking zerovec v0.11.3 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking clap v4.5.42 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking tokio-util v0.7.16 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Checking lsp-types v0.94.1 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Checking tower-lsp v0.20.0 [INFO] [stderr] Checking cargo-fl v0.3.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `IncrementalResults` [INFO] [stdout] --> src/analyzer.rs:4:47 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::incremental::{IncrementalAnalyzer, IncrementalResults}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DocTemplateGenerator`, `ImportOrganizer`, and `NamingConventionFixer` [INFO] [stdout] --> src/analyzer.rs:6:37 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::autofix::{AutoFixEngine, ImportOrganizer, NamingConventionFixer, DocTemplateGenerator}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Item` and `ReturnType` [INFO] [stdout] --> src/rules/must_use.rs:3:43 [INFO] [stdout] | [INFO] [stdout] 3 | use syn::{Expr, ExprCall, ExprMethodCall, Item, ItemFn, ReturnType, Attribute, Meta}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BinOp`, `ExprCall`, `ExprIf`, `ExprLet`, `PatIdent`, and `Type` [INFO] [stdout] --> src/rules/anti_patterns.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | use syn::{Expr, ExprMethodCall, ExprCall, Pat, PatIdent, ExprMatch, Type, ExprForLoop, ExprIf, ExprLet, BinOp}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^ ^^^^^^ ^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SystemTime` [INFO] [stdout] --> src/cache.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::{SystemTime, UNIX_EPOCH}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FileMetadata` [INFO] [stdout] --> src/incremental.rs:1:35 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::cache::{AnalysisCache, FileMetadata}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/autofix.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalResults` [INFO] [stdout] --> src/analyzer.rs:4:47 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::incremental::{IncrementalAnalyzer, IncrementalResults}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DocTemplateGenerator`, `ImportOrganizer`, and `NamingConventionFixer` [INFO] [stdout] --> src/analyzer.rs:6:37 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::autofix::{AutoFixEngine, ImportOrganizer, NamingConventionFixer, DocTemplateGenerator}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Item` and `ReturnType` [INFO] [stdout] --> src/rules/must_use.rs:3:43 [INFO] [stdout] | [INFO] [stdout] 3 | use syn::{Expr, ExprCall, ExprMethodCall, Item, ItemFn, ReturnType, Attribute, Meta}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BinOp`, `ExprCall`, `ExprIf`, `ExprLet`, `PatIdent`, and `Type` [INFO] [stdout] --> src/rules/anti_patterns.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | use syn::{Expr, ExprMethodCall, ExprCall, Pat, PatIdent, ExprMatch, Type, ExprForLoop, ExprIf, ExprLet, BinOp}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^ ^^^^^^ ^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SystemTime` [INFO] [stdout] --> src/cache.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::{SystemTime, UNIX_EPOCH}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FileMetadata` [INFO] [stdout] --> src/incremental.rs:1:35 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::cache::{AnalysisCache, FileMetadata}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/autofix.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `total_fixes_applied` is never read [INFO] [stdout] --> src/analyzer.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | let mut total_fixes_applied = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `total_fixes_applied` is never read [INFO] [stdout] --> src/analyzer.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | let mut total_fixes_applied = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `else_branch` [INFO] [stdout] --> src/rules/anti_patterns.rs:229:25 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some(else_branch) = &if_expr.else_branch { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_else_branch` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start` [INFO] [stdout] --> src/rules/anti_patterns.rs:294:26 [INFO] [stdout] | [INFO] [stdout] 294 | if let (Some(start), Some(end)) = (&range.start, &range.end) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/rules/anti_patterns.rs:294:39 [INFO] [stdout] | [INFO] [stdout] 294 | if let (Some(start), Some(end)) = (&range.start, &range.end) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `else_branch` [INFO] [stdout] --> src/rules/anti_patterns.rs:229:25 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some(else_branch) = &if_expr.else_branch { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_else_branch` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start` [INFO] [stdout] --> src/rules/anti_patterns.rs:294:26 [INFO] [stdout] | [INFO] [stdout] 294 | if let (Some(start), Some(end)) = (&range.start, &range.end) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/rules/anti_patterns.rs:294:39 [INFO] [stdout] | [INFO] [stdout] 294 | if let (Some(start), Some(end)) = (&range.start, &range.end) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_hash` [INFO] [stdout] --> src/ast_cache.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let file_hash = Self::compute_file_hash(&content); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `issue` [INFO] [stdout] --> src/autofix.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | issue: &Issue, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_issue` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cleaned` [INFO] [stdout] --> src/autofix.rs:118:17 [INFO] [stdout] | [INFO] [stdout] 118 | let cleaned = import_str.replace(" ", "").replace("\n", ""); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cleaned` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `skip_import_lines` [INFO] [stdout] --> src/autofix.rs:195:17 [INFO] [stdout] | [INFO] [stdout] 195 | let mut skip_import_lines: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_skip_import_lines` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `first_use_line` [INFO] [stdout] --> src/autofix.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | let mut first_use_line: Option = None; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_use_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `in_import_region` [INFO] [stdout] --> src/autofix.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | let mut in_import_region = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_import_region` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `line_idx` [INFO] [stdout] --> src/autofix.rs:214:14 [INFO] [stdout] | [INFO] [stdout] 214 | for (line_idx, line) in lines.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `use_positions` [INFO] [stdout] --> src/autofix.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | use_positions: &[usize], [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_positions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_hash` [INFO] [stdout] --> src/ast_cache.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let file_hash = Self::compute_file_hash(&content); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/autofix.rs:195:13 [INFO] [stdout] | [INFO] [stdout] 195 | let mut skip_import_lines: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/autofix.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | let mut first_use_line: Option = None; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/autofix.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | let mut in_import_region = false; [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `issue` [INFO] [stdout] --> src/autofix.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | issue: &Issue, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_issue` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_result_ignored` is never used [INFO] [stdout] --> src/rules/must_use.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 24 | impl<'a> MustUseVisitor<'a> { [INFO] [stdout] | --------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 76 | fn is_result_ignored(&self, parent_expr: Option<&Expr>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `builder` is never read [INFO] [stdout] --> src/walker.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct RustFileWalker { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 5 | builder: WalkBuilder, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/incremental.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct IncrementalAnalyzer { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] 10 | config: Arc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `evict_oldest` is never used [INFO] [stdout] --> src/ast_cache.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 52 | impl ASTCache { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | fn evict_oldest(&self, cache: &mut AHashMap) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cleaned` [INFO] [stdout] --> src/autofix.rs:118:17 [INFO] [stdout] | [INFO] [stdout] 118 | let cleaned = import_str.replace(" ", "").replace("\n", ""); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cleaned` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `skip_import_lines` [INFO] [stdout] --> src/autofix.rs:195:17 [INFO] [stdout] | [INFO] [stdout] 195 | let mut skip_import_lines: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_skip_import_lines` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `first_use_line` [INFO] [stdout] --> src/autofix.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | let mut first_use_line: Option = None; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_use_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `in_import_region` [INFO] [stdout] --> src/autofix.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | let mut in_import_region = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_import_region` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `line_idx` [INFO] [stdout] --> src/autofix.rs:214:14 [INFO] [stdout] | [INFO] [stdout] 214 | for (line_idx, line) in lines.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `use_positions` [INFO] [stdout] --> src/autofix.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | use_positions: &[usize], [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_positions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/autofix.rs:195:13 [INFO] [stdout] | [INFO] [stdout] 195 | let mut skip_import_lines: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/autofix.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | let mut first_use_line: Option = None; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/autofix.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | let mut in_import_region = false; [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_result_ignored` is never used [INFO] [stdout] --> src/rules/must_use.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 24 | impl<'a> MustUseVisitor<'a> { [INFO] [stdout] | --------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 76 | fn is_result_ignored(&self, parent_expr: Option<&Expr>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `builder` is never read [INFO] [stdout] --> src/walker.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct RustFileWalker { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 5 | builder: WalkBuilder, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/incremental.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct IncrementalAnalyzer { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] 10 | config: Arc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `evict_oldest` is never used [INFO] [stdout] --> src/ast_cache.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 52 | impl ASTCache { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | fn evict_oldest(&self, cache: &mut AHashMap) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0601]: `main` function not found in crate `demo` [INFO] [stdout] --> examples/demo.rs:25:2 [INFO] [stdout] | [INFO] [stdout] 25 | } [INFO] [stdout] | ^ consider adding a `main` function to `examples/demo.rs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> examples/demo.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 11 | todo!("Implement this function"); [INFO] [stdout] | -------------------------------- any code following this expression is unreachable [INFO] [stdout] ... [INFO] [stdout] 14 | vec![1, 2, 3].iter().map(|x| x * 2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> examples/demo.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | let value = map.get("key").unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `cargo-fl` (example "demo") due to 1 previous error; 4 warnings emitted [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> examples/demo.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | let s = "hello".to_string(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: unused variable: `cloned` [INFO] [stdout] --> examples/demo.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let cloned = v.clone(); // Unnecessary clone [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloned` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0601`. [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalResults` [INFO] [stdout] --> src/analyzer.rs:4:47 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::incremental::{IncrementalAnalyzer, IncrementalResults}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DocTemplateGenerator`, `ImportOrganizer`, and `NamingConventionFixer` [INFO] [stdout] --> src/analyzer.rs:6:37 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::autofix::{AutoFixEngine, ImportOrganizer, NamingConventionFixer, DocTemplateGenerator}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Item` and `ReturnType` [INFO] [stdout] --> src/rules/must_use.rs:3:43 [INFO] [stdout] | [INFO] [stdout] 3 | use syn::{Expr, ExprCall, ExprMethodCall, Item, ItemFn, ReturnType, Attribute, Meta}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BinOp`, `ExprCall`, `ExprIf`, `ExprLet`, `PatIdent`, and `Type` [INFO] [stdout] --> src/rules/anti_patterns.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | use syn::{Expr, ExprMethodCall, ExprCall, Pat, PatIdent, ExprMatch, Type, ExprForLoop, ExprIf, ExprLet, BinOp}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^ ^^^^^^ ^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SystemTime` [INFO] [stdout] --> src/cache.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::{SystemTime, UNIX_EPOCH}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FileMetadata` [INFO] [stdout] --> src/incremental.rs:1:35 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::cache::{AnalysisCache, FileMetadata}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/autofix.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalResults` [INFO] [stdout] --> src/analyzer.rs:4:47 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::incremental::{IncrementalAnalyzer, IncrementalResults}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DocTemplateGenerator`, `ImportOrganizer`, and `NamingConventionFixer` [INFO] [stdout] --> src/analyzer.rs:6:37 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::autofix::{AutoFixEngine, ImportOrganizer, NamingConventionFixer, DocTemplateGenerator}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lsp_server.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Backend { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | config: Mutex, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Item` and `ReturnType` [INFO] [stdout] --> src/rules/must_use.rs:3:43 [INFO] [stdout] | [INFO] [stdout] 3 | use syn::{Expr, ExprCall, ExprMethodCall, Item, ItemFn, ReturnType, Attribute, Meta}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BinOp`, `ExprCall`, `ExprIf`, `ExprLet`, `PatIdent`, and `Type` [INFO] [stdout] --> src/rules/anti_patterns.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | use syn::{Expr, ExprMethodCall, ExprCall, Pat, PatIdent, ExprMatch, Type, ExprForLoop, ExprIf, ExprLet, BinOp}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^ ^^^^^^ ^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SystemTime` [INFO] [stdout] --> src/cache.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::{SystemTime, UNIX_EPOCH}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FileMetadata` [INFO] [stdout] --> src/incremental.rs:1:35 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::cache::{AnalysisCache, FileMetadata}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/autofix.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lsp_server.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Backend { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | config: Mutex, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `total_fixes_applied` is never read [INFO] [stdout] --> src/analyzer.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | let mut total_fixes_applied = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `total_fixes_applied` is never read [INFO] [stdout] --> src/analyzer.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | let mut total_fixes_applied = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `else_branch` [INFO] [stdout] --> src/rules/anti_patterns.rs:229:25 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some(else_branch) = &if_expr.else_branch { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_else_branch` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start` [INFO] [stdout] --> src/rules/anti_patterns.rs:294:26 [INFO] [stdout] | [INFO] [stdout] 294 | if let (Some(start), Some(end)) = (&range.start, &range.end) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/rules/anti_patterns.rs:294:39 [INFO] [stdout] | [INFO] [stdout] 294 | if let (Some(start), Some(end)) = (&range.start, &range.end) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `else_branch` [INFO] [stdout] --> src/rules/anti_patterns.rs:229:25 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some(else_branch) = &if_expr.else_branch { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_else_branch` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start` [INFO] [stdout] --> src/rules/anti_patterns.rs:294:26 [INFO] [stdout] | [INFO] [stdout] 294 | if let (Some(start), Some(end)) = (&range.start, &range.end) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/rules/anti_patterns.rs:294:39 [INFO] [stdout] | [INFO] [stdout] 294 | if let (Some(start), Some(end)) = (&range.start, &range.end) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_hash` [INFO] [stdout] --> src/ast_cache.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let file_hash = Self::compute_file_hash(&content); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `issue` [INFO] [stdout] --> src/autofix.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | issue: &Issue, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_issue` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cleaned` [INFO] [stdout] --> src/autofix.rs:118:17 [INFO] [stdout] | [INFO] [stdout] 118 | let cleaned = import_str.replace(" ", "").replace("\n", ""); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cleaned` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `skip_import_lines` [INFO] [stdout] --> src/autofix.rs:195:17 [INFO] [stdout] | [INFO] [stdout] 195 | let mut skip_import_lines: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_skip_import_lines` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `first_use_line` [INFO] [stdout] --> src/autofix.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | let mut first_use_line: Option = None; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_use_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `in_import_region` [INFO] [stdout] --> src/autofix.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | let mut in_import_region = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_import_region` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `line_idx` [INFO] [stdout] --> src/autofix.rs:214:14 [INFO] [stdout] | [INFO] [stdout] 214 | for (line_idx, line) in lines.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `use_positions` [INFO] [stdout] --> src/autofix.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | use_positions: &[usize], [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_positions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/autofix.rs:195:13 [INFO] [stdout] | [INFO] [stdout] 195 | let mut skip_import_lines: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/autofix.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | let mut first_use_line: Option = None; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/autofix.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | let mut in_import_region = false; [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `analyze_file` is never used [INFO] [stdout] --> src/analyzer.rs:227:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl Analyzer { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn analyze_file(&self, path: &Path) -> AnalysisResults { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `cache_hit_rate`, `analysis_time_ms`, `fixes_applied`, and `has_fixes` are never used [INFO] [stdout] --> src/analyzer.rs:292:12 [INFO] [stdout] | [INFO] [stdout] 271 | impl AnalysisResults { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 292 | pub fn cache_hit_rate(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 299 | pub fn analysis_time_ms(&self) -> u128 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 306 | pub fn fixes_applied(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 313 | pub fn has_fixes(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `file_path` is never read [INFO] [stdout] --> src/rules/mod.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 64 | pub struct RuleContext { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 65 | pub file_path: PathBuf, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `report_issue` is never used [INFO] [stdout] --> src/rules/mod.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 76 | impl RuleContext { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn report_issue(&mut self, rule: &str, severity: Severity, message: String, location: Location, fix: Option) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_result_ignored` is never used [INFO] [stdout] --> src/rules/must_use.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 24 | impl<'a> MustUseVisitor<'a> { [INFO] [stdout] | --------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 76 | fn is_result_ignored(&self, parent_expr: Option<&Expr>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `builder` is never read [INFO] [stdout] --> src/walker.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct RustFileWalker { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 5 | builder: WalkBuilder, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `remove_file` and `cache_stats` are never used [INFO] [stdout] --> src/cache.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl AnalysisCache { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn remove_file(&mut self, path: &Path) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn cache_stats(&self) -> CacheStats { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheStats` is never constructed [INFO] [stdout] --> src/cache.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 167 | pub struct CacheStats { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/incremental.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct IncrementalAnalyzer { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] 10 | config: Arc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `invalidate_file`, `get_cache_stats`, and `save_cache` are never used [INFO] [stdout] --> src/incremental.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl IncrementalAnalyzer { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn invalidate_file(&mut self, path: &Path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn get_cache_stats(&self) -> crate::cache::CacheStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn save_cache(&mut self) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `total_issues` is never used [INFO] [stdout] --> src/incremental.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 146 | impl IncrementalResults { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn total_issues(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `max_cache_size` is never read [INFO] [stdout] --> src/ast_cache.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct ASTCache { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 20 | max_cache_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `evict_oldest`, `invalidate`, `clear`, and `cache_stats` are never used [INFO] [stdout] --> src/ast_cache.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 52 | impl ASTCache { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | fn evict_oldest(&self, cache: &mut AHashMap) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn invalidate(&self, path: &Path) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn clear(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn cache_stats(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ASTCacheStats` is never constructed [INFO] [stdout] --> src/ast_cache.rs:197:12 [INFO] [stdout] | [INFO] [stdout] 197 | pub struct ASTCacheStats { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ImportOrganizer` is never constructed [INFO] [stdout] --> src/autofix.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub struct ImportOrganizer { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/autofix.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 75 | impl ImportOrganizer { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 76 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn organize_imports(&self, content: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | fn group_and_sort_imports(&self, use_items: Vec) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | fn is_std_import(&self, use_item: &ItemUse) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn is_external_import(&self, use_item: &ItemUse) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | fn use_tree_to_string(&self, tree: &UseTree) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | fn reconstruct_file_with_organized_imports( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub fn create_import_fix(&self, content: &str) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NamingConventionFixer` is never constructed [INFO] [stdout] --> src/autofix.rs:263:12 [INFO] [stdout] | [INFO] [stdout] 263 | pub struct NamingConventionFixer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `create_snake_case_fix`, `create_pascal_case_fix`, `to_snake_case`, and `to_pascal_case` are never used [INFO] [stdout] --> src/autofix.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 265 | impl NamingConventionFixer { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 266 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 270 | pub fn create_snake_case_fix(&self, identifier: &str, location: &Location) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | pub fn create_pascal_case_fix(&self, identifier: &str, location: &Location) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | fn to_snake_case(&self, s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | fn to_pascal_case(&self, s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DocTemplateGenerator` is never constructed [INFO] [stdout] --> src/autofix.rs:342:12 [INFO] [stdout] | [INFO] [stdout] 342 | pub struct DocTemplateGenerator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `generate_function_doc_fix`, `generate_struct_doc_fix`, `generate_function_description`, and `generate_struct_description` are never used [INFO] [stdout] --> src/autofix.rs:345:12 [INFO] [stdout] | [INFO] [stdout] 344 | impl DocTemplateGenerator { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 345 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 349 | pub fn generate_function_doc_fix(&self, fn_name: &str, location: &Location, has_params: bool, has_return: bool) -> Fix { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 388 | pub fn generate_struct_doc_fix(&self, struct_name: &str, location: &Location) -> Fix { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 405 | fn generate_function_description(&self, fn_name: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | fn generate_struct_description(&self, struct_name: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_hash` [INFO] [stdout] --> src/ast_cache.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let file_hash = Self::compute_file_hash(&content); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `issue` [INFO] [stdout] --> src/autofix.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | issue: &Issue, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_issue` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cleaned` [INFO] [stdout] --> src/autofix.rs:118:17 [INFO] [stdout] | [INFO] [stdout] 118 | let cleaned = import_str.replace(" ", "").replace("\n", ""); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cleaned` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `skip_import_lines` [INFO] [stdout] --> src/autofix.rs:195:17 [INFO] [stdout] | [INFO] [stdout] 195 | let mut skip_import_lines: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_skip_import_lines` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `first_use_line` [INFO] [stdout] --> src/autofix.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | let mut first_use_line: Option = None; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_use_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `in_import_region` [INFO] [stdout] --> src/autofix.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | let mut in_import_region = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_import_region` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `line_idx` [INFO] [stdout] --> src/autofix.rs:214:14 [INFO] [stdout] | [INFO] [stdout] 214 | for (line_idx, line) in lines.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `use_positions` [INFO] [stdout] --> src/autofix.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | use_positions: &[usize], [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_positions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/autofix.rs:195:13 [INFO] [stdout] | [INFO] [stdout] 195 | let mut skip_import_lines: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/autofix.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | let mut first_use_line: Option = None; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/autofix.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | let mut in_import_region = false; [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `analyze_file` is never used [INFO] [stdout] --> src/analyzer.rs:227:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl Analyzer { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn analyze_file(&self, path: &Path) -> AnalysisResults { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `cache_hit_rate`, `analysis_time_ms`, `fixes_applied`, and `has_fixes` are never used [INFO] [stdout] --> src/analyzer.rs:292:12 [INFO] [stdout] | [INFO] [stdout] 271 | impl AnalysisResults { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 292 | pub fn cache_hit_rate(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 299 | pub fn analysis_time_ms(&self) -> u128 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 306 | pub fn fixes_applied(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 313 | pub fn has_fixes(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `file_path` is never read [INFO] [stdout] --> src/rules/mod.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 64 | pub struct RuleContext { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 65 | pub file_path: PathBuf, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `report_issue` is never used [INFO] [stdout] --> src/rules/mod.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 76 | impl RuleContext { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn report_issue(&mut self, rule: &str, severity: Severity, message: String, location: Location, fix: Option) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_result_ignored` is never used [INFO] [stdout] --> src/rules/must_use.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 24 | impl<'a> MustUseVisitor<'a> { [INFO] [stdout] | --------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 76 | fn is_result_ignored(&self, parent_expr: Option<&Expr>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `builder` is never read [INFO] [stdout] --> src/walker.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct RustFileWalker { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 5 | builder: WalkBuilder, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `remove_file` and `cache_stats` are never used [INFO] [stdout] --> src/cache.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl AnalysisCache { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn remove_file(&mut self, path: &Path) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn cache_stats(&self) -> CacheStats { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheStats` is never constructed [INFO] [stdout] --> src/cache.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 167 | pub struct CacheStats { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/incremental.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct IncrementalAnalyzer { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] 10 | config: Arc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `invalidate_file`, `get_cache_stats`, and `save_cache` are never used [INFO] [stdout] --> src/incremental.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl IncrementalAnalyzer { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn invalidate_file(&mut self, path: &Path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn get_cache_stats(&self) -> crate::cache::CacheStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn save_cache(&mut self) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `total_issues` is never used [INFO] [stdout] --> src/incremental.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 146 | impl IncrementalResults { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn total_issues(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `evict_oldest`, `invalidate`, and `clear` are never used [INFO] [stdout] --> src/ast_cache.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 52 | impl ASTCache { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | fn evict_oldest(&self, cache: &mut AHashMap) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn invalidate(&self, path: &Path) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn clear(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `avg_ast_size` and `max_cache_size` are never read [INFO] [stdout] --> src/ast_cache.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 197 | pub struct ASTCacheStats { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 200 | pub avg_ast_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 201 | pub max_cache_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ASTCacheStats` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `preserve_comments` and `group_external_crates` are never read [INFO] [stdout] --> src/autofix.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 69 | pub struct ImportOrganizer { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 70 | pub preserve_comments: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 71 | pub group_external_crates: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `create_import_fix` is never used [INFO] [stdout] --> src/autofix.rs:240:12 [INFO] [stdout] | [INFO] [stdout] 75 | impl ImportOrganizer { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 240 | pub fn create_import_fix(&self, content: &str) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `create_snake_case_fix` and `create_pascal_case_fix` are never used [INFO] [stdout] --> src/autofix.rs:270:12 [INFO] [stdout] | [INFO] [stdout] 265 | impl NamingConventionFixer { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 270 | pub fn create_snake_case_fix(&self, identifier: &str, location: &Location) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | pub fn create_pascal_case_fix(&self, identifier: &str, location: &Location) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DocTemplateGenerator` is never constructed [INFO] [stdout] --> src/autofix.rs:342:12 [INFO] [stdout] | [INFO] [stdout] 342 | pub struct DocTemplateGenerator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `generate_function_doc_fix`, `generate_struct_doc_fix`, `generate_function_description`, and `generate_struct_description` are never used [INFO] [stdout] --> src/autofix.rs:345:12 [INFO] [stdout] | [INFO] [stdout] 344 | impl DocTemplateGenerator { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 345 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 349 | pub fn generate_function_doc_fix(&self, fn_name: &str, location: &Location, has_params: bool, has_return: bool) -> Fix { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 388 | pub fn generate_struct_doc_fix(&self, struct_name: &str, location: &Location) -> Fix { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 405 | fn generate_function_description(&self, fn_name: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | fn generate_struct_description(&self, struct_name: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "bdc2f9703e40f1d0b7299c8ec400d1cfedb3d0390484cab5791279bdbd8c1258", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bdc2f9703e40f1d0b7299c8ec400d1cfedb3d0390484cab5791279bdbd8c1258", kill_on_drop: false }` [INFO] [stdout] bdc2f9703e40f1d0b7299c8ec400d1cfedb3d0390484cab5791279bdbd8c1258