[INFO] fetching crate rusty-cpp 0.1.1... [INFO] testing rusty-cpp-0.1.1 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate rusty-cpp 0.1.1 into /workspace/builds/worker-1-tc2/source [INFO] removed /workspace/builds/worker-1-tc2/source/.cargo/config.toml [INFO] started tweaking crates.io crate rusty-cpp 0.1.1 [INFO] finished tweaking crates.io crate rusty-cpp 0.1.1 [INFO] tweaked toml for crates.io crate rusty-cpp 0.1.1 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate rusty-cpp 0.1.1 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate rusty-cpp 0.1.1 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2f0a262ead58fb797a89bbb08a5b3d33595ce9efb467660486151660379d1f5a [INFO] running `Command { std: "docker" "start" "-a" "2f0a262ead58fb797a89bbb08a5b3d33595ce9efb467660486151660379d1f5a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2f0a262ead58fb797a89bbb08a5b3d33595ce9efb467660486151660379d1f5a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2f0a262ead58fb797a89bbb08a5b3d33595ce9efb467660486151660379d1f5a", kill_on_drop: false }` [INFO] [stdout] 2f0a262ead58fb797a89bbb08a5b3d33595ce9efb467660486151660379d1f5a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ea3427fc02911aa09024bfc26a0c8f12b7d2ee2304ee4153a83c3b86c8b6e9c8 [INFO] running `Command { std: "docker" "start" "-a" "ea3427fc02911aa09024bfc26a0c8f12b7d2ee2304ee4153a83c3b86c8b6e9c8", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.104 [INFO] [stderr] Compiling quote v1.0.42 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Compiling libc v0.2.178 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling bindgen v0.66.1 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling peeking_take_while v0.1.2 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling zmij v1.0.4 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_json v1.0.148 [INFO] [stderr] Compiling clap_lex v0.7.6 [INFO] [stderr] Compiling indexmap v2.12.1 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling rusty-cpp v0.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling fixedbitset v0.5.7 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling colored v3.0.0 [INFO] [stderr] Compiling clap_builder v4.5.53 [INFO] [stderr] Compiling syn v2.0.112 [INFO] [stderr] Compiling petgraph v0.8.3 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling clang v2.0.0 [INFO] [stderr] Compiling cexpr v0.6.0 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling miette-derive v7.6.0 [INFO] [stderr] Compiling miette v7.6.0 [INFO] [stderr] Compiling clap v4.5.53 [INFO] [stderr] Compiling z3-sys v0.8.1 [INFO] [stderr] Compiling z3 v0.12.1 [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/ast_visitor.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::debug_println; [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: `crate::debug_println` [INFO] [stdout] --> src/parser/ast_visitor.rs:641:9 [INFO] [stdout] | [INFO] [stdout] 641 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/header_cache.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/safety_annotations.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/mod.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/ir/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lifetime_inference.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/analysis/liveness.rs:13:33 [INFO] [stdout] | [INFO] [stdout] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/liveness.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mutable_checker.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mutable_checker.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lambda_capture_safety.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowKind` and `OwnershipState` [INFO] [stdout] --> src/analysis/raii_tracking.rs:12:42 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::ir::{IrFunction, IrStatement, BorrowKind, OwnershipState}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/raii_tracking.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/inheritance_safety.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/external_annotations.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let mut comment_content = String::new(); [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: unused variable: `comment_content` [INFO] [stdout] --> src/parser/external_annotations.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let mut comment_content = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comment_content` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `return_lifetime` is never read [INFO] [stdout] --> src/parser/external_annotations.rs:373:35 [INFO] [stdout] | [INFO] [stdout] 373 | let mut return_lifetime = None; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> src/ir/mod.rs:651:32 [INFO] [stdout] | [INFO] [stdout] 651 | Expression::BinaryOp { left, right, op } => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `left: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> src/ir/mod.rs:651:38 [INFO] [stdout] | [INFO] [stdout] 651 | Expression::BinaryOp { left, right, op } => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `right: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ir/mod.rs:1272:29 [INFO] [stdout] | [INFO] [stdout] 1213 | ... crate::parser::Expression::Move { inner, .. } => { [INFO] [stdout] | --------------------------------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1272 | ... crate::parser::Expression::Move { inner, .. } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_move` [INFO] [stdout] --> src/ir/mod.rs:1352:61 [INFO] [stdout] | [INFO] [stdout] 1352 | ... LambdaCaptureKind::Init { name, is_move } => LambdaCaptureInfo { [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `is_move: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:813:70 [INFO] [stdout] | [INFO] [stdout] 813 | ... crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:1183:70 [INFO] [stdout] | [INFO] [stdout] 1183 | ... crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:1576:62 [INFO] [stdout] | [INFO] [stdout] 1576 | crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inner` [INFO] [stdout] --> src/ir/mod.rs:1752:54 [INFO] [stdout] | [INFO] [stdout] 1752 | crate::parser::Expression::AddressOf(inner) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_info` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:246:20 [INFO] [stdout] | [INFO] [stdout] 246 | for (var_name, var_info) in &function.variables { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:269:14 [INFO] [stdout] | [INFO] [stdout] 269 | for (idx, statement) in block.statements.iter().enumerate() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/analysis/lifetime_inference.rs:245:43 [INFO] [stdout] | [INFO] [stdout] 245 | IrStatement::Move { from, to } => { [INFO] [stdout] | ^^ help: try ignoring the field: `to: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inner` [INFO] [stdout] --> src/analysis/pointer_safety.rs:456:26 [INFO] [stdout] | [INFO] [stdout] 456 | Expression::Cast(inner) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `function` [INFO] [stdout] --> src/analysis/raii_tracking.rs:403:5 [INFO] [stdout] | [INFO] [stdout] 403 | function: &IrFunction, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:178:41 [INFO] [stdout] | [INFO] [stdout] 178 | Statement::FunctionCall { name, args, location, .. } => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `args: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `then_borrowers` [INFO] [stdout] --> src/analysis/mod.rs:2022:21 [INFO] [stdout] | [INFO] [stdout] 2022 | let then_borrowers: HashSet = then_borrows.iter().map(|b| b.borrower.clone()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_then_borrowers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_qualified_function_name` is never used [INFO] [stdout] --> src/parser/safety_annotations.rs:903:4 [INFO] [stdout] | [INFO] [stdout] 903 | fn extract_qualified_function_name(before_paren: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `returns_reference` is never used [INFO] [stdout] --> src/analysis/mod.rs:207:4 [INFO] [stdout] | [INFO] [stdout] 207 | fn returns_reference(return_type: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this_context` is never read [INFO] [stdout] --> src/analysis/mod.rs:1455:5 [INFO] [stdout] | [INFO] [stdout] 1433 | struct OwnershipTracker { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 1455 | this_context: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `borrowed_from`, `kind`, and `source` are never read [INFO] [stdout] --> src/analysis/mod.rs:1504:5 [INFO] [stdout] | [INFO] [stdout] 1502 | struct ActiveBorrow { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 1503 | borrower: String, // The reference variable that is borrowing (e.g., "ref") [INFO] [stdout] 1504 | borrowed_from: String, // The variable being borrowed from (e.g., "ptr") [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1505 | kind: BorrowKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 1508 | source: BorrowSource, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ActiveBorrow` 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: variant `FieldAccess` is never constructed [INFO] [stdout] --> src/analysis/mod.rs:1519:5 [INFO] [stdout] | [INFO] [stdout] 1513 | enum BorrowSource { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 1519 | FieldAccess { // auto& x = obj.field; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BorrowSource` 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: variants `Borrowed`, `MutBorrowed`, `ConstBorrowed`, and `Consumed` are never constructed [INFO] [stdout] --> src/analysis/mod.rs:1528:5 [INFO] [stdout] | [INFO] [stdout] 1527 | enum ThisContext { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 1528 | Borrowed, // Regular method - implicit &self [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1529 | MutBorrowed, // Mutable method - implicit &mut self [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1530 | ConstBorrowed, // Const method - const &self [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1531 | Consumed, // Rvalue ref method - implicit &&self (owned) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ThisContext` 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: associated items `new`, `has_any_field_borrowed`, `can_move_from_this`, and `set_this_context` are never used [INFO] [stdout] --> src/analysis/mod.rs:1535:8 [INFO] [stdout] | [INFO] [stdout] 1534 | impl OwnershipTracker { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 1535 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1790 | fn has_any_field_borrowed(&self, object: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1817 | fn can_move_from_this(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1826 | fn set_this_context(&mut self, context: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_statement_for_unsafe_calls` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn check_statement_for_unsafe_calls( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_unsafe_function_call` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:334:4 [INFO] [stdout] | [INFO] [stdout] 334 | fn find_unsafe_function_call( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_function_safe` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:451:4 [INFO] [stdout] | [INFO] [stdout] 451 | fn is_function_safe( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_function_safe_with_external` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:488:4 [INFO] [stdout] | [INFO] [stdout] 488 | fn is_function_safe_with_external( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/ast_visitor.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::debug_println; [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: `crate::debug_println` [INFO] [stdout] --> src/parser/ast_visitor.rs:641:9 [INFO] [stdout] | [INFO] [stdout] 641 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/header_cache.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/safety_annotations.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `template_context::TemplateContext` [INFO] [stdout] --> src/parser/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use template_context::TemplateContext; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/mod.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/ir/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lifetime_inference.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/analysis/liveness.rs:13:33 [INFO] [stdout] | [INFO] [stdout] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/liveness.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mutable_checker.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mutable_checker.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lambda_capture_safety.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowKind` and `OwnershipState` [INFO] [stdout] --> src/analysis/raii_tracking.rs:12:42 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::ir::{IrFunction, IrStatement, BorrowKind, OwnershipState}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/raii_tracking.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/inheritance_safety.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/external_annotations.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let mut comment_content = String::new(); [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: unused variable: `comment_content` [INFO] [stdout] --> src/parser/external_annotations.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let mut comment_content = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comment_content` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `return_lifetime` is never read [INFO] [stdout] --> src/parser/external_annotations.rs:373:35 [INFO] [stdout] | [INFO] [stdout] 373 | let mut return_lifetime = None; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> src/ir/mod.rs:651:32 [INFO] [stdout] | [INFO] [stdout] 651 | Expression::BinaryOp { left, right, op } => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `left: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> src/ir/mod.rs:651:38 [INFO] [stdout] | [INFO] [stdout] 651 | Expression::BinaryOp { left, right, op } => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `right: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ir/mod.rs:1272:29 [INFO] [stdout] | [INFO] [stdout] 1213 | ... crate::parser::Expression::Move { inner, .. } => { [INFO] [stdout] | --------------------------------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1272 | ... crate::parser::Expression::Move { inner, .. } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_move` [INFO] [stdout] --> src/ir/mod.rs:1352:61 [INFO] [stdout] | [INFO] [stdout] 1352 | ... LambdaCaptureKind::Init { name, is_move } => LambdaCaptureInfo { [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `is_move: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:813:70 [INFO] [stdout] | [INFO] [stdout] 813 | ... crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:1183:70 [INFO] [stdout] | [INFO] [stdout] 1183 | ... crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:1576:62 [INFO] [stdout] | [INFO] [stdout] 1576 | crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inner` [INFO] [stdout] --> src/ir/mod.rs:1752:54 [INFO] [stdout] | [INFO] [stdout] 1752 | crate::parser::Expression::AddressOf(inner) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_info` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:246:20 [INFO] [stdout] | [INFO] [stdout] 246 | for (var_name, var_info) in &function.variables { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:269:14 [INFO] [stdout] | [INFO] [stdout] 269 | for (idx, statement) in block.statements.iter().enumerate() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/analysis/lifetime_inference.rs:245:43 [INFO] [stdout] | [INFO] [stdout] 245 | IrStatement::Move { from, to } => { [INFO] [stdout] | ^^ help: try ignoring the field: `to: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inner` [INFO] [stdout] --> src/analysis/pointer_safety.rs:456:26 [INFO] [stdout] | [INFO] [stdout] 456 | Expression::Cast(inner) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `function` [INFO] [stdout] --> src/analysis/raii_tracking.rs:403:5 [INFO] [stdout] | [INFO] [stdout] 403 | function: &IrFunction, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:178:41 [INFO] [stdout] | [INFO] [stdout] 178 | Statement::FunctionCall { name, args, location, .. } => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `args: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `then_borrowers` [INFO] [stdout] --> src/analysis/mod.rs:2022:21 [INFO] [stdout] | [INFO] [stdout] 2022 | let then_borrowers: HashSet = then_borrows.iter().map(|b| b.borrower.clone()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_then_borrowers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `template_parameters` and `is_template` are never read [INFO] [stdout] --> src/parser/ast_visitor.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 304 | pub struct Class { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 305 | pub name: String, [INFO] [stdout] 306 | pub template_parameters: Vec, // e.g., ["T", "Args"] for template [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 307 | pub is_template: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Class` has derived impls for the traits `Clone` and `Debug`, 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: method `get_safety_annotation` is never used [INFO] [stdout] --> src/parser/header_cache.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl HeaderCache { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn get_safety_annotation(&self, func_name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_class_safety`, `get_function_safety_for_file`, and `should_check_function_for_file` are never used [INFO] [stdout] --> src/parser/safety_annotations.rs:213:12 [INFO] [stdout] | [INFO] [stdout] 87 | impl SafetyContext { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 213 | pub fn get_class_safety(&self, class_name: &str) -> SafetyMode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 316 | pub fn get_function_safety_for_file(&self, func_name: &str, func_file: &str) -> SafetyMode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn should_check_function_for_file(&self, func_name: &str, func_file: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_qualified_function_name` is never used [INFO] [stdout] --> src/parser/safety_annotations.rs:903:4 [INFO] [stdout] | [INFO] [stdout] 903 | fn extract_qualified_function_name(before_paren: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TemplateContext` is never constructed [INFO] [stdout] --> src/parser/template_context.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct TemplateContext { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `enter_template`, `exit_template`, `is_type_parameter`, `get_type_parameters`, and `is_in_template` are never used [INFO] [stdout] --> src/parser/template_context.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl TemplateContext { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 19 | /// Create a new empty template context [INFO] [stdout] 20 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn enter_template(&mut self, params: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn exit_template(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn is_type_parameter(&self, name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_type_parameters(&self) -> &HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn is_in_template(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TypeLifetime` is never used [INFO] [stdout] --> src/parser/type_annotations.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | pub enum TypeLifetime { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MethodLifetime` is never constructed [INFO] [stdout] --> src/parser/type_annotations.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct MethodLifetime { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TypeLifetimeSpec` is never constructed [INFO] [stdout] --> src/parser/type_annotations.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct TypeLifetimeSpec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TypeLifetimeRegistry` is never constructed [INFO] [stdout] --> src/parser/type_annotations.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct TypeLifetimeRegistry { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_type_spec`, `add_type_spec`, and `load_stl_annotations` are never used [INFO] [stdout] --> src/parser/type_annotations.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl TypeLifetimeRegistry { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 48 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_type_spec(&self, type_name: &str) -> Option<&TypeLifetimeSpec> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn add_type_spec(&mut self, spec: TypeLifetimeSpec) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | fn load_stl_annotations(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_type_lifetime_annotation` is never used [INFO] [stdout] --> src/parser/type_annotations.rs:254:8 [INFO] [stdout] | [INFO] [stdout] 254 | pub fn parse_type_lifetime_annotation(comment: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_method_lifetime` is never used [INFO] [stdout] --> src/parser/type_annotations.rs:290:4 [INFO] [stdout] | [INFO] [stdout] 290 | fn parse_method_lifetime(line: &str, spec: &mut TypeLifetimeSpec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_member_lifetime` is never used [INFO] [stdout] --> src/parser/type_annotations.rs:313:4 [INFO] [stdout] | [INFO] [stdout] 313 | fn parse_member_lifetime(line: &str, spec: &mut TypeLifetimeSpec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_param_types` is never used [INFO] [stdout] --> src/parser/type_annotations.rs:330:4 [INFO] [stdout] | [INFO] [stdout] 330 | fn parse_param_types(params: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_type_lifetime` is never used [INFO] [stdout] --> src/parser/type_annotations.rs:340:4 [INFO] [stdout] | [INFO] [stdout] 340 | fn parse_type_lifetime(s: &str) -> TypeLifetime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_lifetime_name` is never used [INFO] [stdout] --> src/parser/type_annotations.rs:370:4 [INFO] [stdout] | [INFO] [stdout] 370 | fn extract_lifetime_name(s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_base_type` is never used [INFO] [stdout] --> src/parser/type_annotations.rs:377:4 [INFO] [stdout] | [INFO] [stdout] 377 | fn extract_base_type(type_name: &str) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `lifetime_spec`, `param_lifetimes`, `return_lifetime`, and `lifetime_constraints` are never read [INFO] [stdout] --> src/parser/external_annotations.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct ExternalFunctionAnnotation { [INFO] [stdout] | -------------------------- fields in this struct [INFO] [stdout] 29 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 30 | pub safety: ExternalSafety, [INFO] [stdout] 31 | pub lifetime_spec: Option, // Raw lifetime specification for future use [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 32 | pub param_lifetimes: Vec, // Parameter lifetime annotations [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 33 | pub return_lifetime: Option, // Return type lifetime [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 34 | pub lifetime_constraints: Vec, // Where clauses [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExternalFunctionAnnotation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_file` and `set_active_profile` are never used [INFO] [stdout] --> src/parser/external_annotations.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 67 | impl ExternalAnnotations { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn from_file(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 784 | pub fn set_active_profile(&mut self, profile_name: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `user_defined_raii_types` is never read [INFO] [stdout] --> src/ir/mod.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct IrProgram { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 90 | pub user_defined_raii_types: std::collections::HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IrProgram` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `class_name` and `template_parameters` are never read [INFO] [stdout] --> src/ir/mod.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 94 | pub struct IrFunction { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 104 | pub class_name: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 105 | // Template information [INFO] [stdout] 106 | pub template_parameters: Vec, // e.g., ["T", "U"] for template [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IrFunction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_this` is never read [INFO] [stdout] --> src/ir/mod.rs:294:9 [INFO] [stdout] | [INFO] [stdout] 291 | pub struct LambdaCaptureInfo { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 294 | pub is_this: bool, // true if capturing 'this' [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LambdaCaptureInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `returns_reference` is never used [INFO] [stdout] --> src/analysis/mod.rs:207:4 [INFO] [stdout] | [INFO] [stdout] 207 | fn returns_reference(return_type: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this_context` is never read [INFO] [stdout] --> src/analysis/mod.rs:1455:5 [INFO] [stdout] | [INFO] [stdout] 1433 | struct OwnershipTracker { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 1455 | this_context: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `borrowed_from`, `kind`, and `source` are never read [INFO] [stdout] --> src/analysis/mod.rs:1504:5 [INFO] [stdout] | [INFO] [stdout] 1502 | struct ActiveBorrow { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 1503 | borrower: String, // The reference variable that is borrowing (e.g., "ref") [INFO] [stdout] 1504 | borrowed_from: String, // The variable being borrowed from (e.g., "ptr") [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1505 | kind: BorrowKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 1508 | source: BorrowSource, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ActiveBorrow` 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: variant `FieldAccess` is never constructed [INFO] [stdout] --> src/analysis/mod.rs:1519:5 [INFO] [stdout] | [INFO] [stdout] 1513 | enum BorrowSource { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 1519 | FieldAccess { // auto& x = obj.field; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BorrowSource` 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: variants `Borrowed`, `MutBorrowed`, `ConstBorrowed`, and `Consumed` are never constructed [INFO] [stdout] --> src/analysis/mod.rs:1528:5 [INFO] [stdout] | [INFO] [stdout] 1527 | enum ThisContext { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 1528 | Borrowed, // Regular method - implicit &self [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1529 | MutBorrowed, // Mutable method - implicit &mut self [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1530 | ConstBorrowed, // Const method - const &self [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1531 | Consumed, // Rvalue ref method - implicit &&self (owned) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ThisContext` 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: associated items `new`, `has_any_field_borrowed`, `can_move_from_this`, and `set_this_context` are never used [INFO] [stdout] --> src/analysis/mod.rs:1535:8 [INFO] [stdout] | [INFO] [stdout] 1534 | impl OwnershipTracker { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 1535 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1790 | fn has_any_field_borrowed(&self, object: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1817 | fn can_move_from_this(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1826 | fn set_this_context(&mut self, context: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_unsafe_propagation` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn check_unsafe_propagation( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_statement_for_unsafe_calls` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn check_statement_for_unsafe_calls( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_unsafe_function_call` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:334:4 [INFO] [stdout] | [INFO] [stdout] 334 | fn find_unsafe_function_call( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_function_safe` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:451:4 [INFO] [stdout] | [INFO] [stdout] 451 | fn is_function_safe( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_function_safe_with_external` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:488:4 [INFO] [stdout] | [INFO] [stdout] 488 | fn is_function_safe_with_external( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `clear_field_borrow`, `method_qualifier`, `is_field_moved`, and `is_field_borrowed` are never used [INFO] [stdout] --> src/analysis/this_tracking.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl ThisPointerTracker { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 183 | pub fn clear_field_borrow(&mut self, field: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub fn method_qualifier(&self) -> Option<&MethodQualifier> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn is_field_moved(&self, field: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn is_field_borrowed(&self, field: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `lambda_scope` is never read [INFO] [stdout] --> src/analysis/raii_tracking.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct LambdaCapture { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 56 | pub lambda_scope: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LambdaCapture` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `variable` and `allocation_line` are never read [INFO] [stdout] --> src/analysis/raii_tracking.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 74 | pub struct HeapAllocation { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 75 | pub variable: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 76 | pub state: AllocationState, [INFO] [stdout] 77 | pub allocation_line: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HeapAllocation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `user_defined_raii_types` is never read [INFO] [stdout] --> src/analysis/raii_tracking.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 101 | pub struct RaiiTracker { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 113 | pub user_defined_raii_types: HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RaiiTracker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `has_user_defined_destructor` is never used [INFO] [stdout] --> src/analysis/raii_tracking.rs:521:8 [INFO] [stdout] | [INFO] [stdout] 521 | pub fn has_user_defined_destructor(type_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_primitive_or_builtin` is never used [INFO] [stdout] --> src/analysis/raii_tracking.rs:545:4 [INFO] [stdout] | [INFO] [stdout] 545 | fn is_primitive_or_builtin(type_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SafeFnAssignmentCheck` is never constructed [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct SafeFnAssignmentCheck { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_safe_fn_type` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn is_safe_fn_type(type_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_unsafe_fn_type` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn is_unsafe_fn_type(type_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_raw_function_pointer_type` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn is_raw_function_pointer_type(type_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_safe_fn_call` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn is_safe_fn_call(callee_type: &str, method_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_unsafe_fn_call_unsafe_method` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn is_unsafe_fn_call_unsafe_method(callee_type: &str, method_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_member_fn_wrapper_type` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn is_member_fn_wrapper_type(type_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_raw_member_function_pointer_type` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn is_raw_member_function_pointer_type(type_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_function_pointer_safety` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn check_function_pointer_safety( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_statement_for_function_pointer_safety` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:139:4 [INFO] [stdout] | [INFO] [stdout] 139 | fn check_statement_for_function_pointer_safety( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_safe_fn_assignment_expr` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:235:4 [INFO] [stdout] | [INFO] [stdout] 235 | fn check_safe_fn_assignment_expr( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_function_from_address_of` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:270:4 [INFO] [stdout] | [INFO] [stdout] 270 | fn extract_function_from_address_of(expr: &Expression) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_raw_function_pointer_call` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:302:8 [INFO] [stdout] | [INFO] [stdout] 302 | pub fn check_raw_function_pointer_call( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.94s [INFO] running `Command { std: "docker" "inspect" "ea3427fc02911aa09024bfc26a0c8f12b7d2ee2304ee4153a83c3b86c8b6e9c8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ea3427fc02911aa09024bfc26a0c8f12b7d2ee2304ee4153a83c3b86c8b6e9c8", kill_on_drop: false }` [INFO] [stdout] ea3427fc02911aa09024bfc26a0c8f12b7d2ee2304ee4153a83c3b86c8b6e9c8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5d9eda83ff9ca210d4ac02a06df4b73b15d146731a6daf069d35a7689be57539 [INFO] running `Command { std: "docker" "start" "-a" "5d9eda83ff9ca210d4ac02a06df4b73b15d146731a6daf069d35a7689be57539", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.31 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling predicates-core v1.0.9 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling assert_cmd v2.1.1 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling predicates-tree v1.0.12 [INFO] [stderr] Compiling predicates v3.1.3 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling rusty-cpp v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/ast_visitor.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::debug_println; [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: `crate::debug_println` [INFO] [stdout] --> src/parser/ast_visitor.rs:641:9 [INFO] [stdout] | [INFO] [stdout] 641 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/header_cache.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/safety_annotations.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/mod.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/ir/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lifetime_inference.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/analysis/liveness.rs:13:33 [INFO] [stdout] | [INFO] [stdout] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/liveness.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mutable_checker.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mutable_checker.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lambda_capture_safety.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowKind` and `OwnershipState` [INFO] [stdout] --> src/analysis/raii_tracking.rs:12:42 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::ir::{IrFunction, IrStatement, BorrowKind, OwnershipState}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/raii_tracking.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/inheritance_safety.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/ast_visitor.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::debug_println; [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: `crate::debug_println` [INFO] [stdout] --> src/parser/ast_visitor.rs:641:9 [INFO] [stdout] | [INFO] [stdout] 641 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/header_cache.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/safety_annotations.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/mod.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/ir/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lifetime_inference.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/analysis/liveness.rs:13:33 [INFO] [stdout] | [INFO] [stdout] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/liveness.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mutable_checker.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mutable_checker.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lambda_capture_safety.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowKind` and `OwnershipState` [INFO] [stdout] --> src/analysis/raii_tracking.rs:12:42 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::ir::{IrFunction, IrStatement, BorrowKind, OwnershipState}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/raii_tracking.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/inheritance_safety.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/external_annotations.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let mut comment_content = String::new(); [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: unused variable: `comment_content` [INFO] [stdout] --> src/parser/external_annotations.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let mut comment_content = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comment_content` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `return_lifetime` is never read [INFO] [stdout] --> src/parser/external_annotations.rs:373:35 [INFO] [stdout] | [INFO] [stdout] 373 | let mut return_lifetime = None; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> src/ir/mod.rs:651:32 [INFO] [stdout] | [INFO] [stdout] 651 | Expression::BinaryOp { left, right, op } => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `left: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> src/ir/mod.rs:651:38 [INFO] [stdout] | [INFO] [stdout] 651 | Expression::BinaryOp { left, right, op } => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `right: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ir/mod.rs:1272:29 [INFO] [stdout] | [INFO] [stdout] 1213 | ... crate::parser::Expression::Move { inner, .. } => { [INFO] [stdout] | --------------------------------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1272 | ... crate::parser::Expression::Move { inner, .. } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_move` [INFO] [stdout] --> src/ir/mod.rs:1352:61 [INFO] [stdout] | [INFO] [stdout] 1352 | ... LambdaCaptureKind::Init { name, is_move } => LambdaCaptureInfo { [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `is_move: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:813:70 [INFO] [stdout] | [INFO] [stdout] 813 | ... crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:1183:70 [INFO] [stdout] | [INFO] [stdout] 1183 | ... crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:1576:62 [INFO] [stdout] | [INFO] [stdout] 1576 | crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inner` [INFO] [stdout] --> src/ir/mod.rs:1752:54 [INFO] [stdout] | [INFO] [stdout] 1752 | crate::parser::Expression::AddressOf(inner) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_info` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:246:20 [INFO] [stdout] | [INFO] [stdout] 246 | for (var_name, var_info) in &function.variables { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:269:14 [INFO] [stdout] | [INFO] [stdout] 269 | for (idx, statement) in block.statements.iter().enumerate() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/analysis/lifetime_inference.rs:245:43 [INFO] [stdout] | [INFO] [stdout] 245 | IrStatement::Move { from, to } => { [INFO] [stdout] | ^^ help: try ignoring the field: `to: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inner` [INFO] [stdout] --> src/analysis/pointer_safety.rs:456:26 [INFO] [stdout] | [INFO] [stdout] 456 | Expression::Cast(inner) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `function` [INFO] [stdout] --> src/analysis/raii_tracking.rs:403:5 [INFO] [stdout] | [INFO] [stdout] 403 | function: &IrFunction, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:178:41 [INFO] [stdout] | [INFO] [stdout] 178 | Statement::FunctionCall { name, args, location, .. } => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `args: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `then_borrowers` [INFO] [stdout] --> src/analysis/mod.rs:2022:21 [INFO] [stdout] | [INFO] [stdout] 2022 | let then_borrowers: HashSet = then_borrows.iter().map(|b| b.borrower.clone()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_then_borrowers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_qualified_function_name` is never used [INFO] [stdout] --> src/parser/safety_annotations.rs:903:4 [INFO] [stdout] | [INFO] [stdout] 903 | fn extract_qualified_function_name(before_paren: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `returns_reference` is never used [INFO] [stdout] --> src/analysis/mod.rs:207:4 [INFO] [stdout] | [INFO] [stdout] 207 | fn returns_reference(return_type: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this_context` is never read [INFO] [stdout] --> src/analysis/mod.rs:1455:5 [INFO] [stdout] | [INFO] [stdout] 1433 | struct OwnershipTracker { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 1455 | this_context: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `borrowed_from`, `kind`, and `source` are never read [INFO] [stdout] --> src/analysis/mod.rs:1504:5 [INFO] [stdout] | [INFO] [stdout] 1502 | struct ActiveBorrow { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 1503 | borrower: String, // The reference variable that is borrowing (e.g., "ref") [INFO] [stdout] 1504 | borrowed_from: String, // The variable being borrowed from (e.g., "ptr") [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1505 | kind: BorrowKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 1508 | source: BorrowSource, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ActiveBorrow` 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: variant `FieldAccess` is never constructed [INFO] [stdout] --> src/analysis/mod.rs:1519:5 [INFO] [stdout] | [INFO] [stdout] 1513 | enum BorrowSource { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 1519 | FieldAccess { // auto& x = obj.field; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BorrowSource` 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: variants `Borrowed`, `MutBorrowed`, `ConstBorrowed`, and `Consumed` are never constructed [INFO] [stdout] --> src/analysis/mod.rs:1528:5 [INFO] [stdout] | [INFO] [stdout] 1527 | enum ThisContext { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 1528 | Borrowed, // Regular method - implicit &self [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1529 | MutBorrowed, // Mutable method - implicit &mut self [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1530 | ConstBorrowed, // Const method - const &self [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1531 | Consumed, // Rvalue ref method - implicit &&self (owned) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ThisContext` 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: associated items `new`, `has_any_field_borrowed`, `can_move_from_this`, and `set_this_context` are never used [INFO] [stdout] --> src/analysis/mod.rs:1535:8 [INFO] [stdout] | [INFO] [stdout] 1534 | impl OwnershipTracker { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 1535 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1790 | fn has_any_field_borrowed(&self, object: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1817 | fn can_move_from_this(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1826 | fn set_this_context(&mut self, context: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_statement_for_unsafe_calls` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn check_statement_for_unsafe_calls( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_unsafe_function_call` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:334:4 [INFO] [stdout] | [INFO] [stdout] 334 | fn find_unsafe_function_call( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_function_safe` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:451:4 [INFO] [stdout] | [INFO] [stdout] 451 | fn is_function_safe( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_function_safe_with_external` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:488:4 [INFO] [stdout] | [INFO] [stdout] 488 | fn is_function_safe_with_external( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/external_annotations.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let mut comment_content = String::new(); [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: unused variable: `comment_content` [INFO] [stdout] --> src/parser/external_annotations.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let mut comment_content = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comment_content` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `return_lifetime` is never read [INFO] [stdout] --> src/parser/external_annotations.rs:373:35 [INFO] [stdout] | [INFO] [stdout] 373 | let mut return_lifetime = None; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> src/ir/mod.rs:651:32 [INFO] [stdout] | [INFO] [stdout] 651 | Expression::BinaryOp { left, right, op } => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `left: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> src/ir/mod.rs:651:38 [INFO] [stdout] | [INFO] [stdout] 651 | Expression::BinaryOp { left, right, op } => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `right: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ir/mod.rs:1272:29 [INFO] [stdout] | [INFO] [stdout] 1213 | ... crate::parser::Expression::Move { inner, .. } => { [INFO] [stdout] | --------------------------------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1272 | ... crate::parser::Expression::Move { inner, .. } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_move` [INFO] [stdout] --> src/ir/mod.rs:1352:61 [INFO] [stdout] | [INFO] [stdout] 1352 | ... LambdaCaptureKind::Init { name, is_move } => LambdaCaptureInfo { [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `is_move: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:813:70 [INFO] [stdout] | [INFO] [stdout] 813 | ... crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:1183:70 [INFO] [stdout] | [INFO] [stdout] 1183 | ... crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:1576:62 [INFO] [stdout] | [INFO] [stdout] 1576 | crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inner` [INFO] [stdout] --> src/ir/mod.rs:1752:54 [INFO] [stdout] | [INFO] [stdout] 1752 | crate::parser::Expression::AddressOf(inner) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_info` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:246:20 [INFO] [stdout] | [INFO] [stdout] 246 | for (var_name, var_info) in &function.variables { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:269:14 [INFO] [stdout] | [INFO] [stdout] 269 | for (idx, statement) in block.statements.iter().enumerate() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/analysis/lifetime_inference.rs:245:43 [INFO] [stdout] | [INFO] [stdout] 245 | IrStatement::Move { from, to } => { [INFO] [stdout] | ^^ help: try ignoring the field: `to: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lifetimes` [INFO] [stdout] --> src/analysis/lifetime_inference.rs:375:13 [INFO] [stdout] | [INFO] [stdout] 375 | let lifetimes = inferencer.infer_function_lifetimes(&function); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lifetimes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inner` [INFO] [stdout] --> src/analysis/pointer_safety.rs:456:26 [INFO] [stdout] | [INFO] [stdout] 456 | Expression::Cast(inner) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/analysis/liveness.rs:291:13 [INFO] [stdout] | [INFO] [stdout] 291 | let mut analyzer = LivenessAnalyzer::new(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `function` [INFO] [stdout] --> src/analysis/raii_tracking.rs:403:5 [INFO] [stdout] | [INFO] [stdout] 403 | function: &IrFunction, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `interface` [INFO] [stdout] --> src/analysis/inheritance_safety.rs:706:13 [INFO] [stdout] | [INFO] [stdout] 706 | let interface = make_interface("IDrawable"); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interface` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `base` [INFO] [stdout] --> src/analysis/inheritance_safety.rs:718:13 [INFO] [stdout] | [INFO] [stdout] 718 | let base = make_class("Base", Vec::new()); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_base` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:178:41 [INFO] [stdout] | [INFO] [stdout] 178 | Statement::FunctionCall { name, args, location, .. } => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `args: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `then_borrowers` [INFO] [stdout] --> src/analysis/mod.rs:2022:21 [INFO] [stdout] | [INFO] [stdout] 2022 | let then_borrowers: HashSet = then_borrows.iter().map(|b| b.borrower.clone()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_then_borrowers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/analysis/mod.rs:2889:13 [INFO] [stdout] | [INFO] [stdout] 2889 | let mut program = IrProgram { [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/analysis/mod.rs:2929:13 [INFO] [stdout] | [INFO] [stdout] 2929 | let mut program = IrProgram { [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/analysis/mod.rs:2958:13 [INFO] [stdout] | [INFO] [stdout] 2958 | let mut program = IrProgram { [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/analysis/mod.rs:3003:13 [INFO] [stdout] | [INFO] [stdout] 3003 | let mut program = IrProgram { [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/analysis/mod.rs:3034:13 [INFO] [stdout] | [INFO] [stdout] 3034 | let mut program = IrProgram { [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_qualified_function_name` is never used [INFO] [stdout] --> src/parser/safety_annotations.rs:903:4 [INFO] [stdout] | [INFO] [stdout] 903 | fn extract_qualified_function_name(before_paren: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `returns_reference` is never used [INFO] [stdout] --> src/analysis/mod.rs:207:4 [INFO] [stdout] | [INFO] [stdout] 207 | fn returns_reference(return_type: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this_context` is never read [INFO] [stdout] --> src/analysis/mod.rs:1455:5 [INFO] [stdout] | [INFO] [stdout] 1433 | struct OwnershipTracker { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 1455 | this_context: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `borrowed_from`, `kind`, and `source` are never read [INFO] [stdout] --> src/analysis/mod.rs:1504:5 [INFO] [stdout] | [INFO] [stdout] 1502 | struct ActiveBorrow { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 1503 | borrower: String, // The reference variable that is borrowing (e.g., "ref") [INFO] [stdout] 1504 | borrowed_from: String, // The variable being borrowed from (e.g., "ptr") [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1505 | kind: BorrowKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 1508 | source: BorrowSource, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ActiveBorrow` 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: variant `FieldAccess` is never constructed [INFO] [stdout] --> src/analysis/mod.rs:1519:5 [INFO] [stdout] | [INFO] [stdout] 1513 | enum BorrowSource { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 1519 | FieldAccess { // auto& x = obj.field; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BorrowSource` 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: variants `Borrowed`, `MutBorrowed`, `ConstBorrowed`, and `Consumed` are never constructed [INFO] [stdout] --> src/analysis/mod.rs:1528:5 [INFO] [stdout] | [INFO] [stdout] 1527 | enum ThisContext { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 1528 | Borrowed, // Regular method - implicit &self [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1529 | MutBorrowed, // Mutable method - implicit &mut self [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1530 | ConstBorrowed, // Const method - const &self [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1531 | Consumed, // Rvalue ref method - implicit &&self (owned) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ThisContext` 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: methods `has_any_field_borrowed`, `can_move_from_this`, and `set_this_context` are never used [INFO] [stdout] --> src/analysis/mod.rs:1790:8 [INFO] [stdout] | [INFO] [stdout] 1534 | impl OwnershipTracker { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 1790 | fn has_any_field_borrowed(&self, object: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1817 | fn can_move_from_this(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1826 | fn set_this_context(&mut self, context: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_unsafe_function_call` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:334:4 [INFO] [stdout] | [INFO] [stdout] 334 | fn find_unsafe_function_call( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_function_safe` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:451:4 [INFO] [stdout] | [INFO] [stdout] 451 | fn is_function_safe( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_function_safe_with_external` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:488:4 [INFO] [stdout] | [INFO] [stdout] 488 | fn is_function_safe_with_external( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/ast_visitor.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::debug_println; [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: `crate::debug_println` [INFO] [stdout] --> src/parser/ast_visitor.rs:641:9 [INFO] [stdout] | [INFO] [stdout] 641 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/header_cache.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/safety_annotations.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `template_context::TemplateContext` [INFO] [stdout] --> src/parser/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use template_context::TemplateContext; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/parser/mod.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/ir/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lifetime_inference.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/analysis/liveness.rs:13:33 [INFO] [stdout] | [INFO] [stdout] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/liveness.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mutable_checker.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/mutable_checker.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/lambda_capture_safety.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowKind` and `OwnershipState` [INFO] [stdout] --> src/analysis/raii_tracking.rs:12:42 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::ir::{IrFunction, IrStatement, BorrowKind, OwnershipState}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/raii_tracking.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::debug_println` [INFO] [stdout] --> src/analysis/inheritance_safety.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::debug_println; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/external_annotations.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let mut comment_content = String::new(); [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: unused variable: `comment_content` [INFO] [stdout] --> src/parser/external_annotations.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let mut comment_content = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comment_content` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `return_lifetime` is never read [INFO] [stdout] --> src/parser/external_annotations.rs:373:35 [INFO] [stdout] | [INFO] [stdout] 373 | let mut return_lifetime = None; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> src/ir/mod.rs:651:32 [INFO] [stdout] | [INFO] [stdout] 651 | Expression::BinaryOp { left, right, op } => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `left: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> src/ir/mod.rs:651:38 [INFO] [stdout] | [INFO] [stdout] 651 | Expression::BinaryOp { left, right, op } => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `right: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ir/mod.rs:1272:29 [INFO] [stdout] | [INFO] [stdout] 1213 | ... crate::parser::Expression::Move { inner, .. } => { [INFO] [stdout] | --------------------------------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1272 | ... crate::parser::Expression::Move { inner, .. } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_move` [INFO] [stdout] --> src/ir/mod.rs:1352:61 [INFO] [stdout] | [INFO] [stdout] 1352 | ... LambdaCaptureKind::Init { name, is_move } => LambdaCaptureInfo { [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `is_move: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:813:70 [INFO] [stdout] | [INFO] [stdout] 813 | ... crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:1183:70 [INFO] [stdout] | [INFO] [stdout] 1183 | ... crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lit` [INFO] [stdout] --> src/ir/mod.rs:1576:62 [INFO] [stdout] | [INFO] [stdout] 1576 | crate::parser::Expression::StringLiteral(lit) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inner` [INFO] [stdout] --> src/ir/mod.rs:1752:54 [INFO] [stdout] | [INFO] [stdout] 1752 | crate::parser::Expression::AddressOf(inner) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_info` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:246:20 [INFO] [stdout] | [INFO] [stdout] 246 | for (var_name, var_info) in &function.variables { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/analysis/lifetime_checker.rs:269:14 [INFO] [stdout] | [INFO] [stdout] 269 | for (idx, statement) in block.statements.iter().enumerate() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/analysis/lifetime_inference.rs:245:43 [INFO] [stdout] | [INFO] [stdout] 245 | IrStatement::Move { from, to } => { [INFO] [stdout] | ^^ help: try ignoring the field: `to: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lifetimes` [INFO] [stdout] --> src/analysis/lifetime_inference.rs:375:13 [INFO] [stdout] | [INFO] [stdout] 375 | let lifetimes = inferencer.infer_function_lifetimes(&function); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lifetimes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inner` [INFO] [stdout] --> src/analysis/pointer_safety.rs:456:26 [INFO] [stdout] | [INFO] [stdout] 456 | Expression::Cast(inner) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/analysis/liveness.rs:291:13 [INFO] [stdout] | [INFO] [stdout] 291 | let mut analyzer = LivenessAnalyzer::new(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `function` [INFO] [stdout] --> src/analysis/raii_tracking.rs:403:5 [INFO] [stdout] | [INFO] [stdout] 403 | function: &IrFunction, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `interface` [INFO] [stdout] --> src/analysis/inheritance_safety.rs:706:13 [INFO] [stdout] | [INFO] [stdout] 706 | let interface = make_interface("IDrawable"); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interface` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `base` [INFO] [stdout] --> src/analysis/inheritance_safety.rs:718:13 [INFO] [stdout] | [INFO] [stdout] 718 | let base = make_class("Base", Vec::new()); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_base` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:178:41 [INFO] [stdout] | [INFO] [stdout] 178 | Statement::FunctionCall { name, args, location, .. } => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `args: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `then_borrowers` [INFO] [stdout] --> src/analysis/mod.rs:2022:21 [INFO] [stdout] | [INFO] [stdout] 2022 | let then_borrowers: HashSet = then_borrows.iter().map(|b| b.borrower.clone()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_then_borrowers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/analysis/mod.rs:2889:13 [INFO] [stdout] | [INFO] [stdout] 2889 | let mut program = IrProgram { [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/analysis/mod.rs:2929:13 [INFO] [stdout] | [INFO] [stdout] 2929 | let mut program = IrProgram { [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/analysis/mod.rs:2958:13 [INFO] [stdout] | [INFO] [stdout] 2958 | let mut program = IrProgram { [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/analysis/mod.rs:3003:13 [INFO] [stdout] | [INFO] [stdout] 3003 | let mut program = IrProgram { [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/analysis/mod.rs:3034:13 [INFO] [stdout] | [INFO] [stdout] 3034 | let mut program = IrProgram { [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `template_parameters` and `is_template` are never read [INFO] [stdout] --> src/parser/ast_visitor.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 304 | pub struct Class { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 305 | pub name: String, [INFO] [stdout] 306 | pub template_parameters: Vec, // e.g., ["T", "Args"] for template [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 307 | pub is_template: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Class` has derived impls for the traits `Clone` and `Debug`, 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: method `get_safety_annotation` is never used [INFO] [stdout] --> src/parser/header_cache.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl HeaderCache { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn get_safety_annotation(&self, func_name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_class_safety`, `get_function_safety_for_file`, and `should_check_function_for_file` are never used [INFO] [stdout] --> src/parser/safety_annotations.rs:213:12 [INFO] [stdout] | [INFO] [stdout] 87 | impl SafetyContext { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 213 | pub fn get_class_safety(&self, class_name: &str) -> SafetyMode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 316 | pub fn get_function_safety_for_file(&self, func_name: &str, func_file: &str) -> SafetyMode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn should_check_function_for_file(&self, func_name: &str, func_file: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_qualified_function_name` is never used [INFO] [stdout] --> src/parser/safety_annotations.rs:903:4 [INFO] [stdout] | [INFO] [stdout] 903 | fn extract_qualified_function_name(before_paren: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `method_name`, `is_const`, `param_lifetimes`, and `return_lifetime` are never read [INFO] [stdout] --> src/parser/type_annotations.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct MethodLifetime { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 28 | pub method_name: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 29 | pub is_const: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 30 | pub param_lifetimes: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 31 | pub return_lifetime: TypeLifetime, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MethodLifetime` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `add_type_spec` is never used [INFO] [stdout] --> src/parser/type_annotations.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl TypeLifetimeRegistry { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn add_type_spec(&mut self, spec: TypeLifetimeSpec) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `lifetime_spec`, `param_lifetimes`, `return_lifetime`, and `lifetime_constraints` are never read [INFO] [stdout] --> src/parser/external_annotations.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct ExternalFunctionAnnotation { [INFO] [stdout] | -------------------------- fields in this struct [INFO] [stdout] 29 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 30 | pub safety: ExternalSafety, [INFO] [stdout] 31 | pub lifetime_spec: Option, // Raw lifetime specification for future use [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 32 | pub param_lifetimes: Vec, // Parameter lifetime annotations [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 33 | pub return_lifetime: Option, // Return type lifetime [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 34 | pub lifetime_constraints: Vec, // Where clauses [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExternalFunctionAnnotation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_file` is never used [INFO] [stdout] --> src/parser/external_annotations.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 67 | impl ExternalAnnotations { [INFO] [stdout] | ------------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn from_file(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `user_defined_raii_types` is never read [INFO] [stdout] --> src/ir/mod.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct IrProgram { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 90 | pub user_defined_raii_types: std::collections::HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IrProgram` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `class_name` and `template_parameters` are never read [INFO] [stdout] --> src/ir/mod.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 94 | pub struct IrFunction { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 104 | pub class_name: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 105 | // Template information [INFO] [stdout] 106 | pub template_parameters: Vec, // e.g., ["T", "U"] for template [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IrFunction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_this` is never read [INFO] [stdout] --> src/ir/mod.rs:294:9 [INFO] [stdout] | [INFO] [stdout] 291 | pub struct LambdaCaptureInfo { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 294 | pub is_this: bool, // true if capturing 'this' [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LambdaCaptureInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `returns_reference` is never used [INFO] [stdout] --> src/analysis/mod.rs:207:4 [INFO] [stdout] | [INFO] [stdout] 207 | fn returns_reference(return_type: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this_context` is never read [INFO] [stdout] --> src/analysis/mod.rs:1455:5 [INFO] [stdout] | [INFO] [stdout] 1433 | struct OwnershipTracker { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 1455 | this_context: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `borrowed_from`, `kind`, and `source` are never read [INFO] [stdout] --> src/analysis/mod.rs:1504:5 [INFO] [stdout] | [INFO] [stdout] 1502 | struct ActiveBorrow { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 1503 | borrower: String, // The reference variable that is borrowing (e.g., "ref") [INFO] [stdout] 1504 | borrowed_from: String, // The variable being borrowed from (e.g., "ptr") [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1505 | kind: BorrowKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 1508 | source: BorrowSource, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ActiveBorrow` 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: variant `FieldAccess` is never constructed [INFO] [stdout] --> src/analysis/mod.rs:1519:5 [INFO] [stdout] | [INFO] [stdout] 1513 | enum BorrowSource { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 1519 | FieldAccess { // auto& x = obj.field; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BorrowSource` 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: variants `Borrowed`, `MutBorrowed`, `ConstBorrowed`, and `Consumed` are never constructed [INFO] [stdout] --> src/analysis/mod.rs:1528:5 [INFO] [stdout] | [INFO] [stdout] 1527 | enum ThisContext { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 1528 | Borrowed, // Regular method - implicit &self [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1529 | MutBorrowed, // Mutable method - implicit &mut self [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1530 | ConstBorrowed, // Const method - const &self [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1531 | Consumed, // Rvalue ref method - implicit &&self (owned) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ThisContext` 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: methods `has_any_field_borrowed`, `can_move_from_this`, and `set_this_context` are never used [INFO] [stdout] --> src/analysis/mod.rs:1790:8 [INFO] [stdout] | [INFO] [stdout] 1534 | impl OwnershipTracker { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 1790 | fn has_any_field_borrowed(&self, object: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1817 | fn can_move_from_this(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1826 | fn set_this_context(&mut self, context: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_unsafe_propagation` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn check_unsafe_propagation( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_unsafe_function_call` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:334:4 [INFO] [stdout] | [INFO] [stdout] 334 | fn find_unsafe_function_call( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_function_safe` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:451:4 [INFO] [stdout] | [INFO] [stdout] 451 | fn is_function_safe( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_function_safe_with_external` is never used [INFO] [stdout] --> src/analysis/unsafe_propagation.rs:488:4 [INFO] [stdout] | [INFO] [stdout] 488 | fn is_function_safe_with_external( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `clear_field_borrow`, `method_qualifier`, `is_field_moved`, and `is_field_borrowed` are never used [INFO] [stdout] --> src/analysis/this_tracking.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl ThisPointerTracker { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 183 | pub fn clear_field_borrow(&mut self, field: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub fn method_qualifier(&self) -> Option<&MethodQualifier> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn is_field_moved(&self, field: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn is_field_borrowed(&self, field: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `lambda_scope` is never read [INFO] [stdout] --> src/analysis/raii_tracking.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct LambdaCapture { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 56 | pub lambda_scope: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LambdaCapture` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `variable` and `allocation_line` are never read [INFO] [stdout] --> src/analysis/raii_tracking.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 74 | pub struct HeapAllocation { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 75 | pub variable: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 76 | pub state: AllocationState, [INFO] [stdout] 77 | pub allocation_line: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HeapAllocation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `user_defined_raii_types` is never read [INFO] [stdout] --> src/analysis/raii_tracking.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 101 | pub struct RaiiTracker { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 113 | pub user_defined_raii_types: HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RaiiTracker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `has_user_defined_destructor` is never used [INFO] [stdout] --> src/analysis/raii_tracking.rs:521:8 [INFO] [stdout] | [INFO] [stdout] 521 | pub fn has_user_defined_destructor(type_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_primitive_or_builtin` is never used [INFO] [stdout] --> src/analysis/raii_tracking.rs:545:4 [INFO] [stdout] | [INFO] [stdout] 545 | fn is_primitive_or_builtin(type_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SafeFnAssignmentCheck` is never constructed [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct SafeFnAssignmentCheck { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_function_pointer_safety` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn check_function_pointer_safety( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_statement_for_function_pointer_safety` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:139:4 [INFO] [stdout] | [INFO] [stdout] 139 | fn check_statement_for_function_pointer_safety( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_raw_function_pointer_call` is never used [INFO] [stdout] --> src/analysis/function_pointer_safety.rs:302:8 [INFO] [stdout] | [INFO] [stdout] 302 | pub fn check_raw_function_pointer_call( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 16.30s [INFO] running `Command { std: "docker" "inspect" "5d9eda83ff9ca210d4ac02a06df4b73b15d146731a6daf069d35a7689be57539", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5d9eda83ff9ca210d4ac02a06df4b73b15d146731a6daf069d35a7689be57539", kill_on_drop: false }` [INFO] [stdout] 5d9eda83ff9ca210d4ac02a06df4b73b15d146731a6daf069d35a7689be57539 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 8759d5f5cf3ce8a742be7f2ee1687055c395f239ba9bcd52636b0b340a9743b3 [INFO] running `Command { std: "docker" "start" "-a" "8759d5f5cf3ce8a742be7f2ee1687055c395f239ba9bcd52636b0b340a9743b3", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/parser/ast_visitor.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/parser/ast_visitor.rs:641:9 [INFO] [stderr] | [INFO] [stderr] 641 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/parser/header_cache.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/parser/safety_annotations.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/parser/mod.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/ir/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/analysis/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/analysis/lifetime_checker.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/analysis/lifetime_inference.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashSet` [INFO] [stderr] --> src/analysis/liveness.rs:13:33 [INFO] [stderr] | [INFO] [stderr] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/analysis/liveness.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/analysis/mutable_checker.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/analysis/mutable_checker.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/analysis/lambda_capture_safety.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BorrowKind` and `OwnershipState` [INFO] [stderr] --> src/analysis/raii_tracking.rs:12:42 [INFO] [stderr] | [INFO] [stderr] 12 | use crate::ir::{IrFunction, IrStatement, BorrowKind, OwnershipState}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/analysis/raii_tracking.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::debug_println` [INFO] [stderr] --> src/analysis/inheritance_safety.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use crate::debug_println; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser/external_annotations.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | let mut comment_content = String::new(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `comment_content` [INFO] [stderr] --> src/parser/external_annotations.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | let mut comment_content = String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comment_content` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `return_lifetime` is never read [INFO] [stderr] --> src/parser/external_annotations.rs:373:35 [INFO] [stderr] | [INFO] [stderr] 373 | let mut return_lifetime = None; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `left` [INFO] [stderr] --> src/ir/mod.rs:651:32 [INFO] [stderr] | [INFO] [stderr] 651 | Expression::BinaryOp { left, right, op } => { [INFO] [stderr] | ^^^^ help: try ignoring the field: `left: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `right` [INFO] [stderr] --> src/ir/mod.rs:651:38 [INFO] [stderr] | [INFO] [stderr] 651 | Expression::BinaryOp { left, right, op } => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `right: _` [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ir/mod.rs:1272:29 [INFO] [stderr] | [INFO] [stderr] 1213 | ... crate::parser::Expression::Move { inner, .. } => { [INFO] [stderr] | --------------------------------------------- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 1272 | ... crate::parser::Expression::Move { inner, .. } => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `is_move` [INFO] [stderr] --> src/ir/mod.rs:1352:61 [INFO] [stderr] | [INFO] [stderr] 1352 | ... LambdaCaptureKind::Init { name, is_move } => LambdaCaptureInfo { [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `is_move: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `lit` [INFO] [stderr] --> src/ir/mod.rs:813:70 [INFO] [stderr] | [INFO] [stderr] 813 | ... crate::parser::Expression::StringLiteral(lit) => { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `lit` [INFO] [stderr] --> src/ir/mod.rs:1183:70 [INFO] [stderr] | [INFO] [stderr] 1183 | ... crate::parser::Expression::StringLiteral(lit) => { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `lit` [INFO] [stderr] --> src/ir/mod.rs:1576:62 [INFO] [stderr] | [INFO] [stderr] 1576 | crate::parser::Expression::StringLiteral(lit) => { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_lit` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `inner` [INFO] [stderr] --> src/ir/mod.rs:1752:54 [INFO] [stderr] | [INFO] [stderr] 1752 | crate::parser::Expression::AddressOf(inner) => { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `var_info` [INFO] [stderr] --> src/analysis/lifetime_checker.rs:246:20 [INFO] [stderr] | [INFO] [stderr] 246 | for (var_name, var_info) in &function.variables { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_info` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `idx` [INFO] [stderr] --> src/analysis/lifetime_checker.rs:269:14 [INFO] [stderr] | [INFO] [stderr] 269 | for (idx, statement) in block.statements.iter().enumerate() { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `to` [INFO] [stderr] --> src/analysis/lifetime_inference.rs:245:43 [INFO] [stderr] | [INFO] [stderr] 245 | IrStatement::Move { from, to } => { [INFO] [stderr] | ^^ help: try ignoring the field: `to: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `inner` [INFO] [stderr] --> src/analysis/pointer_safety.rs:456:26 [INFO] [stderr] | [INFO] [stderr] 456 | Expression::Cast(inner) => { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `function` [INFO] [stderr] --> src/analysis/raii_tracking.rs:403:5 [INFO] [stderr] | [INFO] [stderr] 403 | function: &IrFunction, [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `args` [INFO] [stderr] --> src/analysis/function_pointer_safety.rs:178:41 [INFO] [stderr] | [INFO] [stderr] 178 | Statement::FunctionCall { name, args, location, .. } => { [INFO] [stderr] | ^^^^ help: try ignoring the field: `args: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `then_borrowers` [INFO] [stderr] --> src/analysis/mod.rs:2022:21 [INFO] [stderr] | [INFO] [stderr] 2022 | let then_borrowers: HashSet = then_borrows.iter().map(|b| b.borrower.clone()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_then_borrowers` [INFO] [stderr] [INFO] [stderr] warning: function `extract_qualified_function_name` is never used [INFO] [stderr] --> src/parser/safety_annotations.rs:903:4 [INFO] [stderr] | [INFO] [stderr] 903 | fn extract_qualified_function_name(before_paren: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `returns_reference` is never used [INFO] [stderr] --> src/analysis/mod.rs:207:4 [INFO] [stderr] | [INFO] [stderr] 207 | fn returns_reference(return_type: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `this_context` is never read [INFO] [stderr] --> src/analysis/mod.rs:1455:5 [INFO] [stderr] | [INFO] [stderr] 1433 | struct OwnershipTracker { [INFO] [stderr] | ---------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 1455 | this_context: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `borrowed_from`, `kind`, and `source` are never read [INFO] [stderr] --> src/analysis/mod.rs:1504:5 [INFO] [stderr] | [INFO] [stderr] 1502 | struct ActiveBorrow { [INFO] [stderr] | ------------ fields in this struct [INFO] [stderr] 1503 | borrower: String, // The reference variable that is borrowing (e.g., "ref") [INFO] [stderr] 1504 | borrowed_from: String, // The variable being borrowed from (e.g., "ptr") [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 1505 | kind: BorrowKind, [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 1508 | source: BorrowSource, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ActiveBorrow` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `FieldAccess` is never constructed [INFO] [stderr] --> src/analysis/mod.rs:1519:5 [INFO] [stderr] | [INFO] [stderr] 1513 | enum BorrowSource { [INFO] [stderr] | ------------ variant in this enum [INFO] [stderr] ... [INFO] [stderr] 1519 | FieldAccess { // auto& x = obj.field; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `BorrowSource` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `Borrowed`, `MutBorrowed`, `ConstBorrowed`, and `Consumed` are never constructed [INFO] [stderr] --> src/analysis/mod.rs:1528:5 [INFO] [stderr] | [INFO] [stderr] 1527 | enum ThisContext { [INFO] [stderr] | ----------- variants in this enum [INFO] [stderr] 1528 | Borrowed, // Regular method - implicit &self [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 1529 | MutBorrowed, // Mutable method - implicit &mut self [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 1530 | ConstBorrowed, // Const method - const &self [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 1531 | Consumed, // Rvalue ref method - implicit &&self (owned) [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ThisContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `has_any_field_borrowed`, `can_move_from_this`, and `set_this_context` are never used [INFO] [stderr] --> src/analysis/mod.rs:1535:8 [INFO] [stderr] | [INFO] [stderr] 1534 | impl OwnershipTracker { [INFO] [stderr] | --------------------- associated items in this implementation [INFO] [stderr] 1535 | fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1790 | fn has_any_field_borrowed(&self, object: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1817 | fn can_move_from_this(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1826 | fn set_this_context(&mut self, context: Option) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `check_statement_for_unsafe_calls` is never used [INFO] [stderr] --> src/analysis/unsafe_propagation.rs:109:4 [INFO] [stderr] | [INFO] [stderr] 109 | fn check_statement_for_unsafe_calls( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `find_unsafe_function_call` is never used [INFO] [stderr] --> src/analysis/unsafe_propagation.rs:334:4 [INFO] [stderr] | [INFO] [stderr] 334 | fn find_unsafe_function_call( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_function_safe` is never used [INFO] [stderr] --> src/analysis/unsafe_propagation.rs:451:4 [INFO] [stderr] | [INFO] [stderr] 451 | fn is_function_safe( [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_function_safe_with_external` is never used [INFO] [stderr] --> src/analysis/unsafe_propagation.rs:488:4 [INFO] [stderr] | [INFO] [stderr] 488 | fn is_function_safe_with_external( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `lifetimes` [INFO] [stderr] --> src/analysis/lifetime_inference.rs:375:13 [INFO] [stderr] | [INFO] [stderr] 375 | let lifetimes = inferencer.infer_function_lifetimes(&function); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lifetimes` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/analysis/liveness.rs:291:13 [INFO] [stderr] | [INFO] [stderr] 291 | let mut analyzer = LivenessAnalyzer::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `interface` [INFO] [stderr] --> src/analysis/inheritance_safety.rs:706:13 [INFO] [stderr] | [INFO] [stderr] 706 | let interface = make_interface("IDrawable"); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interface` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `base` [INFO] [stderr] --> src/analysis/inheritance_safety.rs:718:13 [INFO] [stderr] | [INFO] [stderr] 718 | let base = make_class("Base", Vec::new()); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_base` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/analysis/mod.rs:2889:13 [INFO] [stderr] | [INFO] [stderr] 2889 | let mut program = IrProgram { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/analysis/mod.rs:2929:13 [INFO] [stderr] | [INFO] [stderr] 2929 | let mut program = IrProgram { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/analysis/mod.rs:2958:13 [INFO] [stderr] | [INFO] [stderr] 2958 | let mut program = IrProgram { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/analysis/mod.rs:3003:13 [INFO] [stderr] | [INFO] [stderr] 3003 | let mut program = IrProgram { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/analysis/mod.rs:3034:13 [INFO] [stderr] | [INFO] [stderr] 3034 | let mut program = IrProgram { [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: methods `has_any_field_borrowed`, `can_move_from_this`, and `set_this_context` are never used [INFO] [stderr] --> src/analysis/mod.rs:1790:8 [INFO] [stderr] | [INFO] [stderr] 1534 | impl OwnershipTracker { [INFO] [stderr] | --------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 1790 | fn has_any_field_borrowed(&self, object: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1817 | fn can_move_from_this(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1826 | fn set_this_context(&mut self, context: Option) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `rusty-cpp` (lib) generated 46 warnings (run `cargo fix --lib -p rusty-cpp` to apply 33 suggestions) [INFO] [stderr] warning: `rusty-cpp` (lib test) generated 54 warnings (44 duplicates) (run `cargo fix --lib -p rusty-cpp --tests` to apply 9 suggestions) [INFO] [stderr] warning: unused import: `template_context::TemplateContext` [INFO] [stderr] --> src/parser/mod.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 14 | pub use template_context::TemplateContext; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `template_parameters` and `is_template` are never read [INFO] [stderr] --> src/parser/ast_visitor.rs:306:9 [INFO] [stderr] | [INFO] [stderr] 304 | pub struct Class { [INFO] [stderr] | ----- fields in this struct [INFO] [stderr] 305 | pub name: String, [INFO] [stderr] 306 | pub template_parameters: Vec, // e.g., ["T", "Args"] for template [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 307 | pub is_template: bool, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Class` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: method `get_safety_annotation` is never used [INFO] [stderr] --> src/parser/header_cache.rs:58:12 [INFO] [stderr] | [INFO] [stderr] 36 | impl HeaderCache { [INFO] [stderr] | ---------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 58 | pub fn get_safety_annotation(&self, func_name: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `get_class_safety`, `get_function_safety_for_file`, and `should_check_function_for_file` are never used [INFO] [stderr] --> src/parser/safety_annotations.rs:213:12 [INFO] [stderr] | [INFO] [stderr] 87 | impl SafetyContext { [INFO] [stderr] | ------------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 213 | pub fn get_class_safety(&self, class_name: &str) -> SafetyMode { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 316 | pub fn get_function_safety_for_file(&self, func_name: &str, func_file: &str) -> SafetyMode { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 368 | pub fn should_check_function_for_file(&self, func_name: &str, func_file: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `extract_qualified_function_name` is never used [INFO] [stderr] --> src/parser/safety_annotations.rs:903:4 [INFO] [stderr] | [INFO] [stderr] 903 | fn extract_qualified_function_name(before_paren: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `method_name`, `is_const`, `param_lifetimes`, and `return_lifetime` are never read [INFO] [stderr] --> src/parser/type_annotations.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 27 | pub struct MethodLifetime { [INFO] [stderr] | -------------- fields in this struct [INFO] [stderr] 28 | pub method_name: String, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 29 | pub is_const: bool, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 30 | pub param_lifetimes: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 31 | pub return_lifetime: TypeLifetime, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `MethodLifetime` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `add_type_spec` is never used [INFO] [stderr] --> src/parser/type_annotations.rs:62:12 [INFO] [stderr] | [INFO] [stderr] 47 | impl TypeLifetimeRegistry { [INFO] [stderr] | ------------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 62 | pub fn add_type_spec(&mut self, spec: TypeLifetimeSpec) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `name`, `lifetime_spec`, `param_lifetimes`, `return_lifetime`, and `lifetime_constraints` are never read [INFO] [stderr] --> src/parser/external_annotations.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct ExternalFunctionAnnotation { [INFO] [stderr] | -------------------------- fields in this struct [INFO] [stderr] 29 | pub name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 30 | pub safety: ExternalSafety, [INFO] [stderr] 31 | pub lifetime_spec: Option, // Raw lifetime specification for future use [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 32 | pub param_lifetimes: Vec, // Parameter lifetime annotations [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 33 | pub return_lifetime: Option, // Return type lifetime [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 34 | pub lifetime_constraints: Vec, // Where clauses [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ExternalFunctionAnnotation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `from_file` is never used [INFO] [stderr] --> src/parser/external_annotations.rs:84:12 [INFO] [stderr] | [INFO] [stderr] 67 | impl ExternalAnnotations { [INFO] [stderr] | ------------------------ associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 84 | pub fn from_file(path: &Path) -> Result { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `user_defined_raii_types` is never read [INFO] [stderr] --> src/ir/mod.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 85 | pub struct IrProgram { [INFO] [stderr] | --------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 90 | pub user_defined_raii_types: std::collections::HashSet, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `IrProgram` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `class_name` and `template_parameters` are never read [INFO] [stderr] --> src/ir/mod.rs:104:9 [INFO] [stderr] | [INFO] [stderr] 94 | pub struct IrFunction { [INFO] [stderr] | ---------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 104 | pub class_name: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 105 | // Template information [INFO] [stderr] 106 | pub template_parameters: Vec, // e.g., ["T", "U"] for template [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `IrFunction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `is_this` is never read [INFO] [stderr] --> src/ir/mod.rs:294:9 [INFO] [stderr] | [INFO] [stderr] 291 | pub struct LambdaCaptureInfo { [INFO] [stderr] | ----------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 294 | pub is_this: bool, // true if capturing 'this' [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `LambdaCaptureInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `check_unsafe_propagation` is never used [INFO] [stderr] --> src/analysis/unsafe_propagation.rs:12:8 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn check_unsafe_propagation( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `clear_field_borrow`, `method_qualifier`, `is_field_moved`, and `is_field_borrowed` are never used [INFO] [stderr] --> src/analysis/this_tracking.rs:183:12 [INFO] [stderr] | [INFO] [stderr] 23 | impl ThisPointerTracker { [INFO] [stderr] | ----------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 183 | pub fn clear_field_borrow(&mut self, field: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 188 | pub fn method_qualifier(&self) -> Option<&MethodQualifier> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 193 | pub fn is_field_moved(&self, field: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 198 | pub fn is_field_borrowed(&self, field: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `lambda_scope` is never read [INFO] [stderr] --> src/analysis/raii_tracking.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 50 | pub struct LambdaCapture { [INFO] [stderr] | ------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 56 | pub lambda_scope: usize, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `LambdaCapture` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `variable` and `allocation_line` are never read [INFO] [stderr] --> src/analysis/raii_tracking.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 74 | pub struct HeapAllocation { [INFO] [stderr] | -------------- fields in this struct [INFO] [stderr] 75 | pub variable: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 76 | pub state: AllocationState, [INFO] [stderr] 77 | pub allocation_line: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `HeapAllocation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `user_defined_raii_types` is never read [INFO] [stderr] --> src/analysis/raii_tracking.rs:113:9 [INFO] [stderr] | [INFO] [stderr] 101 | pub struct RaiiTracker { [INFO] [stderr] | ----------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 113 | pub user_defined_raii_types: HashSet, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RaiiTracker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `has_user_defined_destructor` is never used [INFO] [stderr] --> src/analysis/raii_tracking.rs:521:8 [INFO] [stderr] | [INFO] [stderr] 521 | pub fn has_user_defined_destructor(type_name: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_primitive_or_builtin` is never used [INFO] [stderr] --> src/analysis/raii_tracking.rs:545:4 [INFO] [stderr] | [INFO] [stderr] 545 | fn is_primitive_or_builtin(type_name: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `SafeFnAssignmentCheck` is never constructed [INFO] [stderr] --> src/analysis/function_pointer_safety.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 19 | pub struct SafeFnAssignmentCheck { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `check_function_pointer_safety` is never used [INFO] [stderr] --> src/analysis/function_pointer_safety.rs:96:8 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn check_function_pointer_safety( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `check_statement_for_function_pointer_safety` is never used [INFO] [stderr] --> src/analysis/function_pointer_safety.rs:139:4 [INFO] [stderr] | [INFO] [stderr] 139 | fn check_statement_for_function_pointer_safety( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `check_raw_function_pointer_call` is never used [INFO] [stderr] --> src/analysis/function_pointer_safety.rs:302:8 [INFO] [stderr] | [INFO] [stderr] 302 | pub fn check_raw_function_pointer_call( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `rusty-cpp` (bin "rusty-cpp-checker" test) generated 76 warnings (53 duplicates) (run `cargo fix --bin "rusty-cpp-checker" -p rusty-cpp --tests` to apply 1 suggestion) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rusty_cpp-3edabda19a56654b) [INFO] [stdout] [INFO] [stdout] running 149 tests [INFO] [stdout] test analysis::function_pointer_safety::tests::test_check_safe_fn_assignment_with_unknown_function ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_extract_function_from_address_of ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_check_safe_fn_assignment_with_safe_function ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_check_safe_fn_assignment_with_unsafe_function ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_member_fn_wrapper_type ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_raw_function_pointer_type ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_safe_fn_call ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_raw_member_function_pointer_type ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_safe_fn_type ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_unsafe_fn_call_unsafe_method ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_unsafe_fn_type ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_safe_mem_fn_call ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_inheritance_with_namespace ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_with_data_member ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_with_non_defaulted_virtual_destructor ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_with_non_virtual_destructor ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_without_any_destructor ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_is_interface_base_exact_match ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_is_interface_base_wrong_namespace_no_match ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_resolve_qualified_name_already_qualified ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_resolve_qualified_name_from_namespace ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_resolve_qualified_name_no_namespace ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_from_non_interface ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_from_interface ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_with_namespaced_interface ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_wrong_namespace_fails ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_valid_interface ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_copy_capture_in_safe_is_ok ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_default_copy_capture_in_safe_is_ok ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_default_ref_capture_extraction ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_init_capture_in_safe_is_ok ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_lambda_context_escape_no_ref_capture ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_lambda_context_escape_tracking ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_lambda_context_no_escape_no_error ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_ref_capture_extraction ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_this_capture_in_safe_is_error ... ok [INFO] [stdout] test analysis::lifetime_checker::tests::test_check_return_lifetime_owned_is_safe ... ok [INFO] [stdout] test analysis::lifetime_checker::tests::test_check_return_lifetime_pointer_is_safe ... ok [INFO] [stdout] test analysis::lifetime_checker::tests::test_lifetime_scope ... ok [INFO] [stdout] test analysis::lifetime_checker::tests::test_check_return_lifetime_reference_is_unsafe ... ok [INFO] [stdout] test analysis::lifetime_checker::tests::test_outlives_checking ... ok [INFO] [stdout] test analysis::lifetime_inference::tests::test_lifetime_inference ... ok [INFO] [stdout] test analysis::lifetime_inference::tests::test_lifetime_overlap ... ok [INFO] [stdout] test analysis::liveness::tests::test_conservative_loop ... ok [INFO] [stdout] test analysis::liveness::tests::test_simple_read_sequence ... ok [INFO] [stdout] test analysis::liveness::tests::test_escaped_variable ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_address_of_in_assignment ... ok [INFO] [stdout] test analysis::liveness::tests::test_function_argument ... ok [INFO] [stdout] test analysis::liveness::tests::test_liveness_simple_sequence ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_address_of_variable_is_unsafe ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_char_ptr_detection ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_detect_address_of ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_char16_char32_ptr_detection ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_detect_dereference ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_member_function_pointer_is_safe ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_nested_pointer_operations ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_pointer_declaration_allowed ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_pointer_in_assignment ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_pointer_in_binary_op ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_pointer_in_function_call ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_qualified_member_function_pointer_is_safe ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_safe_expression ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_this_as_variable_is_unsafe ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_this_dereference_is_safe ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_this_member_access_is_safe ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_this_pointer_in_function_call ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_wchar_ptr_detection ... ok [INFO] [stdout] test analysis::raii_tracking::tests::test_container_borrow_detection ... ok [INFO] [stdout] test analysis::raii_tracking::tests::test_double_free_detection ... ok [INFO] [stdout] test analysis::raii_tracking::tests::test_is_container_type ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_string_literal_expression_is_safe ... ok [INFO] [stdout] test analysis::scope_lifetime::tests::test_outlives_checking ... ok [INFO] [stdout] test analysis::raii_tracking::tests::test_is_iterator_type ... ok [INFO] [stdout] test analysis::scope_lifetime::tests::test_scope_tracking ... ok [INFO] [stdout] test analysis::scope_tests::test_multiple_sequential_scopes ... ok [INFO] [stdout] test analysis::scope_tests::test_nested_scopes ... ok [INFO] [stdout] test analysis::scope_tests::test_scope_cleanup_simple ... ok [INFO] [stdout] test analysis::scope_tests::test_scope_doesnt_affect_moves ... ok [INFO] [stdout] test analysis::tests::test_borrow_tracking ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_non_char_ptr_not_detected ... ok [INFO] [stdout] test analysis::scope_tests::test_error_still_caught_in_same_scope ... ok [INFO] [stdout] test analysis::raii_tracking::tests::test_use_after_free ... ok [INFO] [stdout] test analysis::raii_tracking::tests::test_iterator_outlives_container ... ok [INFO] [stdout] test analysis::tests::test_cannot_move_from_reference ... ok [INFO] [stdout] test analysis::tests::test_cannot_borrow_moved_value ... ok [INFO] [stdout] test analysis::tests::test_complex_borrow_chain ... ok [INFO] [stdout] test analysis::tests::test_const_reference_cannot_modify ... ok [INFO] [stdout] test analysis::tests::test_empty_program_passes ... ok [INFO] [stdout] test analysis::tests::test_multiple_const_references_allowed ... ok [INFO] [stdout] test analysis::tests::test_mutable_borrow_tracking ... ok [INFO] [stdout] test analysis::tests::test_multiple_functions_with_references ... ok [INFO] [stdout] test analysis::tests::test_multiple_immutable_borrows_allowed ... ok [INFO] [stdout] test analysis::tests::test_mutable_borrow_while_immutable_fails ... ok [INFO] [stdout] test analysis::unsafe_propagation::tests::test_detect_unsafe_function_call ... ok [INFO] [stdout] test analysis::tests::test_use_after_move_detection ... ok [INFO] [stdout] test analysis::unsafe_propagation::tests::test_stl_functions_require_unsafe ... ok [INFO] [stdout] test diagnostics::tests::test_diagnostic_creation ... ok [INFO] [stdout] test analysis::unsafe_propagation::tests::test_unsafe_call_in_expression ... ok [INFO] [stdout] test analysis::tests::test_mutable_reference_can_modify ... ok [INFO] [stdout] test analysis::tests::test_ownership_tracker_initialization ... ok [INFO] [stdout] test diagnostics::tests::test_format_double_borrow ... ok [INFO] [stdout] test diagnostics::tests::test_format_lifetime_error ... ok [INFO] [stdout] test analysis::tests::test_ownership_state_transitions ... ok [INFO] [stdout] test ir::tests::test_lifetime_creation ... ok [INFO] [stdout] test ir::tests::test_variable_type_classification ... ok [INFO] [stdout] test ir::tests::test_ownership_state_initialization ... ok [INFO] [stdout] test diagnostics::tests::test_format_use_after_move ... ok [INFO] [stdout] test ir::tests::test_build_ir_with_function ... ok [INFO] [stdout] test parser::external_annotations::tests::test_default_stl_unsafe_types ... ok [INFO] [stdout] test diagnostics::tests::test_diagnostic_display ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_unsafe_mem_fn_call_unsafe ... ok [INFO] [stdout] test analysis::unsafe_propagation::tests::test_known_safe_function ... ok [INFO] [stdout] test ir::tests::test_build_empty_ir ... ok [INFO] [stdout] test parser::external_annotations::tests::test_wildcard_patterns ... ok [INFO] [stdout] test parser::annotations::tests::test_parse_owned ... ok [INFO] [stdout] test parser::external_annotations::tests::test_pattern_matching ... ok [INFO] [stdout] test parser::external_annotations::tests::test_qt_pattern ... ok [INFO] [stdout] test parser::annotations::tests::test_parse_mut_ref ... ok [INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_constructor ... ok [INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_no_template ... ok [INFO] [stdout] test parser::external_annotations::tests::test_split_entries_multiline ... ok [INFO] [stdout] test parser::external_annotations::tests::test_split_entries_comma_separated ... ok [INFO] [stdout] test parser::external_annotations::tests::test_qualified_name_matching ... ok [INFO] [stdout] test parser::external_annotations::tests::test_split_entries_preserves_brackets ... ok [INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_qualified ... ok [INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_simple ... ok [INFO] [stdout] test parser::template_context::tests::test_empty_context ... ok [INFO] [stdout] test parser::template_context::tests::test_exit_template ... ok [INFO] [stdout] test parser::safety_annotations::tests::test_namespace_safe_annotation ... ok [INFO] [stdout] test parser::template_context::tests::test_get_type_parameters ... ok [INFO] [stdout] test parser::annotations::tests::test_parse_simple_lifetime ... ok [INFO] [stdout] test parser::template_context::tests::test_multiple_type_parameters ... ok [INFO] [stdout] test parser::annotations::tests::test_parse_with_params ... ok [INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_nested ... ok [INFO] [stdout] test parser::template_context::tests::test_single_type_parameter ... ok [INFO] [stdout] test parser::safety_annotations::tests::test_first_code_element_annotation ... ok [INFO] [stdout] test parser::safety_annotations::tests::test_function_safe_annotation ... ok [INFO] [stdout] test parser::header_cache::tests::test_extract_includes ... ok [INFO] [stdout] test parser::tests::test_parse_simple_function ... ok [INFO] [stdout] test parser::tests::test_parse_global_variable ... ok [INFO] [stdout] test parser::tests::test_parse_invalid_file ... ok [INFO] [stdout] test parser::type_annotations::tests::test_registry ... ok [INFO] [stdout] test parser::external_annotations::tests::test_unsafe_type_annotation ... ok [INFO] [stdout] test parser::external_annotations::tests::test_profiles ... ok [INFO] [stdout] test parser::external_annotations::tests::test_parse_safety_block ... ok [INFO] [stdout] test parser::external_annotations::tests::test_safe_vs_unsafe_annotation ... ok [INFO] [stdout] test parser::external_annotations::tests::test_qualified_function_name_parsing ... ok [INFO] [stdout] test parser::tests::test_parse_function_with_parameters ... ok [INFO] [stdout] test parser::type_annotations::tests::test_parse_type_lifetime ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 149 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rusty_cpp_checker-5ce359f5c48099a0) [INFO] [stdout] [INFO] [stdout] running 149 tests [INFO] [stdout] test analysis::function_pointer_safety::tests::test_check_safe_fn_assignment_with_safe_function ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_member_fn_wrapper_type ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_safe_fn_call ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_check_safe_fn_assignment_with_unsafe_function ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_raw_function_pointer_type ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_check_safe_fn_assignment_with_unknown_function ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_unsafe_fn_call_unsafe_method ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_raw_member_function_pointer_type ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_safe_fn_type ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_safe_mem_fn_call ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_unsafe_fn_type ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_unsafe_mem_fn_call_unsafe ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_with_data_member ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_with_non_defaulted_virtual_destructor ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_inheritance_with_namespace ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_with_non_virtual_destructor ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_without_any_destructor ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_is_interface_base_exact_match ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_is_interface_base_wrong_namespace_no_match ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_default_copy_capture_in_safe_is_ok ... ok [INFO] [stdout] test analysis::function_pointer_safety::tests::test_extract_function_from_address_of ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_resolve_qualified_name_from_namespace ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_resolve_qualified_name_no_namespace ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_from_non_interface ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_init_capture_in_safe_is_ok ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_from_interface ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_lambda_context_no_escape_no_error ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_lambda_context_escape_tracking ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_ref_capture_extraction ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_wrong_namespace_fails ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_this_capture_in_safe_is_error ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_copy_capture_in_safe_is_ok ... ok [INFO] [stdout] test analysis::lifetime_checker::tests::test_check_return_lifetime_owned_is_safe ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_default_ref_capture_extraction ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_valid_interface ... ok [INFO] [stdout] test analysis::lifetime_checker::tests::test_check_return_lifetime_pointer_is_safe ... ok [INFO] [stdout] test analysis::lifetime_checker::tests::test_check_return_lifetime_reference_is_unsafe ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_with_namespaced_interface ... ok [INFO] [stdout] test analysis::lifetime_checker::tests::test_lifetime_scope ... ok [INFO] [stdout] test analysis::lifetime_checker::tests::test_outlives_checking ... ok [INFO] [stdout] test analysis::inheritance_safety::tests::test_resolve_qualified_name_already_qualified ... ok [INFO] [stdout] test analysis::lifetime_inference::tests::test_lifetime_inference ... ok [INFO] [stdout] test analysis::liveness::tests::test_function_argument ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_address_of_in_assignment ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_char16_char32_ptr_detection ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_detect_address_of ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_detect_dereference ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_pointer_declaration_allowed ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_pointer_in_assignment ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_pointer_in_function_call ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_qualified_member_function_pointer_is_safe ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_this_as_variable_is_unsafe ... ok [INFO] [stdout] test analysis::liveness::tests::test_conservative_loop ... ok [INFO] [stdout] test analysis::liveness::tests::test_escaped_variable ... ok [INFO] [stdout] test analysis::liveness::tests::test_liveness_simple_sequence ... ok [INFO] [stdout] test analysis::liveness::tests::test_simple_read_sequence ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_address_of_variable_is_unsafe ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_char_ptr_detection ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_member_function_pointer_is_safe ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_nested_pointer_operations ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_non_char_ptr_not_detected ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_pointer_in_binary_op ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_safe_expression ... ok [INFO] [stdout] test analysis::lambda_capture_safety::tests::test_lambda_context_escape_no_ref_capture ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_string_literal_expression_is_safe ... ok [INFO] [stdout] test analysis::lifetime_inference::tests::test_lifetime_overlap ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_this_dereference_is_safe ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_this_member_access_is_safe ... ok [INFO] [stdout] test analysis::raii_tracking::tests::test_container_borrow_detection ... ok [INFO] [stdout] test analysis::raii_tracking::tests::test_is_iterator_type ... ok [INFO] [stdout] test analysis::raii_tracking::tests::test_use_after_free ... ok [INFO] [stdout] test analysis::scope_lifetime::tests::test_outlives_checking ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_this_pointer_in_function_call ... ok [INFO] [stdout] test analysis::scope_tests::test_multiple_sequential_scopes ... ok [INFO] [stdout] test analysis::pointer_safety::tests::test_wchar_ptr_detection ... ok [INFO] [stdout] test analysis::raii_tracking::tests::test_double_free_detection ... ok [INFO] [stdout] test analysis::scope_tests::test_scope_doesnt_affect_moves ... ok [INFO] [stdout] test analysis::raii_tracking::tests::test_is_container_type ... ok [INFO] [stdout] test analysis::raii_tracking::tests::test_iterator_outlives_container ... ok [INFO] [stdout] test analysis::tests::test_borrow_tracking ... ok [INFO] [stdout] test analysis::scope_lifetime::tests::test_scope_tracking ... ok [INFO] [stdout] test analysis::scope_tests::test_error_still_caught_in_same_scope ... ok [INFO] [stdout] test analysis::scope_tests::test_nested_scopes ... ok [INFO] [stdout] test analysis::scope_tests::test_scope_cleanup_simple ... ok [INFO] [stdout] test analysis::tests::test_cannot_borrow_moved_value ... ok [INFO] [stdout] test analysis::tests::test_cannot_move_from_reference ... ok [INFO] [stdout] test analysis::tests::test_mutable_borrow_tracking ... ok [INFO] [stdout] test analysis::tests::test_multiple_immutable_borrows_allowed ... ok [INFO] [stdout] test analysis::tests::test_multiple_functions_with_references ... ok [INFO] [stdout] test analysis::unsafe_propagation::tests::test_detect_unsafe_function_call ... ok [INFO] [stdout] test analysis::unsafe_propagation::tests::test_known_safe_function ... ok [INFO] [stdout] test analysis::unsafe_propagation::tests::test_stl_functions_require_unsafe ... ok [INFO] [stdout] test analysis::unsafe_propagation::tests::test_unsafe_call_in_expression ... ok [INFO] [stdout] test diagnostics::tests::test_diagnostic_creation ... ok [INFO] [stdout] test diagnostics::tests::test_diagnostic_display ... ok [INFO] [stdout] test diagnostics::tests::test_format_double_borrow ... ok [INFO] [stdout] test diagnostics::tests::test_format_use_after_move ... ok [INFO] [stdout] test analysis::tests::test_empty_program_passes ... ok [INFO] [stdout] test ir::tests::test_lifetime_creation ... ok [INFO] [stdout] test ir::tests::test_build_empty_ir ... ok [INFO] [stdout] test ir::tests::test_build_ir_with_function ... ok [INFO] [stdout] test analysis::tests::test_multiple_const_references_allowed ... ok [INFO] [stdout] test analysis::tests::test_mutable_borrow_while_immutable_fails ... ok [INFO] [stdout] test analysis::tests::test_complex_borrow_chain ... ok [INFO] [stdout] test diagnostics::tests::test_format_lifetime_error ... ok [INFO] [stdout] test analysis::tests::test_mutable_reference_can_modify ... ok [INFO] [stdout] test analysis::tests::test_ownership_state_transitions ... ok [INFO] [stdout] test analysis::tests::test_ownership_tracker_initialization ... ok [INFO] [stdout] test analysis::tests::test_use_after_move_detection ... ok [INFO] [stdout] test analysis::tests::test_const_reference_cannot_modify ... ok [INFO] [stdout] test ir::tests::test_ownership_state_initialization ... ok [INFO] [stdout] test ir::tests::test_variable_type_classification ... ok [INFO] [stdout] test parser::external_annotations::tests::test_qt_pattern ... ok [INFO] [stdout] test parser::external_annotations::tests::test_split_entries_comma_separated ... ok [INFO] [stdout] test parser::annotations::tests::test_parse_owned ... ok [INFO] [stdout] test parser::annotations::tests::test_parse_mut_ref ... ok [INFO] [stdout] test parser::external_annotations::tests::test_default_stl_unsafe_types ... ok [INFO] [stdout] test parser::annotations::tests::test_parse_simple_lifetime ... ok [INFO] [stdout] test parser::external_annotations::tests::test_parse_safety_block ... ok [INFO] [stdout] test parser::external_annotations::tests::test_split_entries_multiline ... ok [INFO] [stdout] test parser::external_annotations::tests::test_split_entries_preserves_brackets ... ok [INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_qualified ... ok [INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_simple ... ok [INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_constructor ... ok [INFO] [stdout] test parser::safety_annotations::tests::test_first_code_element_annotation ... ok [INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_nested ... ok [INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_no_template ... ok [INFO] [stdout] test parser::template_context::tests::test_empty_context ... ok [INFO] [stdout] test parser::template_context::tests::test_multiple_type_parameters ... ok [INFO] [stdout] test parser::template_context::tests::test_exit_template ... ok [INFO] [stdout] test parser::safety_annotations::tests::test_function_safe_annotation ... ok [INFO] [stdout] test parser::template_context::tests::test_get_type_parameters ... ok [INFO] [stdout] test parser::template_context::tests::test_single_type_parameter ... ok [INFO] [stdout] test parser::safety_annotations::tests::test_namespace_safe_annotation ... ok [INFO] [stdout] test parser::tests::test_parse_function_with_parameters ... ok [INFO] [stdout] test parser::type_annotations::tests::test_registry ... ok [INFO] [stdout] test parser::tests::test_parse_invalid_file ... ok [INFO] [stdout] test parser::tests::test_parse_simple_function ... ok [INFO] [stdout] test parser::header_cache::tests::test_extract_includes ... ok [INFO] [stdout] test parser::external_annotations::tests::test_pattern_matching ... ok [INFO] [stdout] test parser::external_annotations::tests::test_wildcard_patterns ... ok [INFO] [stdout] test parser::annotations::tests::test_parse_with_params ... ok [INFO] [stdout] test parser::tests::test_parse_global_variable ... ok [INFO] [stdout] test parser::external_annotations::tests::test_qualified_name_matching ... ok [INFO] [stdout] test parser::external_annotations::tests::test_safe_vs_unsafe_annotation ... ok [INFO] [stdout] test parser::external_annotations::tests::test_qualified_function_name_parsing ... ok [INFO] [stdout] test parser::external_annotations::tests::test_unsafe_type_annotation ... ok [INFO] [stdout] test parser::external_annotations::tests::test_profiles ... ok [INFO] [stdout] test parser::type_annotations::tests::test_parse_type_lifetime ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 149 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] [stderr] Doc-tests rusty_cpp [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/parser/template_context.rs - parser::template_context::TemplateContext::enter_template (line 29) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "8759d5f5cf3ce8a742be7f2ee1687055c395f239ba9bcd52636b0b340a9743b3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8759d5f5cf3ce8a742be7f2ee1687055c395f239ba9bcd52636b0b340a9743b3", kill_on_drop: false }` [INFO] [stdout] 8759d5f5cf3ce8a742be7f2ee1687055c395f239ba9bcd52636b0b340a9743b3