[INFO] fetching crate typescript 0.0.4...
[INFO] testing typescript-0.0.4 against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739-1
[INFO] extracting crate typescript 0.0.4 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate typescript 0.0.4
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate typescript 0.0.4
[INFO] tweaked toml for crates.io crate typescript 0.0.4 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate typescript 0.0.4 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 typescript 0.0.4 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 rand v0.10.0
[INFO] [stderr]   Downloaded hybrid-array v0.4.8
[INFO] [stderr]   Downloaded oak-macros v0.0.11
[INFO] [stderr]   Downloaded digest v0.11.2
[INFO] [stderr]   Downloaded oak-core v0.0.11
[INFO] [stderr]   Downloaded oak-typescript v0.0.11
[INFO] [stderr]   Downloaded typescript-types v0.0.4
[INFO] [stderr]   Downloaded typescript-ir v0.0.4
[INFO] [stderr]   Downloaded oak-json v0.0.11
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 5568e4621414ea840940a766496e53ff8ad6abb7b67ad5ca31dc2949957e3f9e
[INFO] running `Command { std: "docker" "start" "-a" "5568e4621414ea840940a766496e53ff8ad6abb7b67ad5ca31dc2949957e3f9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5568e4621414ea840940a766496e53ff8ad6abb7b67ad5ca31dc2949957e3f9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5568e4621414ea840940a766496e53ff8ad6abb7b67ad5ca31dc2949957e3f9e", kill_on_drop: false }`
[INFO] [stdout] 5568e4621414ea840940a766496e53ff8ad6abb7b67ad5ca31dc2949957e3f9e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 3b633c81006e2e025f963a1f4147eab99dca0fb0acbef7c78b37b9a5282feab2
[INFO] running `Command { std: "docker" "start" "-a" "3b633c81006e2e025f963a1f4147eab99dca0fb0acbef7c78b37b9a5282feab2", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling typescript v0.0.4 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling rand v0.10.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling hybrid-array v0.4.8
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling digest v0.11.2
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling oak-macros v0.0.11
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling twox-hash v2.1.2
[INFO] [stderr]    Compiling triomphe v0.1.15
[INFO] [stderr]    Compiling typescript-types v0.0.4
[INFO] [stderr]    Compiling oak-core v0.0.11
[INFO] [stderr]    Compiling typescript-ir v0.0.4
[INFO] [stderr]    Compiling oak-json v0.0.11
[INFO] [stderr]    Compiling oak-typescript v0.0.11
[INFO] [stdout] warning: unused import: `typescript_ir::Program`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use typescript_ir::Program;
[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: `TsError`
[INFO] [stdout]  --> src/codegen/optimizer.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use typescript_types::{TsError, TsValue};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `generate_expression_instructions`, `generate_expression_with_locals`, and `generate_statement_with_locals`
[INFO] [stdout]   --> src/codegen/mod.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     generate_expression_instructions, generate_expression_with_locals, generate_statement_instructions,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     generate_statement_with_locals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `typescript_types::TsError`
[INFO] [stdout]  --> src/compiler/codegen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use typescript_types::TsError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Program` and `TypedProgram`
[INFO] [stdout]  --> src/compiler/context.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use typescript_ir::{Program, TypeAnnotation, TypedProgram};
[INFO] [stdout]   |                     ^^^^^^^                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TsError`
[INFO] [stdout]   --> src/compiler/executor.rs:11:24
[INFO] [stdout]    |
[INFO] [stdout] 11 | use typescript_types::{TsError, TsValue};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `typescript_types::TsError`
[INFO] [stdout]  --> src/compiler/ir_generator.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use typescript_types::TsError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `parallel`
[INFO] [stdout]    --> src/compiler/ir_generator.rs:518:11
[INFO] [stdout]     |
[INFO] [stdout] 518 |     #[cfg(feature = "parallel")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `parallel` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CompilationTask` and `parallel::ParallelCompiler`
[INFO] [stdout]  --> src/compiler/main.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 |     CompilationResult, CompilationStage, CompilationTask, CompilationUnit, Compiler, cache::CompilationCache,
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     codegen::CodeGenerator, context::CompilationContext, executor::Executor, ir_generator::IRGenerator, optimizer::Optimizer,
[INFO] [stdout] 8 |     parallel::ParallelCompiler, semantic::SemanticAnalyzer,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashSet` and `sync::Arc`
[INFO] [stdout]   --> src/compiler/main.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::{collections::HashSet, path::PathBuf, sync::Arc};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TypedProgram`
[INFO] [stdout]  --> src/compiler/optimizer.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 | use typescript_ir::{Program, TypedProgram, optimize_full};
[INFO] [stdout]   |                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `typescript_types::TsError`
[INFO] [stdout]  --> src/compiler/optimizer.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use typescript_types::TsError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/compiler/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/ffi/mod.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | /// 线程本地对象池
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CString`
[INFO] [stdout]  --> src/ffi/napi.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 |     ffi::{CString, c_char, c_void},
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OsStr` and `c_char`
[INFO] [stdout]  --> src/platform/dylib.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 |     ffi::{CStr, CString, OsStr, c_char, c_void},
[INFO] [stdout]   |                          ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/vm/object_ops.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `exception_ops::ExceptionOperations`
[INFO] [stdout]   --> src/vm/mod.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use exception_ops::ExceptionOperations;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExecutionContext` and `InstructionExecutor`
[INFO] [stdout]   --> src/vm/mod.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use executor::{ExecutionContext, InstructionExecutor};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassOperations`, `FunctionOperations`, and `TypeOperations`
[INFO] [stdout]   --> src/vm/mod.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use function_ops::{ClassOperations, FunctionOperations, TypeOperations};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `memory::MemoryManager`
[INFO] [stdout]   --> src/vm/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use memory::MemoryManager;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `module_ops::ModuleOperations`
[INFO] [stdout]   --> src/vm/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub use module_ops::ModuleOperations;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayOperations` and `ObjectOperations`
[INFO] [stdout]   --> src/vm/mod.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub use object_ops::{ArrayOperations, ObjectOperations};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BinaryOperations` and `UnaryOperations`
[INFO] [stdout]   --> src/vm/mod.rs:30:22
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use operations::{BinaryOperations, UnaryOperations};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types::*`
[INFO] [stdout]   --> src/vm/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use types::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loop_end`
[INFO] [stdout]   --> src/codegen/generator.rs:98:21
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 let loop_end = instructions.len() as u32 + 1;
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loop_end`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loop_end`
[INFO] [stdout]    --> src/codegen/generator.rs:240:21
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 let loop_end = instructions.len() as u32 + 1;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loop_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/codegen/generator.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |         _ => Err(TsError::SyntaxError("Unsupported expression type".to_string())),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/codegen/generator.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |         Expression::Literal(value) => {
[INFO] [stdout]     |         -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 321 |         Expression::Identifier(name) => {
[INFO] [stdout]     |         ---------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 325 |         Expression::Binary { left, op, right } => {
[INFO] [stdout]     |         -------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 332 |         Expression::Unary { op, expr } => {
[INFO] [stdout]     |         ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 440 |         _ => Err(TsError::SyntaxError("Unsupported expression type".to_string())),
[INFO] [stdout]     |         ^ ...and 9 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ir`
[INFO] [stdout]   --> src/compiler/codegen.rs:23:32
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn generate(&mut self, ir: &TypedProgram) -> CompilationResult<Vec<u8>> {
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_ir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_name`
[INFO] [stdout]    --> src/compiler/ir_generator.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let type_name = tokens.next()?;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_name`
[INFO] [stdout]    --> src/compiler/ir_generator.rs:210:17
[INFO] [stdout]     |
[INFO] [stdout] 210 |             let type_name = tokens.next()?;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_name`
[INFO] [stdout]    --> src/compiler/ir_generator.rs:308:17
[INFO] [stdout]     |
[INFO] [stdout] 308 |             let type_name = tokens.next()?;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instructions`
[INFO] [stdout]    --> src/compiler/main.rs:107:29
[INFO] [stdout]     |
[INFO] [stdout] 107 |                         let instructions = self.code_generator.generate(&typed_program);
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instructions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ast`
[INFO] [stdout]   --> src/compiler/semantic.rs:23:31
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn analyze(&mut self, ast: &str) -> CompilationResult<CompilationContext> {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_ast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `processed` is assigned to, but never used
[INFO] [stdout]     --> src/gc/collector.rs:1548:13
[INFO] [stdout]      |
[INFO] [stdout] 1548 |         let mut processed = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_processed` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `processed` is never read
[INFO] [stdout]     --> src/gc/collector.rs:1553:17
[INFO] [stdout]      |
[INFO] [stdout] 1553 |                 processed += 1;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/gc/collector.rs:2126:25
[INFO] [stdout]      |
[INFO] [stdout] 2126 |                 *root = unsafe { NonNull::new(new_addr as *mut GcObject).unwrap() };
[INFO] [stdout]      |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/jit/compiler.rs:935:13
[INFO] [stdout]     |
[INFO] [stdout] 935 |         let mut optimizer = JITOptimizer::new(optimization_level.clone());
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/jit/executor.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |             let mut vm = crate::vm::VM::new(vec![]);
[INFO] [stdout]    |                 ----^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vm`
[INFO] [stdout]   --> src/jit/executor.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |             let mut vm = crate::vm::VM::new(vec![]);
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_vm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/jit/optimizer.rs:721:13
[INFO] [stdout]     |
[INFO] [stdout] 721 |         let mut live_variables = self.analyze_liveness(instructions);
[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/memory/mod.rs:346:21
[INFO] [stdout]     |
[INFO] [stdout] 346 |                 let mut current_block = block;
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/type_checker/mod.rs:302:39
[INFO] [stdout]     |
[INFO] [stdout] 302 |         Statement::ClassDeclaration { name, super_class, methods, .. } => {
[INFO] [stdout]     |                                       ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `super_class`
[INFO] [stdout]    --> src/type_checker/mod.rs:302:45
[INFO] [stdout]     |
[INFO] [stdout] 302 |         Statement::ClassDeclaration { name, super_class, methods, .. } => {
[INFO] [stdout]     |                                             ^^^^^^^^^^^ help: try ignoring the field: `super_class: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/type_checker/mod.rs:344:53
[INFO] [stdout]     |
[INFO] [stdout] 344 |                     InterfaceMember::Method { name, params, return_type, optional } => {
[INFO] [stdout]     |                                                     ^^^^^^ help: try ignoring the field: `params: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `object_type`
[INFO] [stdout]    --> src/type_checker/mod.rs:675:17
[INFO] [stdout]     |
[INFO] [stdout] 675 |             let object_type = check_expression(object, env)?;
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_object_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `object_type`
[INFO] [stdout]    --> src/type_checker/mod.rs:691:17
[INFO] [stdout]     |
[INFO] [stdout] 691 |             let object_type = check_expression(object, env)?;
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_object_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `op`
[INFO] [stdout]    --> src/type_checker/mod.rs:725:40
[INFO] [stdout]     |
[INFO] [stdout] 725 |         Expression::Assignment { left, op, right } => {
[INFO] [stdout]     |                                        ^^ help: try ignoring the field: `op: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/vm/builtins/mod.rs:336:57
[INFO] [stdout]     |
[INFO] [stdout] 336 |             set_constructor: TsValue::Function(Rc::new(|args| TsValue::Object(std::collections::HashMap::new()))),
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/vm/builtins/mod.rs:335:57
[INFO] [stdout]     |
[INFO] [stdout] 335 |             map_constructor: TsValue::Function(Rc::new(|args| TsValue::Object(std::collections::HashMap::new()))),
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/vm/perf/mod.rs:75:48
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn record_memory_allocation(&mut self, size: usize) {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/vm/perf/mod.rs:84:50
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn record_memory_deallocation(&mut self, size: usize) {
[INFO] [stdout]    |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/vm/vm.rs:241:40
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 Instruction::AddMethod(name) => {
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/lib.rs:272:45
[INFO] [stdout]     |
[INFO] [stdout] 272 |     pub fn register_ffi_function(&mut self, name: &str, func: Rc<dyn Fn(&[TsValue]) -> TsValue>) {
[INFO] [stdout]     |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]    --> src/lib.rs:272:57
[INFO] [stdout]     |
[INFO] [stdout] 272 |     pub fn register_ffi_function(&mut self, name: &str, func: Rc<dyn Fn(&[TsValue]) -> TsValue>) {
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ffi_manager` and `jit_executor` are never read
[INFO] [stdout]   --> src/lib.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct TypeScript {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     ffi_manager: ffi::FfiManager,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 49 |     /// JIT 执行器
[INFO] [stdout] 50 |     jit_executor: jit::JITExecutor,
[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 `ast_to_ir` is never used
[INFO] [stdout]   --> src/codegen/mod.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn ast_to_ir(program: Program) -> Program {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_statement_with_locals` is never used
[INFO] [stdout]    --> src/codegen/generator.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn generate_statement_with_locals(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_expression_with_locals` is never used
[INFO] [stdout]    --> src/codegen/generator.rs:445:8
[INFO] [stdout]     |
[INFO] [stdout] 445 | pub fn generate_expression_with_locals(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `disk_cache_path` and `enable_disk_cache` are never read
[INFO] [stdout]   --> src/compiler/cache.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct CompilationCache {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     disk_cache_path: Option<PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 52 |     /// 是否启用磁盘缓存
[INFO] [stdout] 53 |     enable_disk_cache: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CompilationCache` 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 `pool` and `max_size` are never read
[INFO] [stdout]  --> src/ffi/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct ObjectPool<T> {
[INFO] [stdout]   |        ---------- fields in this struct
[INFO] [stdout] 8 |     pool: Mutex<Vec<T>>,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 9 |     max_size: usize,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get` and `put` are never used
[INFO] [stdout]   --> src/ffi/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<T> ObjectPool<T> {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get<F>(&self, default: F) -> T
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn put(&self, item: T) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `library` is never read
[INFO] [stdout]   --> src/ffi/napi.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct LoadedNapiModule {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     library: DynamicLibrary,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_promotion_rate` is never read
[INFO] [stdout]    --> src/gc/collector.rs:250:5
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub struct PromotionPolicy {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 250 |     max_promotion_rate: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PromotionPolicy` 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 `work_queues`, `concurrent_mark_thread`, `concurrent_sweep_thread`, `concurrent_mark_done`, and `concurrent_sweep_done` are never read
[INFO] [stdout]    --> src/gc/collector.rs:914:5
[INFO] [stdout]     |
[INFO] [stdout] 900 | pub struct GC {
[INFO] [stdout]     |            -- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 914 |     work_queues: Vec<Arc<WorkStealingQueue>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 942 |     concurrent_mark_thread: Option<thread::JoinHandle<()>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 943 |     /// 并发清除线程
[INFO] [stdout] 944 |     concurrent_sweep_thread: Option<thread::JoinHandle<()>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 945 |     /// 并发标记是否完成
[INFO] [stdout] 946 |     concurrent_mark_done: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 947 |     /// 并发清除是否完成
[INFO] [stdout] 948 |     concurrent_sweep_done: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/gc/collector.rs:1194:8
[INFO] [stdout]      |
[INFO] [stdout]  961 | impl GC {
[INFO] [stdout]      | ------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1194 |     fn free_memory(&mut self, ptr: *mut u8, size: usize) {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1523 |     fn mark_incremental(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1587 |     fn process_object_in_parallel(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1629 |     fn mark_value_references_parallel(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1771 |     fn sweep_incremental(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2013 |     fn compact_incremental(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2279 |     fn process_remembered_set_batch(&mut self, batch_size: usize) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2299 |     fn clean_remembered_set(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2388 |     fn start_concurrent_mark(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2398 |     fn start_concurrent_sweep(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2408 |     fn check_concurrent_status(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2433 |     fn clone(&self) -> Self {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeEnvironment` is never constructed
[INFO] [stdout]  --> src/type_checker/mod.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct TypeEnvironment {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/type_checker/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl TypeEnvironment {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 28 |     /// 创建一个新的类型环境
[INFO] [stdout] 29 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn add_variable(&mut self, name: String, ty: TypeAnnotation) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn add_function(&mut self, name: String, params: Vec<TypeAnnotation>, return_type: Option<TypeAnnotation>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn add_type_alias(&mut self, name: String, ty: TypeAnnotation) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn add_interface(&mut self, name: String, members: Vec<(String, TypeAnnotation, bool)>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn get_variable(&self, name: &str) -> Option<&TypeAnnotation> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     fn get_function(&self, name: &str) -> Option<&(Vec<TypeAnnotation>, Option<TypeAnnotation>)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn get_type_alias(&self, name: &str) -> Option<&TypeAnnotation> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn get_interface(&self, name: &str) -> Option<&Vec<(String, TypeAnnotation, bool)>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn is_compatible(&self, from: &TypeAnnotation, to: &TypeAnnotation) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn resolve_type(&self, ty: &TypeAnnotation) -> TypeAnnotation {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_compatible` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn is_compatible(env: &TypeEnvironment, from: &TypeAnnotation, to: &TypeAnnotation) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub fn check(program: Program) -> Result<Program, TsError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_statement` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:225:4
[INFO] [stdout]     |
[INFO] [stdout] 225 | fn check_statement(statement: &Statement, env: &mut TypeEnvironment) -> Result<(), TsError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_expression` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:414:4
[INFO] [stdout]     |
[INFO] [stdout] 414 | fn check_expression(expr: &Expression, env: &mut TypeEnvironment) -> Result<TypeAnnotation, TsError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_type` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | fn format_type(ty: &TypeAnnotation) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `infer_common_type` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:832:4
[INFO] [stdout]     |
[INFO] [stdout] 832 | fn infer_common_type(env: &TypeEnvironment, types: &[TypeAnnotation]) -> TypeAnnotation {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_common_type` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:849:4
[INFO] [stdout]     |
[INFO] [stdout] 849 | fn find_common_type(env: &TypeEnvironment, a: &TypeAnnotation, b: &TypeAnnotation) -> TypeAnnotation {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_ip`, `end_ip`, `handler_ip`, `exception_var`, `has_finally`, and `finally_ip` are never read
[INFO] [stdout]   --> src/vm/exception/mod.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct ExceptionHandler {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout]  6 |     /// 处理的起始指令位置
[INFO] [stdout]  7 |     pub start_ip: usize,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]  8 |     /// 处理的结束指令位置
[INFO] [stdout]  9 |     pub end_ip: usize,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 10 |     /// 处理器的指令位置
[INFO] [stdout] 11 |     pub handler_ip: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 12 |     /// 异常变量名
[INFO] [stdout] 13 |     pub exception_var: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     /// 是否有 finally 块
[INFO] [stdout] 15 |     pub has_finally: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 16 |     /// finally 块的指令位置
[INFO] [stdout] 17 |     pub finally_ip: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExceptionHandler` 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 functions `try_start`, `find_exception_handler`, and `handle_exception` are never used
[INFO] [stdout]   --> src/vm/exception_ops.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ExceptionOperations {
[INFO] [stdout]    | ------------------------ associated functions in this implementation
[INFO] [stdout] 13 |     /// 开始 try 块
[INFO] [stdout] 14 |     pub fn try_start(
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn find_exception_handler(ip: usize, exception_handlers: &[ExceptionHandler]) -> Option<ExceptionHandler> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn handle_exception(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionContext` is never constructed
[INFO] [stdout]   --> src/vm/executor.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ExecutionContext<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `push_constant` and `execute_instruction` are never used
[INFO] [stdout]    --> src/vm/executor.rs:34:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl InstructionExecutor {
[INFO] [stdout]     | ------------------------ associated functions in this implementation
[INFO] [stdout]  33 |     /// 执行常量压栈指令
[INFO] [stdout]  34 |     pub fn push_constant(stack: &mut Vec<TsValue>, value: TsValue) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn execute_instruction(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `function_name` and `stack_base` are never read
[INFO] [stdout]   --> src/vm/frame/mod.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct CallFrame {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout]  8 |     /// 函数名
[INFO] [stdout]  9 |     pub function_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub stack_base: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CallFrame` 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 `new` and `get_local_index` are never used
[INFO] [stdout]   --> src/vm/frame/mod.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl CallFrame {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 23 |     /// 创建新的调用帧
[INFO] [stdout] 24 |     pub fn new(function_name: String, return_ip: usize, stack_base: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn get_local_index(&self, name: &str) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `param_count`, `body`, `locals`, and `captures` are never read
[INFO] [stdout]   --> src/vm/function/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Function {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  9 |     /// 函数名
[INFO] [stdout] 10 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 11 |     /// 参数数量
[INFO] [stdout] 12 |     pub param_count: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 13 |     /// 函数体指令
[INFO] [stdout] 14 |     pub body: Vec<Instruction>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 15 |     /// 局部变量名
[INFO] [stdout] 16 |     pub locals: Vec<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 17 |     /// 闭包捕获的变量
[INFO] [stdout] 18 |     pub captures: HashMap<String, TsValue>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Function` 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 `handle_return` is never used
[INFO] [stdout]   --> src/vm/function_ops.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl FunctionOperations {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn handle_return(stack: &mut Vec<TsValue>, return_ip: Option<usize>) -> Result<(TsValue, Option<usize>), TsError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `set_class_body` is never used
[INFO] [stdout]   --> src/vm/function_ops.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl ClassOperations {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn set_class_body(stack: &mut Vec<TsValue>) -> Result<(), TsError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeOperations` is never constructed
[INFO] [stdout]    --> src/vm/function_ops.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct TypeOperations;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `create_type_alias` and `create_interface` are never used
[INFO] [stdout]    --> src/vm/function_ops.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl TypeOperations {
[INFO] [stdout]     | ------------------- associated functions in this implementation
[INFO] [stdout] 104 |     /// 创建类型别名
[INFO] [stdout] 105 |     pub fn create_type_alias(name: &str, stack: &mut Vec<TsValue>) -> Result<(), TsError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn create_interface(name: &str, stack: &mut Vec<TsValue>) -> Result<(), TsError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_pools` and `garbage_collect` are never used
[INFO] [stdout]    --> src/vm/memory.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl MemoryManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn clear_pools(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn garbage_collect(&mut self, stack: &mut Vec<TsValue>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `exports`, and `loaded` are never read
[INFO] [stdout]   --> src/vm/module/mod.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct ModuleInstance {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout]  8 |     /// 模块名
[INFO] [stdout]  9 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 10 |     /// 导出的值
[INFO] [stdout] 11 |     pub exports: HashMap<String, TsValue>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 12 |     /// 是否已加载
[INFO] [stdout] 13 |     pub loaded: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModuleInstance` 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 `new`, `export`, and `get_export` are never used
[INFO] [stdout]   --> src/vm/module/mod.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl ModuleInstance {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 17 |     /// 创建新的模块实例
[INFO] [stdout] 18 |     pub fn new(name: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn export(&mut self, name: &str, value: TsValue) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn get_export(&self, name: &str) -> Option<&TsValue> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModuleOperations` is never constructed
[INFO] [stdout]   --> src/vm/module_ops.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ModuleOperations;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `import_module`, `import_napi_module`, and `export_value` are never used
[INFO] [stdout]   --> src/vm/module_ops.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl ModuleOperations {
[INFO] [stdout]    | --------------------- associated functions in this implementation
[INFO] [stdout] 15 |     /// 导入模块
[INFO] [stdout] 16 |     pub fn import_module(
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn import_napi_module(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn export_value(
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryOperations` is never constructed
[INFO] [stdout]  --> src/vm/operations.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BinaryOperations;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/vm/operations.rs:12:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl BinaryOperations {
[INFO] [stdout]     | --------------------- associated functions in this implementation
[INFO] [stdout]  11 |     /// 执行二元加法
[INFO] [stdout]  12 |     pub fn add(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn sub(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn mul(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn div(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn modulo(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  43 |     pub fn eq(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn neq(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn strict_eq(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn strict_neq(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn gt(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn gte(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn lt(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn lte(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn and(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn or(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn execute(op: &str, left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnaryOperations` is never constructed
[INFO] [stdout]    --> src/vm/operations.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct UnaryOperations;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `type_of` and `execute` are never used
[INFO] [stdout]    --> src/vm/operations.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 125 | impl UnaryOperations {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout] 126 |     /// 获取值的类型字符串
[INFO] [stdout] 127 |     pub fn type_of(value: &TsValue) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn execute(op: &str, value: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/vm/perf/mod.rs:75:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl PerformanceMonitor {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn record_memory_allocation(&mut self, size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn record_memory_deallocation(&mut self, size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn record_gc(&mut self, duration_us: u64) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn update_max_memory_used(&mut self, current_used: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn enable(&mut self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn disable(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn elapsed_us(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn report(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CallFrame` is never constructed
[INFO] [stdout]  --> src/vm/types.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct CallFrame {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_local`, and `set_local` are never used
[INFO] [stdout]   --> src/vm/types.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl CallFrame {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 19 |     /// Creates a new call frame
[INFO] [stdout] 20 |     pub fn new(function_name: String, return_address: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get_local(&self, name: &str) -> Option<&TsValue> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn set_local(&mut self, name: String, value: TsValue) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExceptionHandler` is never constructed
[INFO] [stdout]   --> src/vm/types.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct ExceptionHandler {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModuleInstance` is never constructed
[INFO] [stdout]   --> src/vm/types.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ModuleInstance {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `export` are never used
[INFO] [stdout]   --> src/vm/types.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl ModuleInstance {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 73 |     /// Creates a new module instance
[INFO] [stdout] 74 |     pub fn new(name: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn export(&mut self, name: &str, value: TsValue) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Function` is never constructed
[INFO] [stdout]   --> src/vm/types.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct Function {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Builtins` is never constructed
[INFO] [stdout]   --> src/vm/types.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct Builtins {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/vm/types.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl Builtins {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 103 |     /// Creates new builtins
[INFO] [stdout] 104 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceMonitor` is never constructed
[INFO] [stdout]    --> src/vm/types.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct PerformanceMonitor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `record_instruction`, `record_memory_allocation`, and `record_memory_deallocation` are never used
[INFO] [stdout]    --> src/vm/types.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl PerformanceMonitor {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 119 |     /// Creates a new performance monitor
[INFO] [stdout] 120 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn record_instruction(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn record_memory_allocation(&mut self, _size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn record_memory_deallocation(&mut self, _size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Instruction` is never used
[INFO] [stdout]    --> src/vm/types.rs:142:10
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub enum Instruction {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `modules` is never read
[INFO] [stdout]   --> src/vm/vm.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct VM {
[INFO] [stdout]    |            -- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     modules: HashMap<String, ModuleInstance>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/vm/vm.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl VM {
[INFO] [stdout]     | ------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn execute(&mut self, program: &Program) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn execute_with_jit(&mut self, program: &Program) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     fn get_property(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn set_property(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     fn get_element(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     fn set_element(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     fn create_function(&mut self, name: &str, param_count: u32) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     fn set_function_body(&mut self, _body: &[Instruction]) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 364 |     fn call_function(&mut self, arg_count: u32) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     fn create_class(&mut self, name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     fn add_method(&mut self, _name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     fn set_class_body(&mut self, _body: &[Instruction]) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     fn create_type_alias(&mut self, name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     fn create_interface(&mut self, name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     fn binary_op(&mut self, op: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     fn unary_op(&mut self, op: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     fn jump_if_false(&mut self, offset: i32) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 443 |     fn jump_loop(&mut self, _kind: u8) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     fn try_start(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     fn try_end(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 463 |     fn throw_exception(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 468 |     fn check_exception(&self) -> Option<TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 473 |     fn find_exception_handler(&self, ip: usize) -> Option<ExceptionHandler> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     fn handle_exception(&mut self, exception: TsError, handler: &ExceptionHandler) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     fn import_module(&mut self, name: &str, alias: Option<&str>) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 490 |     fn import_napi_module(&mut self, name: &str, alias: Option<&str>) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     fn export_value(&mut self, name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn performance_report(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     pub fn call_stack_depth(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub fn globals(&self) -> Vec<(String, TsValue)> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn clear_pools(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 520 |     pub fn garbage_collect(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for the crate
[INFO] [stdout]    --> src/lib.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 | / #![warn(missing_docs)]
[INFO] [stdout]   2 | |
[INFO] [stdout]   3 | | use std::rc::Rc;
[INFO] [stdout]   4 | | use typescript_ir::Program;
[INFO] [stdout] ...   |
[INFO] [stdout] 359 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:1:9
[INFO] [stdout]     |
[INFO] [stdout]   1 | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub mod ffi;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub mod language;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/language/mod.rs:1:9
[INFO] [stdout]    |
[INFO] [stdout]  1 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Undefined = 0,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Null = 1,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Boolean = 2,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Number = 3,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     String = 4,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Symbol = 5,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Object = 6,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Function = 7,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     External = 8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     Bigint = 9,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     Ok = 0,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     InvalidArg = 1,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     ObjectExpected = 2,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     StringExpected = 3,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     NameExpected = 4,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     FunctionExpected = 5,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     NumberExpected = 6,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     BooleanExpected = 7,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     ArrayExpected = 8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     GenericFailure = 9,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     PendingException = 10,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     Cancelled = 11,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     EscapeCalledTwice = 12,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     HandleScopeMismatch = 13,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 |     CallbackScopeMismatch = 14,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:97:5
[INFO] [stdout]    |
[INFO] [stdout] 97 |     QueueFull = 15,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     Closing = 16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     BigintExpected = 17,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     DateExpected = 18,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     ArraybufferExpected = 19,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     DetachableArraybufferExpected = 20,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     WouldDeadlock = 21,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     NoExternalBuffersAllowed = 22,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.14s
[INFO] running `Command { std: "docker" "inspect" "3b633c81006e2e025f963a1f4147eab99dca0fb0acbef7c78b37b9a5282feab2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3b633c81006e2e025f963a1f4147eab99dca0fb0acbef7c78b37b9a5282feab2", kill_on_drop: false }`
[INFO] [stdout] 3b633c81006e2e025f963a1f4147eab99dca0fb0acbef7c78b37b9a5282feab2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] f8a93b4c9393716527b2c3914dc8c5e5799adafeee267b83a04df474b8d3fd49
[INFO] running `Command { std: "docker" "start" "-a" "f8a93b4c9393716527b2c3914dc8c5e5799adafeee267b83a04df474b8d3fd49", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `typescript_ir::Program`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use typescript_ir::Program;
[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: `TsError`
[INFO] [stdout]  --> src/codegen/optimizer.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use typescript_types::{TsError, TsValue};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `generate_expression_instructions`, `generate_expression_with_locals`, and `generate_statement_with_locals`
[INFO] [stdout]   --> src/codegen/mod.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     generate_expression_instructions, generate_expression_with_locals, generate_statement_instructions,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     generate_statement_with_locals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `typescript_types::TsError`
[INFO] [stdout]  --> src/compiler/codegen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use typescript_types::TsError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Program` and `TypedProgram`
[INFO] [stdout]  --> src/compiler/context.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use typescript_ir::{Program, TypeAnnotation, TypedProgram};
[INFO] [stdout]   |                     ^^^^^^^                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TsError`
[INFO] [stdout]   --> src/compiler/executor.rs:11:24
[INFO] [stdout]    |
[INFO] [stdout] 11 | use typescript_types::{TsError, TsValue};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `typescript_types::TsError`
[INFO] [stdout]  --> src/compiler/ir_generator.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use typescript_types::TsError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `parallel`
[INFO] [stdout]    --> src/compiler/ir_generator.rs:518:11
[INFO] [stdout]     |
[INFO] [stdout] 518 |     #[cfg(feature = "parallel")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `parallel` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CompilationTask` and `parallel::ParallelCompiler`
[INFO] [stdout]  --> src/compiler/main.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 |     CompilationResult, CompilationStage, CompilationTask, CompilationUnit, Compiler, cache::CompilationCache,
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     codegen::CodeGenerator, context::CompilationContext, executor::Executor, ir_generator::IRGenerator, optimizer::Optimizer,
[INFO] [stdout] 8 |     parallel::ParallelCompiler, semantic::SemanticAnalyzer,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashSet` and `sync::Arc`
[INFO] [stdout]   --> src/compiler/main.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::{collections::HashSet, path::PathBuf, sync::Arc};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TypedProgram`
[INFO] [stdout]  --> src/compiler/optimizer.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 | use typescript_ir::{Program, TypedProgram, optimize_full};
[INFO] [stdout]   |                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `typescript_types::TsError`
[INFO] [stdout]  --> src/compiler/optimizer.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use typescript_types::TsError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/compiler/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/ffi/mod.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | /// 线程本地对象池
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CString`
[INFO] [stdout]  --> src/ffi/napi.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 |     ffi::{CString, c_char, c_void},
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OsStr` and `c_char`
[INFO] [stdout]  --> src/platform/dylib.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 |     ffi::{CStr, CString, OsStr, c_char, c_void},
[INFO] [stdout]   |                          ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/vm/object_ops.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `exception_ops::ExceptionOperations`
[INFO] [stdout]   --> src/vm/mod.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use exception_ops::ExceptionOperations;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExecutionContext` and `InstructionExecutor`
[INFO] [stdout]   --> src/vm/mod.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use executor::{ExecutionContext, InstructionExecutor};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassOperations`, `FunctionOperations`, and `TypeOperations`
[INFO] [stdout]   --> src/vm/mod.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use function_ops::{ClassOperations, FunctionOperations, TypeOperations};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `memory::MemoryManager`
[INFO] [stdout]   --> src/vm/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use memory::MemoryManager;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `module_ops::ModuleOperations`
[INFO] [stdout]   --> src/vm/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub use module_ops::ModuleOperations;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayOperations` and `ObjectOperations`
[INFO] [stdout]   --> src/vm/mod.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub use object_ops::{ArrayOperations, ObjectOperations};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BinaryOperations` and `UnaryOperations`
[INFO] [stdout]   --> src/vm/mod.rs:30:22
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use operations::{BinaryOperations, UnaryOperations};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types::*`
[INFO] [stdout]   --> src/vm/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use types::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loop_end`
[INFO] [stdout]   --> src/codegen/generator.rs:98:21
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 let loop_end = instructions.len() as u32 + 1;
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loop_end`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loop_end`
[INFO] [stdout]    --> src/codegen/generator.rs:240:21
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 let loop_end = instructions.len() as u32 + 1;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loop_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/codegen/generator.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |         _ => Err(TsError::SyntaxError("Unsupported expression type".to_string())),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/codegen/generator.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |         Expression::Literal(value) => {
[INFO] [stdout]     |         -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 321 |         Expression::Identifier(name) => {
[INFO] [stdout]     |         ---------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 325 |         Expression::Binary { left, op, right } => {
[INFO] [stdout]     |         -------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 332 |         Expression::Unary { op, expr } => {
[INFO] [stdout]     |         ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 440 |         _ => Err(TsError::SyntaxError("Unsupported expression type".to_string())),
[INFO] [stdout]     |         ^ ...and 9 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ir`
[INFO] [stdout]   --> src/compiler/codegen.rs:23:32
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn generate(&mut self, ir: &TypedProgram) -> CompilationResult<Vec<u8>> {
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_ir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_name`
[INFO] [stdout]    --> src/compiler/ir_generator.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let type_name = tokens.next()?;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_name`
[INFO] [stdout]    --> src/compiler/ir_generator.rs:210:17
[INFO] [stdout]     |
[INFO] [stdout] 210 |             let type_name = tokens.next()?;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_name`
[INFO] [stdout]    --> src/compiler/ir_generator.rs:308:17
[INFO] [stdout]     |
[INFO] [stdout] 308 |             let type_name = tokens.next()?;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instructions`
[INFO] [stdout]    --> src/compiler/main.rs:107:29
[INFO] [stdout]     |
[INFO] [stdout] 107 |                         let instructions = self.code_generator.generate(&typed_program);
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instructions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ast`
[INFO] [stdout]   --> src/compiler/semantic.rs:23:31
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn analyze(&mut self, ast: &str) -> CompilationResult<CompilationContext> {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_ast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `processed` is assigned to, but never used
[INFO] [stdout]     --> src/gc/collector.rs:1548:13
[INFO] [stdout]      |
[INFO] [stdout] 1548 |         let mut processed = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_processed` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `processed` is never read
[INFO] [stdout]     --> src/gc/collector.rs:1553:17
[INFO] [stdout]      |
[INFO] [stdout] 1553 |                 processed += 1;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/gc/collector.rs:2126:25
[INFO] [stdout]      |
[INFO] [stdout] 2126 |                 *root = unsafe { NonNull::new(new_addr as *mut GcObject).unwrap() };
[INFO] [stdout]      |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/jit/compiler.rs:935:13
[INFO] [stdout]     |
[INFO] [stdout] 935 |         let mut optimizer = JITOptimizer::new(optimization_level.clone());
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/jit/executor.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |             let mut vm = crate::vm::VM::new(vec![]);
[INFO] [stdout]    |                 ----^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vm`
[INFO] [stdout]   --> src/jit/executor.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |             let mut vm = crate::vm::VM::new(vec![]);
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_vm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/jit/optimizer.rs:721:13
[INFO] [stdout]     |
[INFO] [stdout] 721 |         let mut live_variables = self.analyze_liveness(instructions);
[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/memory/mod.rs:346:21
[INFO] [stdout]     |
[INFO] [stdout] 346 |                 let mut current_block = block;
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/type_checker/mod.rs:302:39
[INFO] [stdout]     |
[INFO] [stdout] 302 |         Statement::ClassDeclaration { name, super_class, methods, .. } => {
[INFO] [stdout]     |                                       ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `super_class`
[INFO] [stdout]    --> src/type_checker/mod.rs:302:45
[INFO] [stdout]     |
[INFO] [stdout] 302 |         Statement::ClassDeclaration { name, super_class, methods, .. } => {
[INFO] [stdout]     |                                             ^^^^^^^^^^^ help: try ignoring the field: `super_class: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/type_checker/mod.rs:344:53
[INFO] [stdout]     |
[INFO] [stdout] 344 |                     InterfaceMember::Method { name, params, return_type, optional } => {
[INFO] [stdout]     |                                                     ^^^^^^ help: try ignoring the field: `params: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `object_type`
[INFO] [stdout]    --> src/type_checker/mod.rs:675:17
[INFO] [stdout]     |
[INFO] [stdout] 675 |             let object_type = check_expression(object, env)?;
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_object_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `object_type`
[INFO] [stdout]    --> src/type_checker/mod.rs:691:17
[INFO] [stdout]     |
[INFO] [stdout] 691 |             let object_type = check_expression(object, env)?;
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_object_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `op`
[INFO] [stdout]    --> src/type_checker/mod.rs:725:40
[INFO] [stdout]     |
[INFO] [stdout] 725 |         Expression::Assignment { left, op, right } => {
[INFO] [stdout]     |                                        ^^ help: try ignoring the field: `op: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/vm/builtins/mod.rs:336:57
[INFO] [stdout]     |
[INFO] [stdout] 336 |             set_constructor: TsValue::Function(Rc::new(|args| TsValue::Object(std::collections::HashMap::new()))),
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/vm/builtins/mod.rs:335:57
[INFO] [stdout]     |
[INFO] [stdout] 335 |             map_constructor: TsValue::Function(Rc::new(|args| TsValue::Object(std::collections::HashMap::new()))),
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/vm/perf/mod.rs:75:48
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn record_memory_allocation(&mut self, size: usize) {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/vm/perf/mod.rs:84:50
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn record_memory_deallocation(&mut self, size: usize) {
[INFO] [stdout]    |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/vm/vm.rs:241:40
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 Instruction::AddMethod(name) => {
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/lib.rs:272:45
[INFO] [stdout]     |
[INFO] [stdout] 272 |     pub fn register_ffi_function(&mut self, name: &str, func: Rc<dyn Fn(&[TsValue]) -> TsValue>) {
[INFO] [stdout]     |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]    --> src/lib.rs:272:57
[INFO] [stdout]     |
[INFO] [stdout] 272 |     pub fn register_ffi_function(&mut self, name: &str, func: Rc<dyn Fn(&[TsValue]) -> TsValue>) {
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ffi_manager` and `jit_executor` are never read
[INFO] [stdout]   --> src/lib.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct TypeScript {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     ffi_manager: ffi::FfiManager,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 49 |     /// JIT 执行器
[INFO] [stdout] 50 |     jit_executor: jit::JITExecutor,
[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 `ast_to_ir` is never used
[INFO] [stdout]   --> src/codegen/mod.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn ast_to_ir(program: Program) -> Program {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_statement_with_locals` is never used
[INFO] [stdout]    --> src/codegen/generator.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn generate_statement_with_locals(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_expression_with_locals` is never used
[INFO] [stdout]    --> src/codegen/generator.rs:445:8
[INFO] [stdout]     |
[INFO] [stdout] 445 | pub fn generate_expression_with_locals(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `disk_cache_path` and `enable_disk_cache` are never read
[INFO] [stdout]   --> src/compiler/cache.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct CompilationCache {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     disk_cache_path: Option<PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 52 |     /// 是否启用磁盘缓存
[INFO] [stdout] 53 |     enable_disk_cache: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CompilationCache` 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 `pool` and `max_size` are never read
[INFO] [stdout]  --> src/ffi/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct ObjectPool<T> {
[INFO] [stdout]   |        ---------- fields in this struct
[INFO] [stdout] 8 |     pool: Mutex<Vec<T>>,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 9 |     max_size: usize,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get` and `put` are never used
[INFO] [stdout]   --> src/ffi/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<T> ObjectPool<T> {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get<F>(&self, default: F) -> T
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn put(&self, item: T) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `library` is never read
[INFO] [stdout]   --> src/ffi/napi.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct LoadedNapiModule {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     library: DynamicLibrary,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_promotion_rate` is never read
[INFO] [stdout]    --> src/gc/collector.rs:250:5
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub struct PromotionPolicy {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 250 |     max_promotion_rate: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PromotionPolicy` 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 `work_queues`, `concurrent_mark_thread`, `concurrent_sweep_thread`, `concurrent_mark_done`, and `concurrent_sweep_done` are never read
[INFO] [stdout]    --> src/gc/collector.rs:914:5
[INFO] [stdout]     |
[INFO] [stdout] 900 | pub struct GC {
[INFO] [stdout]     |            -- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 914 |     work_queues: Vec<Arc<WorkStealingQueue>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 942 |     concurrent_mark_thread: Option<thread::JoinHandle<()>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 943 |     /// 并发清除线程
[INFO] [stdout] 944 |     concurrent_sweep_thread: Option<thread::JoinHandle<()>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 945 |     /// 并发标记是否完成
[INFO] [stdout] 946 |     concurrent_mark_done: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 947 |     /// 并发清除是否完成
[INFO] [stdout] 948 |     concurrent_sweep_done: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/gc/collector.rs:1194:8
[INFO] [stdout]      |
[INFO] [stdout]  961 | impl GC {
[INFO] [stdout]      | ------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1194 |     fn free_memory(&mut self, ptr: *mut u8, size: usize) {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1523 |     fn mark_incremental(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1587 |     fn process_object_in_parallel(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1629 |     fn mark_value_references_parallel(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1771 |     fn sweep_incremental(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2013 |     fn compact_incremental(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2279 |     fn process_remembered_set_batch(&mut self, batch_size: usize) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2299 |     fn clean_remembered_set(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2388 |     fn start_concurrent_mark(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2398 |     fn start_concurrent_sweep(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2408 |     fn check_concurrent_status(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2433 |     fn clone(&self) -> Self {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeEnvironment` is never constructed
[INFO] [stdout]  --> src/type_checker/mod.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct TypeEnvironment {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/type_checker/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl TypeEnvironment {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 28 |     /// 创建一个新的类型环境
[INFO] [stdout] 29 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn add_variable(&mut self, name: String, ty: TypeAnnotation) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn add_function(&mut self, name: String, params: Vec<TypeAnnotation>, return_type: Option<TypeAnnotation>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn add_type_alias(&mut self, name: String, ty: TypeAnnotation) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn add_interface(&mut self, name: String, members: Vec<(String, TypeAnnotation, bool)>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn get_variable(&self, name: &str) -> Option<&TypeAnnotation> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     fn get_function(&self, name: &str) -> Option<&(Vec<TypeAnnotation>, Option<TypeAnnotation>)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn get_type_alias(&self, name: &str) -> Option<&TypeAnnotation> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn get_interface(&self, name: &str) -> Option<&Vec<(String, TypeAnnotation, bool)>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn is_compatible(&self, from: &TypeAnnotation, to: &TypeAnnotation) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn resolve_type(&self, ty: &TypeAnnotation) -> TypeAnnotation {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_compatible` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn is_compatible(env: &TypeEnvironment, from: &TypeAnnotation, to: &TypeAnnotation) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub fn check(program: Program) -> Result<Program, TsError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_statement` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:225:4
[INFO] [stdout]     |
[INFO] [stdout] 225 | fn check_statement(statement: &Statement, env: &mut TypeEnvironment) -> Result<(), TsError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_expression` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:414:4
[INFO] [stdout]     |
[INFO] [stdout] 414 | fn check_expression(expr: &Expression, env: &mut TypeEnvironment) -> Result<TypeAnnotation, TsError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_type` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | fn format_type(ty: &TypeAnnotation) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `infer_common_type` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:832:4
[INFO] [stdout]     |
[INFO] [stdout] 832 | fn infer_common_type(env: &TypeEnvironment, types: &[TypeAnnotation]) -> TypeAnnotation {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_common_type` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:849:4
[INFO] [stdout]     |
[INFO] [stdout] 849 | fn find_common_type(env: &TypeEnvironment, a: &TypeAnnotation, b: &TypeAnnotation) -> TypeAnnotation {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_ip`, `end_ip`, `handler_ip`, `exception_var`, `has_finally`, and `finally_ip` are never read
[INFO] [stdout]   --> src/vm/exception/mod.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct ExceptionHandler {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout]  6 |     /// 处理的起始指令位置
[INFO] [stdout]  7 |     pub start_ip: usize,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]  8 |     /// 处理的结束指令位置
[INFO] [stdout]  9 |     pub end_ip: usize,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 10 |     /// 处理器的指令位置
[INFO] [stdout] 11 |     pub handler_ip: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 12 |     /// 异常变量名
[INFO] [stdout] 13 |     pub exception_var: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     /// 是否有 finally 块
[INFO] [stdout] 15 |     pub has_finally: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 16 |     /// finally 块的指令位置
[INFO] [stdout] 17 |     pub finally_ip: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExceptionHandler` 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 functions `try_start`, `find_exception_handler`, and `handle_exception` are never used
[INFO] [stdout]   --> src/vm/exception_ops.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ExceptionOperations {
[INFO] [stdout]    | ------------------------ associated functions in this implementation
[INFO] [stdout] 13 |     /// 开始 try 块
[INFO] [stdout] 14 |     pub fn try_start(
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn find_exception_handler(ip: usize, exception_handlers: &[ExceptionHandler]) -> Option<ExceptionHandler> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn handle_exception(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionContext` is never constructed
[INFO] [stdout]   --> src/vm/executor.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ExecutionContext<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `push_constant` and `execute_instruction` are never used
[INFO] [stdout]    --> src/vm/executor.rs:34:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl InstructionExecutor {
[INFO] [stdout]     | ------------------------ associated functions in this implementation
[INFO] [stdout]  33 |     /// 执行常量压栈指令
[INFO] [stdout]  34 |     pub fn push_constant(stack: &mut Vec<TsValue>, value: TsValue) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn execute_instruction(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `function_name` and `stack_base` are never read
[INFO] [stdout]   --> src/vm/frame/mod.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct CallFrame {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout]  8 |     /// 函数名
[INFO] [stdout]  9 |     pub function_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub stack_base: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CallFrame` 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 `new` and `get_local_index` are never used
[INFO] [stdout]   --> src/vm/frame/mod.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl CallFrame {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 23 |     /// 创建新的调用帧
[INFO] [stdout] 24 |     pub fn new(function_name: String, return_ip: usize, stack_base: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn get_local_index(&self, name: &str) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `param_count`, `body`, `locals`, and `captures` are never read
[INFO] [stdout]   --> src/vm/function/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Function {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  9 |     /// 函数名
[INFO] [stdout] 10 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 11 |     /// 参数数量
[INFO] [stdout] 12 |     pub param_count: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 13 |     /// 函数体指令
[INFO] [stdout] 14 |     pub body: Vec<Instruction>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 15 |     /// 局部变量名
[INFO] [stdout] 16 |     pub locals: Vec<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 17 |     /// 闭包捕获的变量
[INFO] [stdout] 18 |     pub captures: HashMap<String, TsValue>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Function` 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 `handle_return` is never used
[INFO] [stdout]   --> src/vm/function_ops.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl FunctionOperations {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn handle_return(stack: &mut Vec<TsValue>, return_ip: Option<usize>) -> Result<(TsValue, Option<usize>), TsError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `set_class_body` is never used
[INFO] [stdout]   --> src/vm/function_ops.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl ClassOperations {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn set_class_body(stack: &mut Vec<TsValue>) -> Result<(), TsError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeOperations` is never constructed
[INFO] [stdout]    --> src/vm/function_ops.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct TypeOperations;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `create_type_alias` and `create_interface` are never used
[INFO] [stdout]    --> src/vm/function_ops.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl TypeOperations {
[INFO] [stdout]     | ------------------- associated functions in this implementation
[INFO] [stdout] 104 |     /// 创建类型别名
[INFO] [stdout] 105 |     pub fn create_type_alias(name: &str, stack: &mut Vec<TsValue>) -> Result<(), TsError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn create_interface(name: &str, stack: &mut Vec<TsValue>) -> Result<(), TsError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_pools` and `garbage_collect` are never used
[INFO] [stdout]    --> src/vm/memory.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl MemoryManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn clear_pools(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn garbage_collect(&mut self, stack: &mut Vec<TsValue>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `exports`, and `loaded` are never read
[INFO] [stdout]   --> src/vm/module/mod.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct ModuleInstance {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout]  8 |     /// 模块名
[INFO] [stdout]  9 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 10 |     /// 导出的值
[INFO] [stdout] 11 |     pub exports: HashMap<String, TsValue>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 12 |     /// 是否已加载
[INFO] [stdout] 13 |     pub loaded: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModuleInstance` 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 `new`, `export`, and `get_export` are never used
[INFO] [stdout]   --> src/vm/module/mod.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl ModuleInstance {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 17 |     /// 创建新的模块实例
[INFO] [stdout] 18 |     pub fn new(name: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn export(&mut self, name: &str, value: TsValue) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn get_export(&self, name: &str) -> Option<&TsValue> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModuleOperations` is never constructed
[INFO] [stdout]   --> src/vm/module_ops.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ModuleOperations;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `import_module`, `import_napi_module`, and `export_value` are never used
[INFO] [stdout]   --> src/vm/module_ops.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl ModuleOperations {
[INFO] [stdout]    | --------------------- associated functions in this implementation
[INFO] [stdout] 15 |     /// 导入模块
[INFO] [stdout] 16 |     pub fn import_module(
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn import_napi_module(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn export_value(
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryOperations` is never constructed
[INFO] [stdout]  --> src/vm/operations.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BinaryOperations;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/vm/operations.rs:12:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl BinaryOperations {
[INFO] [stdout]     | --------------------- associated functions in this implementation
[INFO] [stdout]  11 |     /// 执行二元加法
[INFO] [stdout]  12 |     pub fn add(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn sub(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn mul(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn div(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn modulo(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  43 |     pub fn eq(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn neq(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn strict_eq(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn strict_neq(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn gt(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn gte(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn lt(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn lte(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn and(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn or(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn execute(op: &str, left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnaryOperations` is never constructed
[INFO] [stdout]    --> src/vm/operations.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct UnaryOperations;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `type_of` and `execute` are never used
[INFO] [stdout]    --> src/vm/operations.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 125 | impl UnaryOperations {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout] 126 |     /// 获取值的类型字符串
[INFO] [stdout] 127 |     pub fn type_of(value: &TsValue) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn execute(op: &str, value: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/vm/perf/mod.rs:75:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl PerformanceMonitor {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn record_memory_allocation(&mut self, size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn record_memory_deallocation(&mut self, size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn record_gc(&mut self, duration_us: u64) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn update_max_memory_used(&mut self, current_used: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn enable(&mut self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn disable(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn elapsed_us(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn report(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CallFrame` is never constructed
[INFO] [stdout]  --> src/vm/types.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct CallFrame {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_local`, and `set_local` are never used
[INFO] [stdout]   --> src/vm/types.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl CallFrame {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 19 |     /// Creates a new call frame
[INFO] [stdout] 20 |     pub fn new(function_name: String, return_address: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get_local(&self, name: &str) -> Option<&TsValue> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn set_local(&mut self, name: String, value: TsValue) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExceptionHandler` is never constructed
[INFO] [stdout]   --> src/vm/types.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct ExceptionHandler {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModuleInstance` is never constructed
[INFO] [stdout]   --> src/vm/types.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ModuleInstance {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `export` are never used
[INFO] [stdout]   --> src/vm/types.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl ModuleInstance {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 73 |     /// Creates a new module instance
[INFO] [stdout] 74 |     pub fn new(name: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn export(&mut self, name: &str, value: TsValue) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Function` is never constructed
[INFO] [stdout]   --> src/vm/types.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct Function {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Builtins` is never constructed
[INFO] [stdout]   --> src/vm/types.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct Builtins {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/vm/types.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl Builtins {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 103 |     /// Creates new builtins
[INFO] [stdout] 104 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceMonitor` is never constructed
[INFO] [stdout]    --> src/vm/types.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct PerformanceMonitor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `record_instruction`, `record_memory_allocation`, and `record_memory_deallocation` are never used
[INFO] [stdout]    --> src/vm/types.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl PerformanceMonitor {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 119 |     /// Creates a new performance monitor
[INFO] [stdout] 120 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn record_instruction(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn record_memory_allocation(&mut self, _size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn record_memory_deallocation(&mut self, _size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Instruction` is never used
[INFO] [stdout]    --> src/vm/types.rs:142:10
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub enum Instruction {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `modules` is never read
[INFO] [stdout]   --> src/vm/vm.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct VM {
[INFO] [stdout]    |            -- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     modules: HashMap<String, ModuleInstance>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/vm/vm.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl VM {
[INFO] [stdout]     | ------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn execute(&mut self, program: &Program) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn execute_with_jit(&mut self, program: &Program) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     fn get_property(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn set_property(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     fn get_element(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     fn set_element(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     fn create_function(&mut self, name: &str, param_count: u32) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     fn set_function_body(&mut self, _body: &[Instruction]) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 364 |     fn call_function(&mut self, arg_count: u32) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     fn create_class(&mut self, name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     fn add_method(&mut self, _name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     fn set_class_body(&mut self, _body: &[Instruction]) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     fn create_type_alias(&mut self, name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     fn create_interface(&mut self, name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     fn binary_op(&mut self, op: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     fn unary_op(&mut self, op: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     fn jump_if_false(&mut self, offset: i32) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 443 |     fn jump_loop(&mut self, _kind: u8) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     fn try_start(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     fn try_end(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 463 |     fn throw_exception(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 468 |     fn check_exception(&self) -> Option<TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 473 |     fn find_exception_handler(&self, ip: usize) -> Option<ExceptionHandler> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     fn handle_exception(&mut self, exception: TsError, handler: &ExceptionHandler) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     fn import_module(&mut self, name: &str, alias: Option<&str>) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 490 |     fn import_napi_module(&mut self, name: &str, alias: Option<&str>) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     fn export_value(&mut self, name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn performance_report(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     pub fn call_stack_depth(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub fn globals(&self) -> Vec<(String, TsValue)> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn clear_pools(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 520 |     pub fn garbage_collect(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for the crate
[INFO] [stdout]    --> src/lib.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 | / #![warn(missing_docs)]
[INFO] [stdout]   2 | |
[INFO] [stdout]   3 | | use std::rc::Rc;
[INFO] [stdout]   4 | | use typescript_ir::Program;
[INFO] [stdout] ...   |
[INFO] [stdout] 359 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:1:9
[INFO] [stdout]     |
[INFO] [stdout]   1 | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub mod ffi;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub mod language;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/language/mod.rs:1:9
[INFO] [stdout]    |
[INFO] [stdout]  1 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Undefined = 0,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Null = 1,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Boolean = 2,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Number = 3,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     String = 4,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Symbol = 5,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Object = 6,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Function = 7,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     External = 8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     Bigint = 9,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     Ok = 0,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     InvalidArg = 1,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     ObjectExpected = 2,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     StringExpected = 3,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     NameExpected = 4,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     FunctionExpected = 5,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     NumberExpected = 6,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     BooleanExpected = 7,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     ArrayExpected = 8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     GenericFailure = 9,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     PendingException = 10,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     Cancelled = 11,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     EscapeCalledTwice = 12,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     HandleScopeMismatch = 13,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 |     CallbackScopeMismatch = 14,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:97:5
[INFO] [stdout]    |
[INFO] [stdout] 97 |     QueueFull = 15,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     Closing = 16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     BigintExpected = 17,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     DateExpected = 18,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     ArraybufferExpected = 19,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     DetachableArraybufferExpected = 20,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     WouldDeadlock = 21,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling typescript v0.0.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     NoExternalBuffersAllowed = 22,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `parser`
[INFO] [stdout]  --> tests/main.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | mod parser;
[INFO] [stdout]   | ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `parser`, create file "tests/parser.rs" or "tests/parser/mod.rs"
[INFO] [stdout]   = note: if there is a `mod parser` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0753]: expected outer doc comment
[INFO] [stdout]   --> tests/performance/jit.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | //! JIT 性能测试
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: inner doc comments like this (starting with `//!` or `/*!`) can only appear before items
[INFO] [stdout] help: you might have meant to write a regular comment
[INFO] [stdout]    |
[INFO] [stdout] 42 - //! JIT 性能测试
[INFO] [stdout] 42 + // JIT 性能测试
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0753]: expected outer doc comment
[INFO] [stdout]   --> tests/performance/jit.rs:43:1
[INFO] [stdout]    |
[INFO] [stdout] 43 | //!
[INFO] [stdout]    | ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: inner doc comments like this (starting with `//!` or `/*!`) can only appear before items
[INFO] [stdout] help: you might have meant to write a regular comment
[INFO] [stdout]    |
[INFO] [stdout] 43 - //!
[INFO] [stdout] 43 + //
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0753]: expected outer doc comment
[INFO] [stdout]   --> tests/performance/jit.rs:44:1
[INFO] [stdout]    |
[INFO] [stdout] 44 | //! 测试 JIT 编译优化的性能效果
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 45 |
[INFO] [stdout] 46 | use std::time::Instant;
[INFO] [stdout]    | ----------------------- the inner doc comment doesn't annotate this `use` import
[INFO] [stdout]    |
[INFO] [stdout] help: to annotate the `use` import, change the doc comment from inner to outer style
[INFO] [stdout]    |
[INFO] [stdout] 44 - //! 测试 JIT 编译优化的性能效果
[INFO] [stdout] 44 + /// 测试 JIT 编译优化的性能效果
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `test_gc_stats` is defined multiple times
[INFO] [stdout]    --> tests/memory/gc.rs:293:1
[INFO] [stdout]     |
[INFO] [stdout]  90 | fn test_gc_stats() {
[INFO] [stdout]     | ------------------ previous definition of the value `test_gc_stats` here
[INFO] [stdout] ...
[INFO] [stdout] 293 | fn test_gc_stats() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ `test_gc_stats` redefined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `test_gc_stats` must be defined only once in the value namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `test_optimization_performance` is defined multiple times
[INFO] [stdout]   --> tests/performance/optimized.rs:92:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn test_optimization_performance() {
[INFO] [stdout]    | ---------------------------------- previous definition of the value `test_optimization_performance` here
[INFO] [stdout] ...
[INFO] [stdout] 92 | fn test_optimization_performance() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `test_optimization_performance` redefined here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `test_optimization_performance` must be defined only once in the value namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `compilers` in `crate`
[INFO] [stdout]  --> tests/runtime/codegen.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::compilers::typescript::TypeScript;
[INFO] [stdout]   |            ^^^^^^^^^ could not find `compilers` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: module `vm` is private
[INFO] [stdout]   --> tests/vm/basic.rs:5:17
[INFO] [stdout]    |
[INFO] [stdout]  5 | use typescript::vm::{Builtins, CallFrame, ModuleInstance, PerformanceMonitor, VM};
[INFO] [stdout]    |                 ^^ private module
[INFO] [stdout]    |
[INFO] [stdout] note: the module `vm` is defined here
[INFO] [stdout]   --> src/lib.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | mod vm;
[INFO] [stdout]    | ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NapiEnv`, `napi_to_ts_value`, and `ts_value_to_napi`
[INFO] [stdout]  --> tests/ffi/module.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |         NapiEnv, NapiExport, NapiFunction, NapiModuleLoader, NapiStatus, NapiValue, check_napi_status, create_napi_error,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout] 8 |         napi_to_ts_value, ts_value_to_napi,
[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: `typescript_types::TsValue`
[INFO] [stdout]  --> tests/performance/benchmark.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use typescript_types::TsValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ir_generator::IRGenerator` and `optimizer::Optimizer`
[INFO] [stdout]   --> tests/performance/optimized.rs:10:28
[INFO] [stdout]    |
[INFO] [stdout] 10 | use typescript::compiler::{ir_generator::IRGenerator, optimizer::Optimizer};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `typescript_types::TsValue`
[INFO] [stdout]   --> tests/performance/optimized.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use typescript_types::TsValue;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `typescript_ir::Program`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use typescript_ir::Program;
[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: `TsError`
[INFO] [stdout]  --> src/codegen/optimizer.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use typescript_types::{TsError, TsValue};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `generate_expression_instructions`, `generate_expression_with_locals`, and `generate_statement_with_locals`
[INFO] [stdout]   --> src/codegen/mod.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     generate_expression_instructions, generate_expression_with_locals, generate_statement_instructions,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     generate_statement_with_locals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `typescript_types::TsError`
[INFO] [stdout]  --> src/compiler/codegen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use typescript_types::TsError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Program` and `TypedProgram`
[INFO] [stdout]  --> src/compiler/context.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use typescript_ir::{Program, TypeAnnotation, TypedProgram};
[INFO] [stdout]   |                     ^^^^^^^                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TsError`
[INFO] [stdout]   --> src/compiler/executor.rs:11:24
[INFO] [stdout]    |
[INFO] [stdout] 11 | use typescript_types::{TsError, TsValue};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `typescript_types::TsError`
[INFO] [stdout]  --> src/compiler/ir_generator.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use typescript_types::TsError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `parallel`
[INFO] [stdout]    --> src/compiler/ir_generator.rs:518:11
[INFO] [stdout]     |
[INFO] [stdout] 518 |     #[cfg(feature = "parallel")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `parallel` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CompilationTask` and `parallel::ParallelCompiler`
[INFO] [stdout]  --> src/compiler/main.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 |     CompilationResult, CompilationStage, CompilationTask, CompilationUnit, Compiler, cache::CompilationCache,
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     codegen::CodeGenerator, context::CompilationContext, executor::Executor, ir_generator::IRGenerator, optimizer::Optimizer,
[INFO] [stdout] 8 |     parallel::ParallelCompiler, semantic::SemanticAnalyzer,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashSet` and `sync::Arc`
[INFO] [stdout]   --> src/compiler/main.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::{collections::HashSet, path::PathBuf, sync::Arc};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TypedProgram`
[INFO] [stdout]  --> src/compiler/optimizer.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 | use typescript_ir::{Program, TypedProgram, optimize_full};
[INFO] [stdout]   |                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `typescript_types::TsError`
[INFO] [stdout]  --> src/compiler/optimizer.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use typescript_types::TsError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/compiler/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/ffi/mod.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | /// 线程本地对象池
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CString`
[INFO] [stdout]  --> src/ffi/napi.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 |     ffi::{CString, c_char, c_void},
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OsStr` and `c_char`
[INFO] [stdout]  --> src/platform/dylib.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 |     ffi::{CStr, CString, OsStr, c_char, c_void},
[INFO] [stdout]   |                          ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/vm/object_ops.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `exception_ops::ExceptionOperations`
[INFO] [stdout]   --> src/vm/mod.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use exception_ops::ExceptionOperations;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExecutionContext` and `InstructionExecutor`
[INFO] [stdout]   --> src/vm/mod.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use executor::{ExecutionContext, InstructionExecutor};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassOperations`, `FunctionOperations`, and `TypeOperations`
[INFO] [stdout]   --> src/vm/mod.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use function_ops::{ClassOperations, FunctionOperations, TypeOperations};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `memory::MemoryManager`
[INFO] [stdout]   --> src/vm/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use memory::MemoryManager;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `module_ops::ModuleOperations`
[INFO] [stdout]   --> src/vm/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub use module_ops::ModuleOperations;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayOperations` and `ObjectOperations`
[INFO] [stdout]   --> src/vm/mod.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub use object_ops::{ArrayOperations, ObjectOperations};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BinaryOperations` and `UnaryOperations`
[INFO] [stdout]   --> src/vm/mod.rs:30:22
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use operations::{BinaryOperations, UnaryOperations};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types::*`
[INFO] [stdout]   --> src/vm/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use types::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `Undefined` found for struct `NapiValue` in the current scope
[INFO] [stdout]    --> tests/ffi/module.rs:152:27
[INFO] [stdout]     |
[INFO] [stdout] 152 |     assert_eq!(NapiValue::Undefined as i32, 0);
[INFO] [stdout]     |                           ^^^^^^^^^ associated function or constant not found in `NapiValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `Null` found for struct `NapiValue` in the current scope
[INFO] [stdout]    --> tests/ffi/module.rs:153:27
[INFO] [stdout]     |
[INFO] [stdout] 153 |     assert_eq!(NapiValue::Null as i32, 1);
[INFO] [stdout]     |                           ^^^^ associated function or constant not found in `NapiValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `Boolean` found for struct `NapiValue` in the current scope
[INFO] [stdout]    --> tests/ffi/module.rs:154:27
[INFO] [stdout]     |
[INFO] [stdout] 154 |     assert_eq!(NapiValue::Boolean as i32, 2);
[INFO] [stdout]     |                           ^^^^^^^ associated function or constant not found in `NapiValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `Number` found for struct `NapiValue` in the current scope
[INFO] [stdout]    --> tests/ffi/module.rs:155:27
[INFO] [stdout]     |
[INFO] [stdout] 155 |     assert_eq!(NapiValue::Number as i32, 3);
[INFO] [stdout]     |                           ^^^^^^ associated function or constant not found in `NapiValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `String` found for struct `NapiValue` in the current scope
[INFO] [stdout]    --> tests/ffi/module.rs:156:27
[INFO] [stdout]     |
[INFO] [stdout] 156 |     assert_eq!(NapiValue::String as i32, 4);
[INFO] [stdout]     |                           ^^^^^^ associated function or constant not found in `NapiValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `Symbol` found for struct `NapiValue` in the current scope
[INFO] [stdout]    --> tests/ffi/module.rs:157:27
[INFO] [stdout]     |
[INFO] [stdout] 157 |     assert_eq!(NapiValue::Symbol as i32, 5);
[INFO] [stdout]     |                           ^^^^^^ associated function or constant not found in `NapiValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `Object` found for struct `NapiValue` in the current scope
[INFO] [stdout]    --> tests/ffi/module.rs:158:27
[INFO] [stdout]     |
[INFO] [stdout] 158 |     assert_eq!(NapiValue::Object as i32, 6);
[INFO] [stdout]     |                           ^^^^^^ associated function or constant not found in `NapiValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `Function` found for struct `NapiValue` in the current scope
[INFO] [stdout]    --> tests/ffi/module.rs:159:27
[INFO] [stdout]     |
[INFO] [stdout] 159 |     assert_eq!(NapiValue::Function as i32, 7);
[INFO] [stdout]     |                           ^^^^^^^^ associated function or constant not found in `NapiValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `External` found for struct `NapiValue` in the current scope
[INFO] [stdout]    --> tests/ffi/module.rs:160:27
[INFO] [stdout]     |
[INFO] [stdout] 160 |     assert_eq!(NapiValue::External as i32, 8);
[INFO] [stdout]     |                           ^^^^^^^^ associated function or constant not found in `NapiValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `Bigint` found for struct `NapiValue` in the current scope
[INFO] [stdout]    --> tests/ffi/module.rs:161:27
[INFO] [stdout]     |
[INFO] [stdout] 161 |     assert_eq!(NapiValue::Bigint as i32, 9);
[INFO] [stdout]     |                           ^^^^^^ associated function or constant not found in `NapiValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: associated function takes 0 generic arguments but 1 generic argument was supplied
[INFO] [stdout]    --> tests/ffi/napi.rs:246:27
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let result = TsValue::to_rust::<bool>(&ts_value);
[INFO] [stdout]     |                           ^^^^^^^-------- help: remove the unnecessary generics
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           expected 0 generic arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here, with 0 generic parameters
[INFO] [stdout]    --> src/ffi/mod.rs:356:8
[INFO] [stdout]     |
[INFO] [stdout] 356 |     fn to_rust(value: &TsValue) -> Result<T, TsError>;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: associated function takes 0 generic arguments but 1 generic argument was supplied
[INFO] [stdout]    --> tests/ffi/napi.rs:319:27
[INFO] [stdout]     |
[INFO] [stdout] 319 |     let result = TsValue::to_rust::<Vec<TsValue>>(&ts_value);
[INFO] [stdout]     |                           ^^^^^^^---------------- help: remove the unnecessary generics
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           expected 0 generic arguments
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here, with 0 generic parameters
[INFO] [stdout]    --> src/ffi/mod.rs:356:8
[INFO] [stdout]     |
[INFO] [stdout] 356 |     fn to_rust(value: &TsValue) -> Result<T, TsError>;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/ffi/napi.rs:333:29
[INFO] [stdout]     |
[INFO] [stdout] 333 |     assert!(TsValue::Object(vec![]).is_object());
[INFO] [stdout]     |             --------------- ^^^^^^ expected `HashMap<String, TsValue>`, found `Vec<_>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `HashMap<std::string::String, TsValue>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/typescript-types-0.0.4/src/lib.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |     Object(HashMap<String, TsValue>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/ffi/napi.rs:356:29
[INFO] [stdout]     |
[INFO] [stdout] 356 |     assert!(TsValue::Object(vec![]).to_boolean());
[INFO] [stdout]     |             --------------- ^^^^^^ expected `HashMap<String, TsValue>`, found `Vec<_>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `HashMap<std::string::String, TsValue>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/typescript-types-0.0.4/src/lib.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |     Object(HashMap<String, TsValue>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/ffi/napi.rs:384:32
[INFO] [stdout]     |
[INFO] [stdout] 384 |     assert_eq!(TsValue::Object(vec![]).to_string(), "[object Object]");
[INFO] [stdout]     |                --------------- ^^^^^^ expected `HashMap<String, TsValue>`, found `Vec<_>`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `HashMap<std::string::String, TsValue>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/typescript-types-0.0.4/src/lib.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |     Object(HashMap<String, TsValue>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/ffi/napi.rs:538:31
[INFO] [stdout]     |
[INFO] [stdout] 538 |       let obj = TsValue::Object(vec![
[INFO] [stdout]     |  _______________---------------_^
[INFO] [stdout]     | |               |
[INFO] [stdout]     | |               arguments to this enum variant are incorrect
[INFO] [stdout] 539 | |         ("name".to_string(), TsValue::String("Alice".to_string())),
[INFO] [stdout] 540 | |         ("age".to_string(), TsValue::Number(30.0)),
[INFO] [stdout] ...   |
[INFO] [stdout] 544 | |         ),
[INFO] [stdout] 545 | |     ]);
[INFO] [stdout]     | |_____^ expected `HashMap<String, TsValue>`, found `Vec<(String, TsValue)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `HashMap<std::string::String, TsValue>`
[INFO] [stdout]                found struct `Vec<(std::string::String, TsValue)>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/typescript-types-0.0.4/src/lib.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |     Object(HashMap<String, TsValue>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> tests/memory/gc.rs:156:19
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let ptr1 = mm.allocate(8).unwrap();
[INFO] [stdout]     |                   ^^^^^^^^---
[INFO] [stdout]     |                           ||
[INFO] [stdout]     |                           |argument #1 of type `TsValue` is missing
[INFO] [stdout]     |                           argument #3 of type `u8` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/gc/memory_manager.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  49 |     pub fn allocate(&mut self, value: TsValue, size: usize, type_id: u8) -> NonNull<GcObject> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 156 -     let ptr1 = mm.allocate(8).unwrap();
[INFO] [stdout] 156 +     let ptr1 = mm.allocate(/* TsValue */, 8, /* u8 */).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `unwrap` found for struct `NonNull<T>` in the current scope
[INFO] [stdout]    --> tests/memory/gc.rs:156:31
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let ptr1 = mm.allocate(8).unwrap();
[INFO] [stdout]     |                               ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `swap` with a similar name, but with different arguments
[INFO] [stdout]    --> /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ptr/non_null.rs:1232:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> tests/memory/gc.rs:157:19
[INFO] [stdout]     |
[INFO] [stdout] 157 |     let ptr2 = mm.allocate(16).unwrap();
[INFO] [stdout]     |                   ^^^^^^^^----
[INFO] [stdout]     |                           ||
[INFO] [stdout]     |                           |argument #1 of type `TsValue` is missing
[INFO] [stdout]     |                           argument #3 of type `u8` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/gc/memory_manager.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  49 |     pub fn allocate(&mut self, value: TsValue, size: usize, type_id: u8) -> NonNull<GcObject> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 157 -     let ptr2 = mm.allocate(16).unwrap();
[INFO] [stdout] 157 +     let ptr2 = mm.allocate(/* TsValue */, 16, /* u8 */).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `unwrap` found for struct `NonNull<T>` in the current scope
[INFO] [stdout]    --> tests/memory/gc.rs:157:32
[INFO] [stdout]     |
[INFO] [stdout] 157 |     let ptr2 = mm.allocate(16).unwrap();
[INFO] [stdout]     |                                ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `swap` with a similar name, but with different arguments
[INFO] [stdout]    --> /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ptr/non_null.rs:1232:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `deallocate` found for struct `MemoryManager` in the current scope
[INFO] [stdout]    --> tests/memory/gc.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 |     mm.deallocate(ptr1, 8);
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `allocate` with a similar name, but with different arguments
[INFO] [stdout]    --> src/gc/memory_manager.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     pub fn allocate(&mut self, value: TsValue, size: usize, type_id: u8) -> NonNull<GcObject> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `deallocate` found for struct `MemoryManager` in the current scope
[INFO] [stdout]    --> tests/memory/gc.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 |     mm.deallocate(ptr2, 16);
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `allocate` with a similar name, but with different arguments
[INFO] [stdout]    --> src/gc/memory_manager.rs:49:5
[INFO] [stdout]     |
[INFO] [stdout]  49 |     pub fn allocate(&mut self, value: TsValue, size: usize, type_id: u8) -> NonNull<GcObject> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> tests/memory/gc.rs:164:19
[INFO] [stdout]     |
[INFO] [stdout] 164 |     let ptr3 = mm.allocate(8).unwrap();
[INFO] [stdout]     |                   ^^^^^^^^---
[INFO] [stdout]     |                           ||
[INFO] [stdout]     |                           |argument #1 of type `TsValue` is missing
[INFO] [stdout]     |                           argument #3 of type `u8` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/gc/memory_manager.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  49 |     pub fn allocate(&mut self, value: TsValue, size: usize, type_id: u8) -> NonNull<GcObject> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 164 -     let ptr3 = mm.allocate(8).unwrap();
[INFO] [stdout] 164 +     let ptr3 = mm.allocate(/* TsValue */, 8, /* u8 */).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `unwrap` found for struct `NonNull<T>` in the current scope
[INFO] [stdout]    --> tests/memory/gc.rs:164:31
[INFO] [stdout]     |
[INFO] [stdout] 164 |     let ptr3 = mm.allocate(8).unwrap();
[INFO] [stdout]     |                               ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `swap` with a similar name, but with different arguments
[INFO] [stdout]    --> /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ptr/non_null.rs:1232:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `Program` has no field named `source_map`
[INFO] [stdout]   --> tests/performance/jit.rs:68:49
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let program = Program { statements: vec![], source_map: None };
[INFO] [stdout]    |                                                 ^^^^^^^^^^ `Program` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `f64` cannot be dereferenced
[INFO] [stdout]   --> tests/vm/basic.rs:39:18
[INFO] [stdout]    |
[INFO] [stdout] 39 |         assert!((*pi - std::f64::consts::PI).abs() < f64::EPSILON);
[INFO] [stdout]    |                  ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `process_webidl` found for struct `typescript::TypeScript` in the current scope
[INFO] [stdout]   --> tests/webidl/basic.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let result = ts.process_webidl(webidl);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^ method not found in `typescript::TypeScript`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_webidl_typescript_definitions` found for struct `typescript::TypeScript` in the current scope
[INFO] [stdout]   --> tests/webidl/basic.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let typescript_defs = ts.get_webidl_typescript_definitions();
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method not found in `typescript::TypeScript`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `TsValue` doesn't implement `std::fmt::Display`
[INFO] [stdout]   --> tests/webidl/basic.rs:60:45
[INFO] [stdout]    |
[INFO] [stdout] 60 |     println!("Script execution result: {}", value);
[INFO] [stdout]    |                                        --   ^^^^^ `TsValue` cannot be formatted with the default formatter
[INFO] [stdout]    |                                        |
[INFO] [stdout]    |                                        required by this formatting parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `std::fmt::Display` is not implemented for `TsValue`
[INFO] [stdout]    = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/runtime/cross_platform.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let mut runtime = create_runtime();
[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] Some errors have detailed explanations: E0061, E0107, E0277, E0308, E0428, E0433, E0560, E0583, E0599...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `typescript` (test "main") due to 37 previous errors; 5 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `loop_end`
[INFO] [stdout]   --> src/codegen/generator.rs:98:21
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 let loop_end = instructions.len() as u32 + 1;
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loop_end`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loop_end`
[INFO] [stdout]    --> src/codegen/generator.rs:240:21
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 let loop_end = instructions.len() as u32 + 1;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loop_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/codegen/generator.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |         _ => Err(TsError::SyntaxError("Unsupported expression type".to_string())),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/codegen/generator.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |         Expression::Literal(value) => {
[INFO] [stdout]     |         -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 321 |         Expression::Identifier(name) => {
[INFO] [stdout]     |         ---------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 325 |         Expression::Binary { left, op, right } => {
[INFO] [stdout]     |         -------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 332 |         Expression::Unary { op, expr } => {
[INFO] [stdout]     |         ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 440 |         _ => Err(TsError::SyntaxError("Unsupported expression type".to_string())),
[INFO] [stdout]     |         ^ ...and 9 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ir`
[INFO] [stdout]   --> src/compiler/codegen.rs:23:32
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn generate(&mut self, ir: &TypedProgram) -> CompilationResult<Vec<u8>> {
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_ir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_name`
[INFO] [stdout]    --> src/compiler/ir_generator.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let type_name = tokens.next()?;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_name`
[INFO] [stdout]    --> src/compiler/ir_generator.rs:210:17
[INFO] [stdout]     |
[INFO] [stdout] 210 |             let type_name = tokens.next()?;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_name`
[INFO] [stdout]    --> src/compiler/ir_generator.rs:308:17
[INFO] [stdout]     |
[INFO] [stdout] 308 |             let type_name = tokens.next()?;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instructions`
[INFO] [stdout]    --> src/compiler/main.rs:107:29
[INFO] [stdout]     |
[INFO] [stdout] 107 |                         let instructions = self.code_generator.generate(&typed_program);
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instructions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ast`
[INFO] [stdout]   --> src/compiler/semantic.rs:23:31
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn analyze(&mut self, ast: &str) -> CompilationResult<CompilationContext> {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_ast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `processed` is assigned to, but never used
[INFO] [stdout]     --> src/gc/collector.rs:1548:13
[INFO] [stdout]      |
[INFO] [stdout] 1548 |         let mut processed = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_processed` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `processed` is never read
[INFO] [stdout]     --> src/gc/collector.rs:1553:17
[INFO] [stdout]      |
[INFO] [stdout] 1553 |                 processed += 1;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/gc/collector.rs:2126:25
[INFO] [stdout]      |
[INFO] [stdout] 2126 |                 *root = unsafe { NonNull::new(new_addr as *mut GcObject).unwrap() };
[INFO] [stdout]      |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/jit/compiler.rs:935:13
[INFO] [stdout]     |
[INFO] [stdout] 935 |         let mut optimizer = JITOptimizer::new(optimization_level.clone());
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/jit/executor.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |             let mut vm = crate::vm::VM::new(vec![]);
[INFO] [stdout]    |                 ----^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vm`
[INFO] [stdout]   --> src/jit/executor.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |             let mut vm = crate::vm::VM::new(vec![]);
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_vm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/jit/optimizer.rs:721:13
[INFO] [stdout]     |
[INFO] [stdout] 721 |         let mut live_variables = self.analyze_liveness(instructions);
[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/memory/mod.rs:346:21
[INFO] [stdout]     |
[INFO] [stdout] 346 |                 let mut current_block = block;
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/type_checker/mod.rs:302:39
[INFO] [stdout]     |
[INFO] [stdout] 302 |         Statement::ClassDeclaration { name, super_class, methods, .. } => {
[INFO] [stdout]     |                                       ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `super_class`
[INFO] [stdout]    --> src/type_checker/mod.rs:302:45
[INFO] [stdout]     |
[INFO] [stdout] 302 |         Statement::ClassDeclaration { name, super_class, methods, .. } => {
[INFO] [stdout]     |                                             ^^^^^^^^^^^ help: try ignoring the field: `super_class: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/type_checker/mod.rs:344:53
[INFO] [stdout]     |
[INFO] [stdout] 344 |                     InterfaceMember::Method { name, params, return_type, optional } => {
[INFO] [stdout]     |                                                     ^^^^^^ help: try ignoring the field: `params: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `object_type`
[INFO] [stdout]    --> src/type_checker/mod.rs:675:17
[INFO] [stdout]     |
[INFO] [stdout] 675 |             let object_type = check_expression(object, env)?;
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_object_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `object_type`
[INFO] [stdout]    --> src/type_checker/mod.rs:691:17
[INFO] [stdout]     |
[INFO] [stdout] 691 |             let object_type = check_expression(object, env)?;
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_object_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `op`
[INFO] [stdout]    --> src/type_checker/mod.rs:725:40
[INFO] [stdout]     |
[INFO] [stdout] 725 |         Expression::Assignment { left, op, right } => {
[INFO] [stdout]     |                                        ^^ help: try ignoring the field: `op: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/vm/builtins/mod.rs:336:57
[INFO] [stdout]     |
[INFO] [stdout] 336 |             set_constructor: TsValue::Function(Rc::new(|args| TsValue::Object(std::collections::HashMap::new()))),
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/vm/builtins/mod.rs:335:57
[INFO] [stdout]     |
[INFO] [stdout] 335 |             map_constructor: TsValue::Function(Rc::new(|args| TsValue::Object(std::collections::HashMap::new()))),
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/vm/perf/mod.rs:75:48
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn record_memory_allocation(&mut self, size: usize) {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/vm/perf/mod.rs:84:50
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn record_memory_deallocation(&mut self, size: usize) {
[INFO] [stdout]    |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/vm/vm.rs:241:40
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 Instruction::AddMethod(name) => {
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/lib.rs:272:45
[INFO] [stdout]     |
[INFO] [stdout] 272 |     pub fn register_ffi_function(&mut self, name: &str, func: Rc<dyn Fn(&[TsValue]) -> TsValue>) {
[INFO] [stdout]     |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]    --> src/lib.rs:272:57
[INFO] [stdout]     |
[INFO] [stdout] 272 |     pub fn register_ffi_function(&mut self, name: &str, func: Rc<dyn Fn(&[TsValue]) -> TsValue>) {
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ffi_manager` and `jit_executor` are never read
[INFO] [stdout]   --> src/lib.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct TypeScript {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     ffi_manager: ffi::FfiManager,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 49 |     /// JIT 执行器
[INFO] [stdout] 50 |     jit_executor: jit::JITExecutor,
[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 `ast_to_ir` is never used
[INFO] [stdout]   --> src/codegen/mod.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn ast_to_ir(program: Program) -> Program {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_statement_with_locals` is never used
[INFO] [stdout]    --> src/codegen/generator.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn generate_statement_with_locals(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_expression_with_locals` is never used
[INFO] [stdout]    --> src/codegen/generator.rs:445:8
[INFO] [stdout]     |
[INFO] [stdout] 445 | pub fn generate_expression_with_locals(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `disk_cache_path` and `enable_disk_cache` are never read
[INFO] [stdout]   --> src/compiler/cache.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct CompilationCache {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     disk_cache_path: Option<PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 52 |     /// 是否启用磁盘缓存
[INFO] [stdout] 53 |     enable_disk_cache: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CompilationCache` 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 `pool` and `max_size` are never read
[INFO] [stdout]  --> src/ffi/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct ObjectPool<T> {
[INFO] [stdout]   |        ---------- fields in this struct
[INFO] [stdout] 8 |     pool: Mutex<Vec<T>>,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 9 |     max_size: usize,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get` and `put` are never used
[INFO] [stdout]   --> src/ffi/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<T> ObjectPool<T> {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get<F>(&self, default: F) -> T
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn put(&self, item: T) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `library` is never read
[INFO] [stdout]   --> src/ffi/napi.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct LoadedNapiModule {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     library: DynamicLibrary,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_promotion_rate` is never read
[INFO] [stdout]    --> src/gc/collector.rs:250:5
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub struct PromotionPolicy {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 250 |     max_promotion_rate: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PromotionPolicy` 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 `work_queues`, `concurrent_mark_thread`, `concurrent_sweep_thread`, `concurrent_mark_done`, and `concurrent_sweep_done` are never read
[INFO] [stdout]    --> src/gc/collector.rs:914:5
[INFO] [stdout]     |
[INFO] [stdout] 900 | pub struct GC {
[INFO] [stdout]     |            -- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 914 |     work_queues: Vec<Arc<WorkStealingQueue>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 942 |     concurrent_mark_thread: Option<thread::JoinHandle<()>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 943 |     /// 并发清除线程
[INFO] [stdout] 944 |     concurrent_sweep_thread: Option<thread::JoinHandle<()>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 945 |     /// 并发标记是否完成
[INFO] [stdout] 946 |     concurrent_mark_done: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 947 |     /// 并发清除是否完成
[INFO] [stdout] 948 |     concurrent_sweep_done: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/gc/collector.rs:1194:8
[INFO] [stdout]      |
[INFO] [stdout]  961 | impl GC {
[INFO] [stdout]      | ------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1194 |     fn free_memory(&mut self, ptr: *mut u8, size: usize) {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1523 |     fn mark_incremental(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1587 |     fn process_object_in_parallel(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1629 |     fn mark_value_references_parallel(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1771 |     fn sweep_incremental(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2013 |     fn compact_incremental(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2279 |     fn process_remembered_set_batch(&mut self, batch_size: usize) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2299 |     fn clean_remembered_set(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2388 |     fn start_concurrent_mark(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2398 |     fn start_concurrent_sweep(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2408 |     fn check_concurrent_status(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2433 |     fn clone(&self) -> Self {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeEnvironment` is never constructed
[INFO] [stdout]  --> src/type_checker/mod.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct TypeEnvironment {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/type_checker/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl TypeEnvironment {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 28 |     /// 创建一个新的类型环境
[INFO] [stdout] 29 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn add_variable(&mut self, name: String, ty: TypeAnnotation) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn add_function(&mut self, name: String, params: Vec<TypeAnnotation>, return_type: Option<TypeAnnotation>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn add_type_alias(&mut self, name: String, ty: TypeAnnotation) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn add_interface(&mut self, name: String, members: Vec<(String, TypeAnnotation, bool)>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn get_variable(&self, name: &str) -> Option<&TypeAnnotation> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     fn get_function(&self, name: &str) -> Option<&(Vec<TypeAnnotation>, Option<TypeAnnotation>)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn get_type_alias(&self, name: &str) -> Option<&TypeAnnotation> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn get_interface(&self, name: &str) -> Option<&Vec<(String, TypeAnnotation, bool)>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn is_compatible(&self, from: &TypeAnnotation, to: &TypeAnnotation) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn resolve_type(&self, ty: &TypeAnnotation) -> TypeAnnotation {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_compatible` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn is_compatible(env: &TypeEnvironment, from: &TypeAnnotation, to: &TypeAnnotation) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub fn check(program: Program) -> Result<Program, TsError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_statement` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:225:4
[INFO] [stdout]     |
[INFO] [stdout] 225 | fn check_statement(statement: &Statement, env: &mut TypeEnvironment) -> Result<(), TsError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_expression` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:414:4
[INFO] [stdout]     |
[INFO] [stdout] 414 | fn check_expression(expr: &Expression, env: &mut TypeEnvironment) -> Result<TypeAnnotation, TsError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_type` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | fn format_type(ty: &TypeAnnotation) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `infer_common_type` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:832:4
[INFO] [stdout]     |
[INFO] [stdout] 832 | fn infer_common_type(env: &TypeEnvironment, types: &[TypeAnnotation]) -> TypeAnnotation {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_common_type` is never used
[INFO] [stdout]    --> src/type_checker/mod.rs:849:4
[INFO] [stdout]     |
[INFO] [stdout] 849 | fn find_common_type(env: &TypeEnvironment, a: &TypeAnnotation, b: &TypeAnnotation) -> TypeAnnotation {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_ip`, `end_ip`, `handler_ip`, `exception_var`, `has_finally`, and `finally_ip` are never read
[INFO] [stdout]   --> src/vm/exception/mod.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct ExceptionHandler {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout]  6 |     /// 处理的起始指令位置
[INFO] [stdout]  7 |     pub start_ip: usize,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]  8 |     /// 处理的结束指令位置
[INFO] [stdout]  9 |     pub end_ip: usize,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 10 |     /// 处理器的指令位置
[INFO] [stdout] 11 |     pub handler_ip: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 12 |     /// 异常变量名
[INFO] [stdout] 13 |     pub exception_var: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     /// 是否有 finally 块
[INFO] [stdout] 15 |     pub has_finally: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 16 |     /// finally 块的指令位置
[INFO] [stdout] 17 |     pub finally_ip: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExceptionHandler` 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 functions `try_start`, `find_exception_handler`, and `handle_exception` are never used
[INFO] [stdout]   --> src/vm/exception_ops.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ExceptionOperations {
[INFO] [stdout]    | ------------------------ associated functions in this implementation
[INFO] [stdout] 13 |     /// 开始 try 块
[INFO] [stdout] 14 |     pub fn try_start(
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn find_exception_handler(ip: usize, exception_handlers: &[ExceptionHandler]) -> Option<ExceptionHandler> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn handle_exception(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionContext` is never constructed
[INFO] [stdout]   --> src/vm/executor.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ExecutionContext<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `push_constant` and `execute_instruction` are never used
[INFO] [stdout]    --> src/vm/executor.rs:34:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl InstructionExecutor {
[INFO] [stdout]     | ------------------------ associated functions in this implementation
[INFO] [stdout]  33 |     /// 执行常量压栈指令
[INFO] [stdout]  34 |     pub fn push_constant(stack: &mut Vec<TsValue>, value: TsValue) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn execute_instruction(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `function_name` and `stack_base` are never read
[INFO] [stdout]   --> src/vm/frame/mod.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct CallFrame {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout]  8 |     /// 函数名
[INFO] [stdout]  9 |     pub function_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub stack_base: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CallFrame` 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 `new` and `get_local_index` are never used
[INFO] [stdout]   --> src/vm/frame/mod.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl CallFrame {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 23 |     /// 创建新的调用帧
[INFO] [stdout] 24 |     pub fn new(function_name: String, return_ip: usize, stack_base: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn get_local_index(&self, name: &str) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `param_count`, `body`, `locals`, and `captures` are never read
[INFO] [stdout]   --> src/vm/function/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Function {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  9 |     /// 函数名
[INFO] [stdout] 10 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 11 |     /// 参数数量
[INFO] [stdout] 12 |     pub param_count: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 13 |     /// 函数体指令
[INFO] [stdout] 14 |     pub body: Vec<Instruction>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 15 |     /// 局部变量名
[INFO] [stdout] 16 |     pub locals: Vec<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 17 |     /// 闭包捕获的变量
[INFO] [stdout] 18 |     pub captures: HashMap<String, TsValue>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Function` 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 `handle_return` is never used
[INFO] [stdout]   --> src/vm/function_ops.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl FunctionOperations {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn handle_return(stack: &mut Vec<TsValue>, return_ip: Option<usize>) -> Result<(TsValue, Option<usize>), TsError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `set_class_body` is never used
[INFO] [stdout]   --> src/vm/function_ops.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl ClassOperations {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn set_class_body(stack: &mut Vec<TsValue>) -> Result<(), TsError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeOperations` is never constructed
[INFO] [stdout]    --> src/vm/function_ops.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct TypeOperations;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `create_type_alias` and `create_interface` are never used
[INFO] [stdout]    --> src/vm/function_ops.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl TypeOperations {
[INFO] [stdout]     | ------------------- associated functions in this implementation
[INFO] [stdout] 104 |     /// 创建类型别名
[INFO] [stdout] 105 |     pub fn create_type_alias(name: &str, stack: &mut Vec<TsValue>) -> Result<(), TsError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn create_interface(name: &str, stack: &mut Vec<TsValue>) -> Result<(), TsError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_pools` and `garbage_collect` are never used
[INFO] [stdout]    --> src/vm/memory.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl MemoryManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn clear_pools(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn garbage_collect(&mut self, stack: &mut Vec<TsValue>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `exports`, and `loaded` are never read
[INFO] [stdout]   --> src/vm/module/mod.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct ModuleInstance {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout]  8 |     /// 模块名
[INFO] [stdout]  9 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 10 |     /// 导出的值
[INFO] [stdout] 11 |     pub exports: HashMap<String, TsValue>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 12 |     /// 是否已加载
[INFO] [stdout] 13 |     pub loaded: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModuleInstance` 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 `new`, `export`, and `get_export` are never used
[INFO] [stdout]   --> src/vm/module/mod.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl ModuleInstance {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 17 |     /// 创建新的模块实例
[INFO] [stdout] 18 |     pub fn new(name: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn export(&mut self, name: &str, value: TsValue) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn get_export(&self, name: &str) -> Option<&TsValue> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModuleOperations` is never constructed
[INFO] [stdout]   --> src/vm/module_ops.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ModuleOperations;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `import_module`, `import_napi_module`, and `export_value` are never used
[INFO] [stdout]   --> src/vm/module_ops.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl ModuleOperations {
[INFO] [stdout]    | --------------------- associated functions in this implementation
[INFO] [stdout] 15 |     /// 导入模块
[INFO] [stdout] 16 |     pub fn import_module(
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn import_napi_module(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn export_value(
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryOperations` is never constructed
[INFO] [stdout]  --> src/vm/operations.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BinaryOperations;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/vm/operations.rs:12:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl BinaryOperations {
[INFO] [stdout]     | --------------------- associated functions in this implementation
[INFO] [stdout]  11 |     /// 执行二元加法
[INFO] [stdout]  12 |     pub fn add(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn sub(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn mul(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn div(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn modulo(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  43 |     pub fn eq(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn neq(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn strict_eq(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn strict_neq(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn gt(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn gte(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn lt(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn lte(left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn and(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn or(left: TsValue, right: TsValue) -> TsValue {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn execute(op: &str, left: TsValue, right: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnaryOperations` is never constructed
[INFO] [stdout]    --> src/vm/operations.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct UnaryOperations;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `type_of` and `execute` are never used
[INFO] [stdout]    --> src/vm/operations.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 125 | impl UnaryOperations {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout] 126 |     /// 获取值的类型字符串
[INFO] [stdout] 127 |     pub fn type_of(value: &TsValue) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn execute(op: &str, value: TsValue) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/vm/perf/mod.rs:75:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl PerformanceMonitor {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn record_memory_allocation(&mut self, size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn record_memory_deallocation(&mut self, size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn record_gc(&mut self, duration_us: u64) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn update_max_memory_used(&mut self, current_used: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn enable(&mut self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn disable(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn elapsed_us(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn report(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CallFrame` is never constructed
[INFO] [stdout]  --> src/vm/types.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct CallFrame {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_local`, and `set_local` are never used
[INFO] [stdout]   --> src/vm/types.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl CallFrame {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 19 |     /// Creates a new call frame
[INFO] [stdout] 20 |     pub fn new(function_name: String, return_address: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get_local(&self, name: &str) -> Option<&TsValue> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn set_local(&mut self, name: String, value: TsValue) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExceptionHandler` is never constructed
[INFO] [stdout]   --> src/vm/types.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct ExceptionHandler {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModuleInstance` is never constructed
[INFO] [stdout]   --> src/vm/types.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ModuleInstance {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `export` are never used
[INFO] [stdout]   --> src/vm/types.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl ModuleInstance {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 73 |     /// Creates a new module instance
[INFO] [stdout] 74 |     pub fn new(name: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn export(&mut self, name: &str, value: TsValue) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Function` is never constructed
[INFO] [stdout]   --> src/vm/types.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct Function {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Builtins` is never constructed
[INFO] [stdout]   --> src/vm/types.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct Builtins {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/vm/types.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl Builtins {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 103 |     /// Creates new builtins
[INFO] [stdout] 104 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceMonitor` is never constructed
[INFO] [stdout]    --> src/vm/types.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct PerformanceMonitor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `record_instruction`, `record_memory_allocation`, and `record_memory_deallocation` are never used
[INFO] [stdout]    --> src/vm/types.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl PerformanceMonitor {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 119 |     /// Creates a new performance monitor
[INFO] [stdout] 120 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn record_instruction(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn record_memory_allocation(&mut self, _size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn record_memory_deallocation(&mut self, _size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Instruction` is never used
[INFO] [stdout]    --> src/vm/types.rs:142:10
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub enum Instruction {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `modules` is never read
[INFO] [stdout]   --> src/vm/vm.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct VM {
[INFO] [stdout]    |            -- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     modules: HashMap<String, ModuleInstance>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/vm/vm.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl VM {
[INFO] [stdout]     | ------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn execute(&mut self, program: &Program) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn execute_with_jit(&mut self, program: &Program) -> Result<TsValue, TsError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     fn get_property(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn set_property(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     fn get_element(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     fn set_element(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     fn create_function(&mut self, name: &str, param_count: u32) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     fn set_function_body(&mut self, _body: &[Instruction]) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 364 |     fn call_function(&mut self, arg_count: u32) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     fn create_class(&mut self, name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     fn add_method(&mut self, _name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     fn set_class_body(&mut self, _body: &[Instruction]) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     fn create_type_alias(&mut self, name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     fn create_interface(&mut self, name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     fn binary_op(&mut self, op: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     fn unary_op(&mut self, op: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     fn jump_if_false(&mut self, offset: i32) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 443 |     fn jump_loop(&mut self, _kind: u8) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     fn try_start(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     fn try_end(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 463 |     fn throw_exception(&mut self) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 468 |     fn check_exception(&self) -> Option<TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 473 |     fn find_exception_handler(&self, ip: usize) -> Option<ExceptionHandler> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     fn handle_exception(&mut self, exception: TsError, handler: &ExceptionHandler) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     fn import_module(&mut self, name: &str, alias: Option<&str>) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 490 |     fn import_napi_module(&mut self, name: &str, alias: Option<&str>) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     fn export_value(&mut self, name: &str) -> Result<(), TsError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn performance_report(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     pub fn call_stack_depth(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub fn globals(&self) -> Vec<(String, TsValue)> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn clear_pools(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 520 |     pub fn garbage_collect(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for the crate
[INFO] [stdout]    --> src/lib.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 | / #![warn(missing_docs)]
[INFO] [stdout]   2 | |
[INFO] [stdout]   3 | | use std::rc::Rc;
[INFO] [stdout]   4 | | use typescript_ir::Program;
[INFO] [stdout] ...   |
[INFO] [stdout] 359 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:1:9
[INFO] [stdout]     |
[INFO] [stdout]   1 | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub mod ffi;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub mod language;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/language/mod.rs:1:9
[INFO] [stdout]    |
[INFO] [stdout]  1 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Undefined = 0,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Null = 1,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Boolean = 2,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Number = 3,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     String = 4,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Symbol = 5,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Object = 6,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Function = 7,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     External = 8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     Bigint = 9,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     Ok = 0,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     InvalidArg = 1,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     ObjectExpected = 2,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     StringExpected = 3,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     NameExpected = 4,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     FunctionExpected = 5,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     NumberExpected = 6,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     BooleanExpected = 7,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     ArrayExpected = 8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     GenericFailure = 9,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     PendingException = 10,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     Cancelled = 11,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     EscapeCalledTwice = 12,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     HandleScopeMismatch = 13,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 |     CallbackScopeMismatch = 14,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:97:5
[INFO] [stdout]    |
[INFO] [stdout] 97 |     QueueFull = 15,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     Closing = 16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ffi/napi.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     BigintExpected = 17,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     DateExpected = 18,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     ArraybufferExpected = 19,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     DetachableArraybufferExpected = 20,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     WouldDeadlock = 21,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/ffi/napi.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     NoExternalBuffersAllowed = 22,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "f8a93b4c9393716527b2c3914dc8c5e5799adafeee267b83a04df474b8d3fd49", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f8a93b4c9393716527b2c3914dc8c5e5799adafeee267b83a04df474b8d3fd49", kill_on_drop: false }`
[INFO] [stdout] f8a93b4c9393716527b2c3914dc8c5e5799adafeee267b83a04df474b8d3fd49
