[INFO] fetching crate perl-lsp 0.7.0...
[INFO] checking perl-lsp-0.7.0 against 012c0bd4d516934012c9a1ecb26e9eb283d2ed75 for pr-133502-29
[INFO] extracting crate perl-lsp 0.7.0 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate perl-lsp 0.7.0
[INFO] finished tweaking crates.io crate perl-lsp 0.7.0
[INFO] tweaked toml for crates.io crate perl-lsp 0.7.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate perl-lsp 0.7.0 on toolchain 012c0bd4d516934012c9a1ecb26e9eb283d2ed75
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012c0bd4d516934012c9a1ecb26e9eb283d2ed75" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate perl-lsp 0.7.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" "+012c0bd4d516934012c9a1ecb26e9eb283d2ed75" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ts-parser-pod v1.0.0
[INFO] [stderr]   Downloaded tree-sitter-r v1.2.0
[INFO] [stderr]   Downloaded thin-vec v0.2.16
[INFO] [stderr]   Downloaded rhai v1.24.0
[INFO] [stderr]   Downloaded ts-parser-perl v1.1.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] abde89284ffa7bbc1905eadc7d3199b87450c1aa04b6d5df00a399f75ec7af3d
[INFO] running `Command { std: "docker" "start" "abde89284ffa7bbc1905eadc7d3199b87450c1aa04b6d5df00a399f75ec7af3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "abde89284ffa7bbc1905eadc7d3199b87450c1aa04b6d5df00a399f75ec7af3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "abde89284ffa7bbc1905eadc7d3199b87450c1aa04b6d5df00a399f75ec7af3d" "/opt/rustwide/cargo-home/bin/cargo" "+012c0bd4d516934012c9a1ecb26e9eb283d2ed75" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "abde89284ffa7bbc1905eadc7d3199b87450c1aa04b6d5df00a399f75ec7af3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "abde89284ffa7bbc1905eadc7d3199b87450c1aa04b6d5df00a399f75ec7af3d" "/opt/rustwide/cargo-home/bin/cargo" "+012c0bd4d516934012c9a1ecb26e9eb283d2ed75" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]    Compiling smartstring v1.0.1
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking tokio v1.52.0
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking thin-vec v0.2.16
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling auto_impl v1.3.0
[INFO] [stderr]    Compiling rhai_codegen v3.1.0
[INFO] [stderr]     Checking lsp-types v0.94.1
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling tree-sitter v0.25.10
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling ts-parser-perl v1.1.4
[INFO] [stderr]    Compiling ts-parser-pod v1.0.0
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]    Compiling tree-sitter-c v0.24.2
[INFO] [stderr]    Compiling tree-sitter-python v0.25.0
[INFO] [stderr]    Compiling tree-sitter-r v1.2.0
[INFO] [stderr]    Compiling tree-sitter-cmake v0.7.1
[INFO] [stderr]    Compiling tree-sitter-cpp v0.23.4
[INFO] [stderr]    Compiling tower-lsp-macros v0.9.0
[INFO] [stderr]     Checking jiff v0.2.23
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking globset v0.4.18
[INFO] [stderr]     Checking env_filter v1.0.1
[INFO] [stderr]    Compiling perl-lsp v0.7.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking ignore v0.4.25
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking env_logger v0.11.10
[INFO] [stderr]     Checking rhai v1.24.0
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking tower-lsp v0.20.0
[INFO] [stderr]     Checking rusqlite v0.32.1
[INFO] [stdout] warning: unused import: `crate::index::module_cache::Generation`
[INFO] [stdout]   --> src/index/conclusion_flush.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::index::module_cache::Generation;
[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 doc comment
[INFO] [stdout]    --> src/util/ghost_stats.rs:289:1
[INFO] [stdout]     |
[INFO] [stdout] 289 | / /// tag -> (total nanos, call count). A per-call `[PHASE]` line is useless for
[INFO] [stdout] 290 | | /// a region entered once per file across a corpus; what a hot region needs is
[INFO] [stdout] 291 | | /// the SUM and the call count, so an average and a share are derivable.
[INFO] [stdout]     | |_-----------------------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/util/ghost_stats.rs:506:1
[INFO] [stdout]     |
[INFO] [stdout] 506 | /// Record that `key` was seen under `tag`. No-op when the gate is off.
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model::file_analysis::FileAnalysis`
[INFO] [stdout]    --> src/index/module_cache/blob.rs:883:9
[INFO] [stdout]     |
[INFO] [stdout] 883 |     use crate::model::file_analysis::FileAnalysis;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CrossFileLookup`
[INFO] [stdout]     --> src/index/module_index/module_index_tests.rs:2243:39
[INFO] [stdout]      |
[INFO] [stdout] 2243 |     use crate::model::file_analysis::{CrossFileLookup, MethodResolution, SymKind};
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::index::module_cache::Generation`
[INFO] [stdout]   --> src/index/conclusion_flush.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::index::module_cache::Generation;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/util/ghost_stats.rs:289:1
[INFO] [stdout]     |
[INFO] [stdout] 289 | / /// tag -> (total nanos, call count). A per-call `[PHASE]` line is useless for
[INFO] [stdout] 290 | | /// a region entered once per file across a corpus; what a hot region needs is
[INFO] [stdout] 291 | | /// the SUM and the call count, so an average and a share are derivable.
[INFO] [stdout]     | |_-----------------------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/util/ghost_stats.rs:506:1
[INFO] [stdout]     |
[INFO] [stdout] 506 | /// Record that `key` was seen under `tag`. No-op when the gate is off.
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/index/pack_bag_cache.rs:234:28
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let _ = self.bytes.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |b| {
[INFO] [stdout]     |                            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 234 -         let _ = self.bytes.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |b| {
[INFO] [stdout] 234 +         let _ = self.bytes.try_update(Ordering::Relaxed, Ordering::Relaxed, |b| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/index/pack_bag_cache.rs:234:28
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let _ = self.bytes.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |b| {
[INFO] [stdout]     |                            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 234 -         let _ = self.bytes.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |b| {
[INFO] [stdout] 234 +         let _ = self.bytes.try_update(Ordering::Relaxed, Ordering::Relaxed, |b| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lsp/cli/query.rs:616:17
[INFO] [stdout]     |
[INFO] [stdout] 616 |             let mut item_json = |sources: &mut SourceCache, it: &resolve::HierarchyItem| {
[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/lsp/cli/query.rs:636:21
[INFO] [stdout]     |
[INFO] [stdout] 636 |                 let mut edge_json = |sources: &mut SourceCache,
[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/lsp/symbols/completion.rs:558:17
[INFO] [stdout]     |
[INFO] [stdout] 558 |             let mut items: Vec<CompletionItem> =
[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/model/witnesses/conclusions.rs:735:9
[INFO] [stdout]     |
[INFO] [stdout] 735 |     let mut enumerate = |att: WitnessAttachment, map: &mut HashMap<_, _>| {
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `recursive_walk` is never read
[INFO] [stdout]    --> src/build/builder/mod.rs:662:5
[INFO] [stdout]     |
[INFO] [stdout] 237 | struct Builder<'a> {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 662 |     recursive_walk: bool,
[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 `with_combine` is never used
[INFO] [stdout]    --> src/build/builder/pattern_dispatch.rs:354:15
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub(crate) fn with_combine<R>(combined: bool, f: impl FnOnce() -> R) -> R {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_walk_mode` is never used
[INFO] [stdout]   --> src/build/builder/walk.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(crate) fn with_walk_mode<R>(recursive: bool, f: impl FnOnce() -> R) -> R {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Beta` and `Alpha` are never constructed
[INFO] [stdout]    --> src/build/language_driver.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub enum Maturity {
[INFO] [stdout]     |          -------- variants in this enum
[INFO] [stdout] 175 |     Stable,
[INFO] [stdout] 176 |     Beta,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 177 |     Alpha,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Maturity` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ids` is never used
[INFO] [stdout]     --> src/build/language_driver.rs:1626:12
[INFO] [stdout]      |
[INFO] [stdout] 1485 | impl LanguageRegistry {
[INFO] [stdout]      | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1626 |     pub fn ids(&self) -> Vec<&'static str> {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resident_bytes` is never used
[INFO] [stdout]   --> src/index/closedness_store.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl ClosednessStore {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn resident_bytes(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `join` is never used
[INFO] [stdout]    --> src/model/file_analysis/enrichment.rs:279:18
[INFO] [stdout]     |
[INFO] [stdout] 246 | impl EnrichmentProfile {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub const fn join(self, other: EnrichmentProfile) -> EnrichmentProfile {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove_attachment_source_at` is never used
[INFO] [stdout]    --> src/model/witnesses/mod.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl WitnessBag {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn remove_attachment_source_at(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `degraded`, `stats`, and `declare_profile` are never used
[INFO] [stdout]    --> src/model/witnesses/session.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 190 | impl ResolutionSession {
[INFO] [stdout]     | ---------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn degraded() -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn stats() -> Option<SessionStats> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn declare_profile(profile: crate::model::file_analysis::EnrichmentProfile) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `closure_len` is never used
[INFO] [stdout]    --> src/model/witnesses/closedness.rs:215:12
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl ClosednessCertificate {
[INFO] [stdout]     | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn closure_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `report` is never used
[INFO] [stdout]     --> src/util/ghost_stats.rs:1080:12
[INFO] [stdout]      |
[INFO] [stdout]  966 | impl GhostStats {
[INFO] [stdout]      | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1080 |     pub fn report(&self, moment: &str) -> String {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/util/watchdog.rs:53:45
[INFO] [stdout]    |
[INFO] [stdout] 53 |         libc::signal(libc::SIGTERM, on_term as libc::sighandler_t);
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 53 |         libc::signal(libc::SIGTERM, on_term as *const () as libc::sighandler_t);
[INFO] [stdout]    |                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CrossFileLookup`
[INFO] [stdout]     --> src/index/module_index/module_index_tests.rs:2117:39
[INFO] [stdout]      |
[INFO] [stdout] 2117 |     use crate::model::file_analysis::{CrossFileLookup, MethodResolution};
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/index/module_cache/module_cache_tests.rs:1742:9
[INFO] [stdout]      |
[INFO] [stdout] 1742 |     let mut fnv = |acc: &mut u64, bytes: &[u8]| {
[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/lsp/cli/query.rs:616:17
[INFO] [stdout]     |
[INFO] [stdout] 616 |             let mut item_json = |sources: &mut SourceCache, it: &resolve::HierarchyItem| {
[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/lsp/cli/query.rs:636:21
[INFO] [stdout]     |
[INFO] [stdout] 636 |                 let mut edge_json = |sources: &mut SourceCache,
[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/lsp/symbols/completion.rs:558:17
[INFO] [stdout]     |
[INFO] [stdout] 558 |             let mut items: Vec<CompletionItem> =
[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/model/witnesses/conclusions.rs:735:9
[INFO] [stdout]     |
[INFO] [stdout] 735 |     let mut enumerate = |att: WitnessAttachment, map: &mut HashMap<_, _>| {
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Beta` and `Alpha` are never constructed
[INFO] [stdout]    --> src/build/language_driver.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub enum Maturity {
[INFO] [stdout]     |          -------- variants in this enum
[INFO] [stdout] 175 |     Stable,
[INFO] [stdout] 176 |     Beta,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 177 |     Alpha,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Maturity` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_and_load_diag` is never used
[INFO] [stdout]    --> src/index/module_cache/blob.rs:495:8
[INFO] [stdout]     |
[INFO] [stdout] 495 | pub fn open_and_load_diag(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRITER_BUSY_TIMEOUT` is never used
[INFO] [stdout]   --> src/index/module_cache/conn.rs:55:18
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub(super) const WRITER_BUSY_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(10);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_test_cache_dir` is never used
[INFO] [stdout]    --> src/index/module_cache/conn.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn with_test_cache_dir<R>(dir: &std::path::Path, busy: std::time::Duration, f: impl FnOnce() -> R) -> R {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `providers_of` is never used
[INFO] [stdout]    --> src/index/module_index/parts.rs:335:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl ModuleEdgeIndexes {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub fn providers_of(&self, pkg: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove_attachment_source_at` is never used
[INFO] [stdout]    --> src/model/witnesses/mod.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl WitnessBag {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn remove_attachment_source_at(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `report` is never used
[INFO] [stdout]     --> src/util/ghost_stats.rs:1080:12
[INFO] [stdout]      |
[INFO] [stdout]  966 | impl GhostStats {
[INFO] [stdout]      | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1080 |     pub fn report(&self, moment: &str) -> String {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/util/watchdog.rs:53:45
[INFO] [stdout]    |
[INFO] [stdout] 53 |         libc::signal(libc::SIGTERM, on_term as libc::sighandler_t);
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 53 |         libc::signal(libc::SIGTERM, on_term as *const () as libc::sighandler_t);
[INFO] [stdout]    |                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 14s
[INFO] running `Command { std: "docker" "inspect" "abde89284ffa7bbc1905eadc7d3199b87450c1aa04b6d5df00a399f75ec7af3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "abde89284ffa7bbc1905eadc7d3199b87450c1aa04b6d5df00a399f75ec7af3d", kill_on_drop: false }`
[INFO] [stdout] abde89284ffa7bbc1905eadc7d3199b87450c1aa04b6d5df00a399f75ec7af3d
