[INFO] fetching crate rusty-cpp 0.1.1...
[INFO] testing rusty-cpp-0.1.1 against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739-1
[INFO] extracting crate rusty-cpp 0.1.1 into /workspace/builds/worker-6-tc1/source
[INFO] removed /workspace/builds/worker-6-tc1/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-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate rusty-cpp 0.1.1 on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded zmij v1.0.4
[INFO] [stderr]   Downloaded z3 v0.12.1
[INFO] [stderr]   Downloaded assert_cmd v2.1.1
[INFO] [stderr]   Downloaded clang v2.0.0
[INFO] [stderr]   Downloaded bindgen v0.66.1
[INFO] [stderr]   Downloaded z3-sys v0.8.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7297573de09f9cd867b785bd016fc7b53c7c948fe1b7a5b0db1944efa292a468
[INFO] running `Command { std: "docker" "start" "-a" "7297573de09f9cd867b785bd016fc7b53c7c948fe1b7a5b0db1944efa292a468", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7297573de09f9cd867b785bd016fc7b53c7c948fe1b7a5b0db1944efa292a468", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7297573de09f9cd867b785bd016fc7b53c7c948fe1b7a5b0db1944efa292a468", kill_on_drop: false }`
[INFO] [stdout] 7297573de09f9cd867b785bd016fc7b53c7c948fe1b7a5b0db1944efa292a468
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 871019461e84e4b1ed24cd8adaac2fc55c1521260876e2da7fa7cf59c79595b9
[INFO] running `Command { std: "docker" "start" "-a" "871019461e84e4b1ed24cd8adaac2fc55c1521260876e2da7fa7cf59c79595b9", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.104
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling bindgen v0.66.1
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling zmij v1.0.4
[INFO] [stderr]    Compiling serde_json v1.0.148
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling clap_builder v4.5.53
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling rusty-cpp v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling colored v3.0.0
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling syn v2.0.112
[INFO] [stderr]    Compiling petgraph v0.8.3
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling clang v2.0.0
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling miette-derive v7.6.0
[INFO] [stderr]    Compiling clap_derive v4.5.49
[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]     |                                   ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 398 |             return_lifetime = Some(return_part.to_string());
[INFO] [stdout]     |             --------------- `return_lifetime` is overwritten here before the previous value is read
[INFO] [stdout]     |
[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<String> = 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<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `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<ThisContext>,
[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<ThisContext>) {
[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]     |                                   ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 398 |             return_lifetime = Some(return_part.to_string());
[INFO] [stdout]     |             --------------- `return_lifetime` is overwritten here before the previous value is read
[INFO] [stdout]     |
[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<String> = 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<String>,  // e.g., ["T", "Args"] for template<typename T, typename... Args>
[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<SafetyMode> {
[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<String> {
[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<String>) {
[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<String> {
[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<TypeLifetimeSpec> {
[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<TypeLifetime> {
[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<String> {
[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<String>, // Raw lifetime specification for future use
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 32 |     pub param_lifetimes: Vec<String>,  // Parameter lifetime annotations
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     pub return_lifetime: Option<String>, // Return type lifetime
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     pub lifetime_constraints: Vec<String>, // 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<Self, String> {
[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<String>,
[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<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 105 |     // Template information
[INFO] [stdout] 106 |     pub template_parameters: Vec<String>,  // e.g., ["T", "U"] for template<typename T, typename U>
[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<ThisContext>,
[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<ThisContext>) {
[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<String>,
[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<String> {
[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 45.89s
[INFO] running `Command { std: "docker" "inspect" "871019461e84e4b1ed24cd8adaac2fc55c1521260876e2da7fa7cf59c79595b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "871019461e84e4b1ed24cd8adaac2fc55c1521260876e2da7fa7cf59c79595b9", kill_on_drop: false }`
[INFO] [stdout] 871019461e84e4b1ed24cd8adaac2fc55c1521260876e2da7fa7cf59c79595b9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 00ed52deb5b44001c4ef47332cc3b75b4233f4000a93acc7e4c6ef6f7a4e6698
[INFO] running `Command { std: "docker" "start" "-a" "00ed52deb5b44001c4ef47332cc3b75b4233f4000a93acc7e4c6ef6f7a4e6698", kill_on_drop: false }`
[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 ppv-lite86 v0.2.21
[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 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 rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling regex v1.12.2
[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]     |                                   ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 398 |             return_lifetime = Some(return_part.to_string());
[INFO] [stdout]     |             --------------- `return_lifetime` is overwritten here before the previous value is read
[INFO] [stdout]     |
[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<String> = 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<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `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<ThisContext>,
[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<ThisContext>) {
[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]     |                                   ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 398 |             return_lifetime = Some(return_part.to_string());
[INFO] [stdout]     |             --------------- `return_lifetime` is overwritten here before the previous value is read
[INFO] [stdout]     |
[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<String> = 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<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `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<ThisContext>,
[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<ThisContext>) {
[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]     |                                   ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 398 |             return_lifetime = Some(return_part.to_string());
[INFO] [stdout]     |             --------------- `return_lifetime` is overwritten here before the previous value is read
[INFO] [stdout]     |
[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<String> = 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<String>,  // e.g., ["T", "Args"] for template<typename T, typename... Args>
[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<SafetyMode> {
[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<String> {
[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<TypeLifetime>,
[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<String>, // Raw lifetime specification for future use
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 32 |     pub param_lifetimes: Vec<String>,  // Parameter lifetime annotations
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     pub return_lifetime: Option<String>, // Return type lifetime
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     pub lifetime_constraints: Vec<String>, // 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<Self, 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<String>,
[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<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 105 |     // Template information
[INFO] [stdout] 106 |     pub template_parameters: Vec<String>,  // e.g., ["T", "U"] for template<typename T, typename U>
[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<ThisContext>,
[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<ThisContext>) {
[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<String>,
[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.92s
[INFO] running `Command { std: "docker" "inspect" "00ed52deb5b44001c4ef47332cc3b75b4233f4000a93acc7e4c6ef6f7a4e6698", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "00ed52deb5b44001c4ef47332cc3b75b4233f4000a93acc7e4c6ef6f7a4e6698", kill_on_drop: false }`
[INFO] [stdout] 00ed52deb5b44001c4ef47332cc3b75b4233f4000a93acc7e4c6ef6f7a4e6698
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 262b8505f0b9ee23d6481c04091abc67bffb7b3f83369f91bf38f1a1623506b9
[INFO] running `Command { std: "docker" "start" "-a" "262b8505f0b9ee23d6481c04091abc67bffb7b3f83369f91bf38f1a1623506b9", 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]     |                                   ^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 398 |             return_lifetime = Some(return_part.to_string());
[INFO] [stderr]     |             --------------- `return_lifetime` is overwritten here before the previous value is read
[INFO] [stderr]     |
[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<String> = 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<String> {
[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<ThisContext>,
[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<ThisContext>) {
[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<ThisContext>) {
[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<String>,  // e.g., ["T", "Args"] for template<typename T, typename... Args>
[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<SafetyMode> {
[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<String> {
[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<TypeLifetime>,
[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<String>, // Raw lifetime specification for future use
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 32 |     pub param_lifetimes: Vec<String>,  // Parameter lifetime annotations
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 33 |     pub return_lifetime: Option<String>, // Return type lifetime
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 34 |     pub lifetime_constraints: Vec<String>, // 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<Self, String> {
[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<String>,
[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<String>,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 105 |     // Template information
[INFO] [stderr] 106 |     pub template_parameters: Vec<String>,  // e.g., ["T", "U"] for template<typename T, typename U>
[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<String>,
[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.20s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rusty_cpp-ba0b7e34b9bd6e4f)
[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_raw_member_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_safe_fn_call ... 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::function_pointer_safety::tests::test_unsafe_mem_fn_call_unsafe ... ok
[INFO] [stdout] test analysis::function_pointer_safety::tests::test_is_safe_fn_type ... 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::function_pointer_safety::tests::test_is_raw_function_pointer_type ... 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_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_wrong_namespace_fails ... ok
[INFO] [stdout] test analysis::lambda_capture_safety::tests::test_default_copy_capture_in_safe_is_ok ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_with_namespaced_interface ... ok
[INFO] [stdout] test analysis::lambda_capture_safety::tests::test_copy_capture_in_safe_is_ok ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_resolve_qualified_name_already_qualified ... 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_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_outlives_checking ... ok
[INFO] [stdout] test analysis::lifetime_checker::tests::test_check_return_lifetime_reference_is_unsafe ... 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::lambda_capture_safety::tests::test_lambda_context_escape_no_ref_capture ... ok
[INFO] [stdout] test analysis::function_pointer_safety::tests::test_extract_function_from_address_of ... ok
[INFO] [stdout] test analysis::lambda_capture_safety::tests::test_lambda_context_escape_tracking ... ok
[INFO] [stdout] test analysis::lifetime_checker::tests::test_lifetime_scope ... 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_ref_capture_extraction ... ok
[INFO] [stdout] test analysis::function_pointer_safety::tests::test_check_safe_fn_assignment_with_unsafe_function ... 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_function_argument ... ok
[INFO] [stdout] test analysis::liveness::tests::test_escaped_variable ... ok
[INFO] [stdout] test analysis::liveness::tests::test_simple_read_sequence ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_from_interface ... ok
[INFO] [stdout] test analysis::liveness::tests::test_liveness_simple_sequence ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_address_of_in_assignment ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_address_of_variable_is_unsafe ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_this_as_variable_is_unsafe ... 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_this_dereference_is_safe ... 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_declaration_allowed ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_pointer_in_function_call ... 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_this_member_access_is_safe ... ok
[INFO] [stdout] test analysis::scope_lifetime::tests::test_outlives_checking ... ok
[INFO] [stdout] test analysis::scope_lifetime::tests::test_scope_tracking ... ok
[INFO] [stdout] test analysis::raii_tracking::tests::test_use_after_free ... 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_pointer_in_function_call ... 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::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::scope_tests::test_error_still_caught_in_same_scope ... ok
[INFO] [stdout] test analysis::tests::test_borrow_tracking ... ok
[INFO] [stdout] test analysis::tests::test_cannot_move_from_reference ... ok
[INFO] [stdout] test analysis::tests::test_complex_borrow_chain ... ok
[INFO] [stdout] test analysis::raii_tracking::tests::test_is_iterator_type ... ok
[INFO] [stdout] test analysis::scope_tests::test_multiple_sequential_scopes ... ok
[INFO] [stdout] test analysis::raii_tracking::tests::test_iterator_outlives_container ... ok
[INFO] [stdout] test analysis::scope_tests::test_scope_doesnt_affect_moves ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_wchar_ptr_detection ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_char_ptr_detection ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_safe_expression ... ok
[INFO] [stdout] test analysis::raii_tracking::tests::test_container_borrow_detection ... ok
[INFO] [stdout] test analysis::tests::test_empty_program_passes ... 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_const_reference_cannot_modify ... ok
[INFO] [stdout] test analysis::tests::test_multiple_functions_with_references ... 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::unsafe_propagation::tests::test_unsafe_call_in_expression ... ok
[INFO] [stdout] test analysis::tests::test_ownership_state_transitions ... ok
[INFO] [stdout] test diagnostics::tests::test_diagnostic_display ... 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 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_format_double_borrow ... ok
[INFO] [stdout] test analysis::unsafe_propagation::tests::test_known_safe_function ... ok
[INFO] [stdout] test diagnostics::tests::test_format_lifetime_error ... ok
[INFO] [stdout] test diagnostics::tests::test_diagnostic_creation ... ok
[INFO] [stdout] test diagnostics::tests::test_format_use_after_move ... ok
[INFO] [stdout] test ir::tests::test_build_empty_ir ... ok
[INFO] [stdout] test ir::tests::test_lifetime_creation ... ok
[INFO] [stdout] test ir::tests::test_build_ir_with_function ... ok
[INFO] [stdout] test ir::tests::test_variable_type_classification ... ok
[INFO] [stdout] test ir::tests::test_ownership_state_initialization ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_default_stl_unsafe_types ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_split_entries_comma_separated ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_split_entries_multiline ... 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::header_cache::tests::test_strip_template_params_constructor ... 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::header_cache::tests::test_strip_template_params_qualified ... ok
[INFO] [stdout] test parser::annotations::tests::test_parse_simple_lifetime ... ok
[INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_simple ... 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::external_annotations::tests::test_pattern_matching ... 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::template_context::tests::test_multiple_type_parameters ... ok
[INFO] [stdout] test parser::template_context::tests::test_single_type_parameter ... ok
[INFO] [stdout] test parser::template_context::tests::test_get_type_parameters ... ok
[INFO] [stdout] test parser::safety_annotations::tests::test_function_safe_annotation ... 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::safety_annotations::tests::test_first_code_element_annotation ... ok
[INFO] [stdout] test parser::type_annotations::tests::test_registry ... ok
[INFO] [stdout] test parser::safety_annotations::tests::test_namespace_safe_annotation ... ok
[INFO] [stdout] test parser::annotations::tests::test_parse_with_params ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_split_entries_preserves_brackets ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_unsafe_type_annotation ... ok
[INFO] [stdout] test parser::header_cache::tests::test_extract_includes ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_qualified_function_name_parsing ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_string_literal_expression_is_safe ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_parse_safety_block ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_qualified_name_matching ... ok
[INFO] [stdout] test parser::tests::test_parse_function_with_parameters ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_profiles ... ok
[INFO] [stdout] test analysis::tests::test_multiple_const_references_allowed ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_safe_vs_unsafe_annotation ... ok
[INFO] [stdout] test parser::tests::test_parse_global_variable ... 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.23s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rusty_cpp_checker-64fc15700141d1dc)
[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_check_safe_fn_assignment_with_unknown_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_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_safe_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_is_unsafe_fn_call_unsafe_method ... ok
[INFO] [stdout] test analysis::function_pointer_safety::tests::test_safe_mem_fn_call ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_with_data_member ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_inheritance_with_namespace ... 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_without_any_destructor ... 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_interface_with_non_defaulted_virtual_destructor ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_from_interface ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_resolve_qualified_name_already_qualified ... ok
[INFO] [stdout] test analysis::lambda_capture_safety::tests::test_default_copy_capture_in_safe_is_ok ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_resolve_qualified_name_from_namespace ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_is_interface_base_exact_match ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_wrong_namespace_fails ... ok
[INFO] [stdout] test analysis::lambda_capture_safety::tests::test_ref_capture_extraction ... ok
[INFO] [stdout] test analysis::lifetime_checker::tests::test_check_return_lifetime_owned_is_safe ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_resolve_qualified_name_no_namespace ... ok
[INFO] [stdout] test analysis::lambda_capture_safety::tests::test_default_ref_capture_extraction ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_with_namespaced_interface ... 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_init_capture_in_safe_is_ok ... ok
[INFO] [stdout] test analysis::lifetime_checker::tests::test_check_return_lifetime_pointer_is_safe ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_interface_with_non_virtual_destructor ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_valid_interface ... ok
[INFO] [stdout] test analysis::inheritance_safety::tests::test_safe_inheritance_from_non_interface ... ok
[INFO] [stdout] test analysis::lifetime_checker::tests::test_outlives_checking ... ok
[INFO] [stdout] test analysis::lifetime_checker::tests::test_check_return_lifetime_reference_is_unsafe ... ok
[INFO] [stdout] test analysis::lifetime_checker::tests::test_lifetime_scope ... 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_function_argument ... ok
[INFO] [stdout] test analysis::lifetime_inference::tests::test_lifetime_inference ... ok
[INFO] [stdout] test analysis::liveness::tests::test_liveness_simple_sequence ... ok
[INFO] [stdout] test analysis::liveness::tests::test_escaped_variable ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_address_of_variable_is_unsafe ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_char16_char32_ptr_detection ... ok
[INFO] [stdout] test analysis::liveness::tests::test_simple_read_sequence ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_detect_address_of ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_char_ptr_detection ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_detect_dereference ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_nested_pointer_operations ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_address_of_in_assignment ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_non_char_ptr_not_detected ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_member_function_pointer_is_safe ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_pointer_declaration_allowed ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_pointer_in_binary_op ... 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_safe_expression ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_qualified_member_function_pointer_is_safe ... ok
[INFO] [stdout] test analysis::pointer_safety::tests::test_string_literal_expression_is_safe ... 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_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_double_free_detection ... ok
[INFO] [stdout] test analysis::raii_tracking::tests::test_is_container_type ... 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_member_access_is_safe ... ok
[INFO] [stdout] test analysis::scope_lifetime::tests::test_scope_tracking ... 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_tests::test_scope_cleanup_simple ... ok
[INFO] [stdout] test analysis::scope_tests::test_nested_scopes ... ok
[INFO] [stdout] test analysis::scope_tests::test_multiple_sequential_scopes ... ok
[INFO] [stdout] test analysis::tests::test_cannot_borrow_moved_value ... ok
[INFO] [stdout] test analysis::scope_tests::test_error_still_caught_in_same_scope ... ok
[INFO] [stdout] test analysis::tests::test_cannot_move_from_reference ... ok
[INFO] [stdout] test analysis::scope_tests::test_scope_doesnt_affect_moves ... ok
[INFO] [stdout] test analysis::tests::test_complex_borrow_chain ... ok
[INFO] [stdout] test analysis::tests::test_empty_program_passes ... ok
[INFO] [stdout] test analysis::tests::test_const_reference_cannot_modify ... ok
[INFO] [stdout] test analysis::tests::test_multiple_const_references_allowed ... 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_tracking ... ok
[INFO] [stdout] test analysis::tests::test_mutable_borrow_while_immutable_fails ... 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::unsafe_propagation::tests::test_detect_unsafe_function_call ... ok
[INFO] [stdout] test analysis::tests::test_use_after_move_detection ... 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_lifetime_error ... ok
[INFO] [stdout] test ir::tests::test_build_empty_ir ... 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 ir::tests::test_ownership_state_initialization ... ok
[INFO] [stdout] test analysis::unsafe_propagation::tests::test_known_safe_function ... ok
[INFO] [stdout] test ir::tests::test_variable_type_classification ... ok
[INFO] [stdout] test ir::tests::test_lifetime_creation ... 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 analysis::function_pointer_safety::tests::test_extract_function_from_address_of ... ok
[INFO] [stdout] test parser::annotations::tests::test_parse_owned ... 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::external_annotations::tests::test_split_entries_multiline ... ok
[INFO] [stdout] test parser::annotations::tests::test_parse_mut_ref ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_split_entries_preserves_brackets ... ok
[INFO] [stdout] test parser::annotations::tests::test_parse_simple_lifetime ... 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_nested ... ok
[INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_no_template ... ok
[INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_qualified ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_pattern_matching ... ok
[INFO] [stdout] test parser::header_cache::tests::test_strip_template_params_simple ... ok
[INFO] [stdout] test parser::safety_annotations::tests::test_function_safe_annotation ... ok
[INFO] [stdout] test parser::safety_annotations::tests::test_first_code_element_annotation ... ok
[INFO] [stdout] test parser::safety_annotations::tests::test_namespace_safe_annotation ... 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::template_context::tests::test_get_type_parameters ... ok
[INFO] [stdout] test parser::template_context::tests::test_multiple_type_parameters ... ok
[INFO] [stdout] test parser::template_context::tests::test_single_type_parameter ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_wildcard_patterns ... ok
[INFO] [stdout] test parser::tests::test_parse_function_with_parameters ... 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_lambda_context_no_escape_no_error ... ok
[INFO] [stdout] test analysis::lambda_capture_safety::tests::test_lambda_context_escape_tracking ... ok
[INFO] [stdout] test parser::tests::test_parse_simple_function ... 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::header_cache::tests::test_extract_includes ... ok
[INFO] [stdout] test parser::tests::test_parse_global_variable ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_default_stl_unsafe_types ... ok
[INFO] [stdout] test parser::annotations::tests::test_parse_with_params ... ok
[INFO] [stdout] test analysis::lambda_capture_safety::tests::test_copy_capture_in_safe_is_ok ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_safe_vs_unsafe_annotation ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_profiles ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_qualified_function_name_parsing ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_qualified_name_matching ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_parse_safety_block ... ok
[INFO] [stdout] test parser::external_annotations::tests::test_unsafe_type_annotation ... ok
[INFO] [stderr]    Doc-tests rusty_cpp
[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.14s
[INFO] [stdout] 
[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.38s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "262b8505f0b9ee23d6481c04091abc67bffb7b3f83369f91bf38f1a1623506b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "262b8505f0b9ee23d6481c04091abc67bffb7b3f83369f91bf38f1a1623506b9", kill_on_drop: false }`
[INFO] [stdout] 262b8505f0b9ee23d6481c04091abc67bffb7b3f83369f91bf38f1a1623506b9
