[INFO] cloning repository https://github.com/kai-nobutou/crafting_interpreter_rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kai-nobutou/crafting_interpreter_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkai-nobutou%2Fcrafting_interpreter_rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkai-nobutou%2Fcrafting_interpreter_rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fe7b5e99ce6c6b9c16efee5c0200c202f4ddd1c6
[INFO] testing kai-nobutou/crafting_interpreter_rust against 1.98.0-beta.8+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkai-nobutou%2Fcrafting_interpreter_rust" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kai-nobutou/crafting_interpreter_rust
[INFO] finished tweaking git repo https://github.com/kai-nobutou/crafting_interpreter_rust
[INFO] tweaked toml for git repo https://github.com/kai-nobutou/crafting_interpreter_rust written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kai-nobutou/crafting_interpreter_rust on toolchain 1.98.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kai-nobutou/crafting_interpreter_rust 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" "+1.98.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 4 packages to latest compatible versions
[INFO] [stderr]       Adding termcolor v1.4.1
[INFO] [stderr]       Adding winapi-util v0.1.11
[INFO] [stderr]       Adding windows-link v0.2.1
[INFO] [stderr]       Adding windows-sys v0.61.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a
[INFO] running `Command { std: "docker" "start" "bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling crafting_interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]   --> src/lox/evaluator.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 |         if let Some(parent) = &mut self.enclosing {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/lox/evaluator.rs:40:18
[INFO] [stdout]    |
[INFO] [stdout] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/lox/evaluator.rs:40:23
[INFO] [stdout]    |
[INFO] [stdout] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lox/evaluator.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 245 | ...                   EvalResult::Error(err) => {
[INFO] [stdout]     |                       ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 248 | ...                   EvalResult::Return(_) => continue,
[INFO] [stdout]     |                       --------------------- matches some of the same values
[INFO] [stdout] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:279:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |                 Err(err) => EvalResult::Error(err),
[INFO] [stdout]     |                 -------- matches all the relevant values
[INFO] [stdout] 279 |                 Err(err) => EvalResult::Error(err),
[INFO] [stdout]     |                 ^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/lox/evaluator.rs:181:20
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 Ok(value) => EvalResult::Return(Value::Nil),
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lox/evaluator.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |                 EvalResult::Return(Value::Return(inner_value)) => {
[INFO] [stdout]     |                 ---------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 506 |                 EvalResult::Return(value) => {
[INFO] [stdout]     |                 ------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 509 |                 EvalResult::Error(err) => {
[INFO] [stdout]     |                 ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 513 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lox/parser.rs:381:13
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let mut expr = self.equality()?;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keyword`
[INFO] [stdout]    --> src/lox/printer.rs:404:32
[INFO] [stdout]     |
[INFO] [stdout] 404 |     fn visit_return(&mut self, keyword: &Token, value: &Option<Expr>) -> String {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keyword`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/lox/evaluator.rs:89:20
[INFO] [stdout]    |
[INFO] [stdout] 69 | #[derive(Debug, Clone, PartialEq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 89 |     NativeFunction(fn(Vec<Value>) -> Value),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crafting_interpreter::vm::ast_node::ASTNode`
[INFO] [stdout]  --> src/vm_main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crafting_interpreter::vm::ast_node::ASTNode;
[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 variable: `parent`
[INFO] [stdout]   --> src/lox/evaluator.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 |         if let Some(parent) = &mut self.enclosing {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/lox/evaluator.rs:40:18
[INFO] [stdout]    |
[INFO] [stdout] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/lox/evaluator.rs:40:23
[INFO] [stdout]    |
[INFO] [stdout] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lox/evaluator.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 245 | ...                   EvalResult::Error(err) => {
[INFO] [stdout]     |                       ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 248 | ...                   EvalResult::Return(_) => continue,
[INFO] [stdout]     |                       --------------------- matches some of the same values
[INFO] [stdout] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:279:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |                 Err(err) => EvalResult::Error(err),
[INFO] [stdout]     |                 -------- matches all the relevant values
[INFO] [stdout] 279 |                 Err(err) => EvalResult::Error(err),
[INFO] [stdout]     |                 ^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/lox/evaluator.rs:181:20
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 Ok(value) => EvalResult::Return(Value::Nil),
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lox/evaluator.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |                 EvalResult::Return(Value::Return(inner_value)) => {
[INFO] [stdout]     |                 ---------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 506 |                 EvalResult::Return(value) => {
[INFO] [stdout]     |                 ------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 509 |                 EvalResult::Error(err) => {
[INFO] [stdout]     |                 ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 513 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lox/parser.rs:381:13
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let mut expr = self.equality()?;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keyword`
[INFO] [stdout]    --> src/lox/printer.rs:404:32
[INFO] [stdout]     |
[INFO] [stdout] 404 |     fn visit_return(&mut self, keyword: &Token, value: &Option<Expr>) -> String {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keyword`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Get` and `Set` are never constructed
[INFO] [stdout]   --> src/lox/ast.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 33 |     Get {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     Set {
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `For`, `Class`, `Call`, and `Assign` are never constructed
[INFO] [stdout]   --> src/lox/ast.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum Stmt {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 54 |     For {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     Class {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     Call {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     Assign {
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `accept` is never used
[INFO] [stdout]   --> src/lox/ast.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl Expr {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 89 |     pub fn accept<R>(&self, visitor: &mut dyn Visitor<R>) -> R {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `accept` is never used
[INFO] [stdout]    --> src/lox/ast.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl Stmt {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 113 |     pub fn accept<R>(&self, visitor: &mut dyn Visitor<R>) -> R {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DuplicateParameterName` and `RuntimeError` are never constructed
[INFO] [stdout]   --> src/lox/error.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum LoxError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 65 |     DuplicateParameterName(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     RuntimeError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LoxError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Class` and `Instance` are never constructed
[INFO] [stdout]   --> src/lox/evaluator.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum Value {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 81 |     Class {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     Instance {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` 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: trait `Visitor` is never used
[INFO] [stdout]   --> src/lox/printer.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Visitor<R> {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AstPrinter` is never constructed
[INFO] [stdout]   --> src/lox/printer.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct AstPrinter;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]   --> src/lox/printer.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl AstPrinter {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn print(&mut self, expr: &Expr) -> String {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Nil`, `Function`, and `Return` are never constructed
[INFO] [stdout]    --> src/lox/token_type.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub enum LiteralValue {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 108 |     Nil,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 109 |     /// ユーザー定義関数
[INFO] [stdout] 110 |     Function {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     Return(Box<LiteralValue>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LiteralValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_number` is never used
[INFO] [stdout]    --> src/lox/token_type.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl LiteralValue {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn as_number(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/lox/evaluator.rs:89:20
[INFO] [stdout]    |
[INFO] [stdout] 69 | #[derive(Debug, Clone, PartialEq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 89 |     NativeFunction(fn(Vec<Value>) -> Value),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 5.93s
[INFO] running `Command { std: "docker" "inspect" "bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]   --> src/lox/evaluator.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 |         if let Some(parent) = &mut self.enclosing {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling crafting_interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/lox/evaluator.rs:40:18
[INFO] [stdout]    |
[INFO] [stdout] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/lox/evaluator.rs:40:23
[INFO] [stdout]    |
[INFO] [stdout] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lox/evaluator.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 245 | ...                   EvalResult::Error(err) => {
[INFO] [stdout]     |                       ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 248 | ...                   EvalResult::Return(_) => continue,
[INFO] [stdout]     |                       --------------------- matches some of the same values
[INFO] [stdout] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:279:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |                 Err(err) => EvalResult::Error(err),
[INFO] [stdout]     |                 -------- matches all the relevant values
[INFO] [stdout] 279 |                 Err(err) => EvalResult::Error(err),
[INFO] [stdout]     |                 ^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/lox/evaluator.rs:181:20
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 Ok(value) => EvalResult::Return(Value::Nil),
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lox/evaluator.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |                 EvalResult::Return(Value::Return(inner_value)) => {
[INFO] [stdout]     |                 ---------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 506 |                 EvalResult::Return(value) => {
[INFO] [stdout]     |                 ------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 509 |                 EvalResult::Error(err) => {
[INFO] [stdout]     |                 ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 513 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lox/parser.rs:381:13
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let mut expr = self.equality()?;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keyword`
[INFO] [stdout]    --> src/lox/printer.rs:404:32
[INFO] [stdout]     |
[INFO] [stdout] 404 |     fn visit_return(&mut self, keyword: &Token, value: &Option<Expr>) -> String {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keyword`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/lox/evaluator.rs:89:20
[INFO] [stdout]    |
[INFO] [stdout] 69 | #[derive(Debug, Clone, PartialEq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 89 |     NativeFunction(fn(Vec<Value>) -> Value),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]   --> src/lox/evaluator.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 |         if let Some(parent) = &mut self.enclosing {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/lox/evaluator.rs:40:18
[INFO] [stdout]    |
[INFO] [stdout] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/lox/evaluator.rs:40:23
[INFO] [stdout]    |
[INFO] [stdout] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lox/evaluator.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 245 | ...                   EvalResult::Error(err) => {
[INFO] [stdout]     |                       ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 248 | ...                   EvalResult::Return(_) => continue,
[INFO] [stdout]     |                       --------------------- matches some of the same values
[INFO] [stdout] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:279:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |                 Err(err) => EvalResult::Error(err),
[INFO] [stdout]     |                 -------- matches all the relevant values
[INFO] [stdout] 279 |                 Err(err) => EvalResult::Error(err),
[INFO] [stdout]     |                 ^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/lox/evaluator.rs:181:20
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 Ok(value) => EvalResult::Return(Value::Nil),
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lox/evaluator.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |                 EvalResult::Return(Value::Return(inner_value)) => {
[INFO] [stdout]     |                 ---------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 506 |                 EvalResult::Return(value) => {
[INFO] [stdout]     |                 ------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 509 |                 EvalResult::Error(err) => {
[INFO] [stdout]     |                 ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 513 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lox/parser.rs:381:13
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let mut expr = self.equality()?;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keyword`
[INFO] [stdout]    --> src/lox/printer.rs:404:32
[INFO] [stdout]     |
[INFO] [stdout] 404 |     fn visit_return(&mut self, keyword: &Token, value: &Option<Expr>) -> String {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keyword`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Get` and `Set` are never constructed
[INFO] [stdout]   --> src/lox/ast.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 33 |     Get {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     Set {
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `For`, `Class`, `Call`, and `Assign` are never constructed
[INFO] [stdout]   --> src/lox/ast.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum Stmt {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 54 |     For {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     Class {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     Call {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     Assign {
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `accept` is never used
[INFO] [stdout]   --> src/lox/ast.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl Expr {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 89 |     pub fn accept<R>(&self, visitor: &mut dyn Visitor<R>) -> R {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `accept` is never used
[INFO] [stdout]    --> src/lox/ast.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl Stmt {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 113 |     pub fn accept<R>(&self, visitor: &mut dyn Visitor<R>) -> R {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DuplicateParameterName` and `RuntimeError` are never constructed
[INFO] [stdout]   --> src/lox/error.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum LoxError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 65 |     DuplicateParameterName(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     RuntimeError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LoxError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Class` and `Instance` are never constructed
[INFO] [stdout]   --> src/lox/evaluator.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum Value {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 81 |     Class {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     Instance {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` 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: trait `Visitor` is never used
[INFO] [stdout]   --> src/lox/printer.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Visitor<R> {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AstPrinter` is never constructed
[INFO] [stdout]   --> src/lox/printer.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct AstPrinter;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]   --> src/lox/printer.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl AstPrinter {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn print(&mut self, expr: &Expr) -> String {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Nil`, `Function`, and `Return` are never constructed
[INFO] [stdout]    --> src/lox/token_type.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub enum LiteralValue {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 108 |     Nil,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 109 |     /// ユーザー定義関数
[INFO] [stdout] 110 |     Function {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     Return(Box<LiteralValue>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LiteralValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_number` is never used
[INFO] [stdout]    --> src/lox/token_type.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl LiteralValue {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn as_number(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/lox/evaluator.rs:89:20
[INFO] [stdout]    |
[INFO] [stdout] 69 | #[derive(Debug, Clone, PartialEq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 89 |     NativeFunction(fn(Vec<Value>) -> Value),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crafting_interpreter::vm::ast_node::ASTNode`
[INFO] [stdout]  --> src/vm_main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crafting_interpreter::vm::ast_node::ASTNode;
[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: `crafting_interpreter::vm::ast_node::ASTNode`
[INFO] [stdout]  --> src/vm_main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crafting_interpreter::vm::ast_node::ASTNode;
[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 imports: `Debug` and `self`
[INFO] [stdout]  --> tests/test.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use std::fmt::{self, Debug};
[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 imports: `Chunk` and `OpCode`
[INFO] [stdout]    --> src/vm/compiler.rs:151:28
[INFO] [stdout]     |
[INFO] [stdout] 151 |     use crate::vm::chunk::{Chunk, OpCode, Constant};
[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: `UnaryOperator`
[INFO] [stdout]    --> src/vm/compiler.rs:152:56
[INFO] [stdout]     |
[INFO] [stdout] 152 |     use crate::vm::ast_node::{ASTNode, BinaryOperator, UnaryOperator};
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]   --> src/lox/evaluator.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 |         if let Some(parent) = &mut self.enclosing {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/lox/evaluator.rs:40:18
[INFO] [stdout]    |
[INFO] [stdout] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/lox/evaluator.rs:40:23
[INFO] [stdout]    |
[INFO] [stdout] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lox/evaluator.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 245 | ...                   EvalResult::Error(err) => {
[INFO] [stdout]     |                       ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 248 | ...                   EvalResult::Return(_) => continue,
[INFO] [stdout]     |                       --------------------- matches some of the same values
[INFO] [stdout] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:279:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |                 Err(err) => EvalResult::Error(err),
[INFO] [stdout]     |                 -------- matches all the relevant values
[INFO] [stdout] 279 |                 Err(err) => EvalResult::Error(err),
[INFO] [stdout]     |                 ^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/lox/evaluator.rs:181:20
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 Ok(value) => EvalResult::Return(Value::Nil),
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lox/evaluator.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |                 EvalResult::Return(Value::Return(inner_value)) => {
[INFO] [stdout]     |                 ---------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 506 |                 EvalResult::Return(value) => {
[INFO] [stdout]     |                 ------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 509 |                 EvalResult::Error(err) => {
[INFO] [stdout]     |                 ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 513 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lox/parser.rs:381:13
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let mut expr = self.equality()?;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]   --> src/lox/evaluator.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 |         if let Some(parent) = &mut self.enclosing {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/lox/evaluator.rs:40:18
[INFO] [stdout]    |
[INFO] [stdout] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/lox/evaluator.rs:40:23
[INFO] [stdout]    |
[INFO] [stdout] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keyword`
[INFO] [stdout]    --> src/lox/printer.rs:404:32
[INFO] [stdout]     |
[INFO] [stdout] 404 |     fn visit_return(&mut self, keyword: &Token, value: &Option<Expr>) -> String {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keyword`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lox/evaluator.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 245 | ...                   EvalResult::Error(err) => {
[INFO] [stdout]     |                       ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 248 | ...                   EvalResult::Return(_) => continue,
[INFO] [stdout]     |                       --------------------- matches some of the same values
[INFO] [stdout] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:279:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |                 Err(err) => EvalResult::Error(err),
[INFO] [stdout]     |                 -------- matches all the relevant values
[INFO] [stdout] 279 |                 Err(err) => EvalResult::Error(err),
[INFO] [stdout]     |                 ^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/lox/evaluator.rs:181:20
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 Ok(value) => EvalResult::Return(Value::Nil),
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lox/evaluator.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lox/evaluator.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |                 EvalResult::Return(Value::Return(inner_value)) => {
[INFO] [stdout]     |                 ---------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 506 |                 EvalResult::Return(value) => {
[INFO] [stdout]     |                 ------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 509 |                 EvalResult::Error(err) => {
[INFO] [stdout]     |                 ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 513 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Get` and `Set` are never constructed
[INFO] [stdout]   --> src/lox/ast.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 33 |     Get {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     Set {
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `For`, `Class`, `Call`, and `Assign` are never constructed
[INFO] [stdout]   --> src/lox/ast.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum Stmt {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 54 |     For {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     Class {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     Call {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     Assign {
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `accept` is never used
[INFO] [stdout]   --> src/lox/ast.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl Expr {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 89 |     pub fn accept<R>(&self, visitor: &mut dyn Visitor<R>) -> R {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `accept` is never used
[INFO] [stdout]    --> src/lox/ast.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl Stmt {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 113 |     pub fn accept<R>(&self, visitor: &mut dyn Visitor<R>) -> R {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DuplicateParameterName` and `RuntimeError` are never constructed
[INFO] [stdout]   --> src/lox/error.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum LoxError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 65 |     DuplicateParameterName(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     RuntimeError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LoxError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Class` and `Instance` are never constructed
[INFO] [stdout]   --> src/lox/evaluator.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum Value {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 81 |     Class {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     Instance {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` 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: trait `Visitor` is never used
[INFO] [stdout]   --> src/lox/printer.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Visitor<R> {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AstPrinter` is never constructed
[INFO] [stdout]   --> src/lox/printer.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct AstPrinter;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]   --> src/lox/printer.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl AstPrinter {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn print(&mut self, expr: &Expr) -> String {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Nil`, `Function`, and `Return` are never constructed
[INFO] [stdout]    --> src/lox/token_type.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub enum LiteralValue {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 108 |     Nil,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 109 |     /// ユーザー定義関数
[INFO] [stdout] 110 |     Function {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     Return(Box<LiteralValue>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LiteralValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_number` is never used
[INFO] [stdout]    --> src/lox/token_type.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl LiteralValue {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn as_number(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lox/parser.rs:381:13
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let mut expr = self.equality()?;
[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: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/lox/evaluator.rs:89:20
[INFO] [stdout]    |
[INFO] [stdout] 69 | #[derive(Debug, Clone, PartialEq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 89 |     NativeFunction(fn(Vec<Value>) -> Value),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keyword`
[INFO] [stdout]    --> src/lox/printer.rs:404:32
[INFO] [stdout]     |
[INFO] [stdout] 404 |     fn visit_return(&mut self, keyword: &Token, value: &Option<Expr>) -> String {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keyword`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/lox/evaluator.rs:89:20
[INFO] [stdout]    |
[INFO] [stdout] 69 | #[derive(Debug, Clone, PartialEq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 89 |     NativeFunction(fn(Vec<Value>) -> Value),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1.54s
[INFO] running `Command { std: "docker" "inspect" "bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `parent`
[INFO] [stderr]   --> src/lox/evaluator.rs:38:21
[INFO] [stderr]    |
[INFO] [stderr] 38 |         if let Some(parent) = &mut self.enclosing {
[INFO] [stderr]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]   --> src/lox/evaluator.rs:40:18
[INFO] [stderr]    |
[INFO] [stderr] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stderr]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `value`
[INFO] [stderr]   --> src/lox/evaluator.rs:40:23
[INFO] [stderr]    |
[INFO] [stderr] 40 |             for (key, value) in self.values.iter() {}
[INFO] [stderr]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/lox/evaluator.rs:249:29
[INFO] [stderr]     |
[INFO] [stderr] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stderr]     |                       ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/lox/evaluator.rs:249:29
[INFO] [stderr]     |
[INFO] [stderr] 245 | ...                   EvalResult::Error(err) => {
[INFO] [stderr]     |                       ---------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 248 | ...                   EvalResult::Return(_) => continue,
[INFO] [stderr]     |                       --------------------- matches some of the same values
[INFO] [stderr] 249 | ...                   _ => println!("Body executed successfully, continuing loop."),
[INFO] [stderr]     |                       ^ collectively making this unreachable
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/lox/evaluator.rs:279:17
[INFO] [stderr]     |
[INFO] [stderr] 278 |                 Err(err) => EvalResult::Error(err),
[INFO] [stderr]     |                 -------- matches all the relevant values
[INFO] [stderr] 279 |                 Err(err) => EvalResult::Error(err),
[INFO] [stderr]     |                 ^^^^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `value`
[INFO] [stderr]    --> src/lox/evaluator.rs:181:20
[INFO] [stderr]     |
[INFO] [stderr] 181 |                 Ok(value) => EvalResult::Return(Value::Nil),
[INFO] [stderr]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/lox/evaluator.rs:513:17
[INFO] [stderr]     |
[INFO] [stderr] 513 |                 _ => {}
[INFO] [stderr]     |                 ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/lox/evaluator.rs:513:17
[INFO] [stderr]     |
[INFO] [stderr] 502 |                 EvalResult::Return(Value::Return(inner_value)) => {
[INFO] [stderr]     |                 ---------------------------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 506 |                 EvalResult::Return(value) => {
[INFO] [stderr]     |                 ------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 509 |                 EvalResult::Error(err) => {
[INFO] [stderr]     |                 ---------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 513 |                 _ => {}
[INFO] [stderr]     |                 ^ collectively making this unreachable
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lox/parser.rs:381:13
[INFO] [stderr]     |
[INFO] [stderr] 381 |         let mut expr = self.equality()?;
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `keyword`
[INFO] [stderr]    --> src/lox/printer.rs:404:32
[INFO] [stderr]     |
[INFO] [stderr] 404 |     fn visit_return(&mut self, keyword: &Token, value: &Option<Expr>) -> String {
[INFO] [stderr]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keyword`
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> src/lox/evaluator.rs:89:20
[INFO] [stderr]    |
[INFO] [stderr] 69 | #[derive(Debug, Clone, PartialEq)]
[INFO] [stderr]    |                        --------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 89 |     NativeFunction(fn(Vec<Value>) -> Value),
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `crafting_interpreter` (lib) generated 10 warnings (run `cargo fix --lib -p crafting_interpreter` to apply 6 suggestions)
[INFO] [stderr] warning: unused import: `crafting_interpreter::vm::ast_node::ASTNode`
[INFO] [stderr]  --> src/vm_main.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crafting_interpreter::vm::ast_node::ASTNode;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `crafting_interpreter` (bin "vm_interpreter" test) generated 1 warning (run `cargo fix --bin "vm_interpreter" -p crafting_interpreter --tests` to apply 1 suggestion)
[INFO] [stderr] warning: variants `Get` and `Set` are never constructed
[INFO] [stderr]   --> src/lox/ast.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr]  6 | pub enum Expr {
[INFO] [stderr]    |          ---- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 33 |     Get {
[INFO] [stderr]    |     ^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     Set {
[INFO] [stderr]    |     ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variants `For`, `Class`, `Call`, and `Assign` are never constructed
[INFO] [stderr]   --> src/lox/ast.rs:54:5
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub enum Stmt {
[INFO] [stderr]    |          ---- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 54 |     For {
[INFO] [stderr]    |     ^^^
[INFO] [stderr] ...
[INFO] [stderr] 74 |     Class {
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 78 |     Call {
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 82 |     Assign {
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `accept` is never used
[INFO] [stderr]   --> src/lox/ast.rs:89:12
[INFO] [stderr]    |
[INFO] [stderr] 88 | impl Expr {
[INFO] [stderr]    | --------- method in this implementation
[INFO] [stderr] 89 |     pub fn accept<R>(&self, visitor: &mut dyn Visitor<R>) -> R {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `accept` is never used
[INFO] [stderr]    --> src/lox/ast.rs:113:12
[INFO] [stderr]     |
[INFO] [stderr] 112 | impl Stmt {
[INFO] [stderr]     | --------- method in this implementation
[INFO] [stderr] 113 |     pub fn accept<R>(&self, visitor: &mut dyn Visitor<R>) -> R {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `DuplicateParameterName` and `RuntimeError` are never constructed
[INFO] [stderr]   --> src/lox/error.rs:65:5
[INFO] [stderr]    |
[INFO] [stderr]  6 | pub enum LoxError {
[INFO] [stderr]    |          -------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 65 |     DuplicateParameterName(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 71 |     RuntimeError(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `LoxError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Class` and `Instance` are never constructed
[INFO] [stderr]   --> src/lox/evaluator.rs:81:5
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub enum Value {
[INFO] [stderr]    |          ----- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 81 |     Class {
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 85 |     Instance {
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Visitor` is never used
[INFO] [stderr]   --> src/lox/printer.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub trait Visitor<R> {
[INFO] [stderr]    |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AstPrinter` is never constructed
[INFO] [stderr]   --> src/lox/printer.rs:86:12
[INFO] [stderr]    |
[INFO] [stderr] 86 | pub struct AstPrinter;
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `print` is never used
[INFO] [stderr]   --> src/lox/printer.rs:96:12
[INFO] [stderr]    |
[INFO] [stderr] 88 | impl AstPrinter {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 96 |     pub fn print(&mut self, expr: &Expr) -> String {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Nil`, `Function`, and `Return` are never constructed
[INFO] [stderr]    --> src/lox/token_type.rs:108:5
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub enum LiteralValue {
[INFO] [stderr]     |          ------------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 108 |     Nil,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 109 |     /// ユーザー定義関数
[INFO] [stderr] 110 |     Function {
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 119 |     Return(Box<LiteralValue>),
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `LiteralValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `as_number` is never used
[INFO] [stderr]    --> src/lox/token_type.rs:144:12
[INFO] [stderr]     |
[INFO] [stderr] 138 | impl LiteralValue {
[INFO] [stderr]     | ----------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 144 |     pub fn as_number(&self) -> Option<f64> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Debug` and `self`
[INFO] [stderr]  --> tests/test.rs:8:20
[INFO] [stderr]   |
[INFO] [stderr] 8 |     use std::fmt::{self, Debug};
[INFO] [stderr]   |                    ^^^^  ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Chunk` and `OpCode`
[INFO] [stderr]    --> src/vm/compiler.rs:151:28
[INFO] [stderr]     |
[INFO] [stderr] 151 |     use crate::vm::chunk::{Chunk, OpCode, Constant};
[INFO] [stderr]     |                            ^^^^^  ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `UnaryOperator`
[INFO] [stderr]    --> src/vm/compiler.rs:152:56
[INFO] [stderr]     |
[INFO] [stderr] 152 |     use crate::vm::ast_node::{ASTNode, BinaryOperator, UnaryOperator};
[INFO] [stderr]     |                                                        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `crafting_interpreter` (bin "crafting_interpreter") generated 21 warnings (10 duplicates)
[INFO] [stderr] warning: `crafting_interpreter` (bin "crafting_interpreter" test) generated 21 warnings (21 duplicates)
[INFO] [stderr] warning: `crafting_interpreter` (test "test") generated 1 warning (run `cargo fix --test "test" -p crafting_interpreter` to apply 1 suggestion)
[INFO] [stderr] warning: `crafting_interpreter` (bin "vm_interpreter") generated 1 warning (1 duplicate)
[INFO] [stderr] warning: `crafting_interpreter` (lib test) generated 12 warnings (10 duplicates) (run `cargo fix --lib -p crafting_interpreter --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/crafting_interpreter-4cccc7bd83e8b2b5)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test vm::compiler::tests::test_compile_binary_expression ... ok
[INFO] [stdout] test vm::compiler::tests::test_compile_if_statement ... ok
[INFO] [stdout] test vm::compiler::tests::test_compile_variable_declaration ... ok
[INFO] [stdout] test vm::compiler::tests::test_compile_number_literal ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/crafting_interpreter-962db17d68bcb6fb)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/vm_main.rs (/opt/rustwide/target/release/deps/vm_interpreter-3fc379d171397b26)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test.rs (/opt/rustwide/target/release/deps/test-a226c7862d4a7c76)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test tests::test_literals ... ok
[INFO] [stdout] test tests::test_conditionals ... ok
[INFO] [stdout] test tests::test_functions ... ok
[INFO] [stdout] test tests::test_local_scope ... ok
[INFO] [stdout] test tests::test_error_messages ... ok
[INFO] [stdout] test tests::test_recursion ... ok
[INFO] [stdout] test tests::test_variables ... ok
[INFO] [stdout] test tests::test_arithmetic ... ok
[INFO] [stdout] test tests::test_loops ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests crafting_interpreter
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lox/token.rs - lox::token::Token::new (line 32) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a", kill_on_drop: false }`
[INFO] [stdout] bdde716e90c678e6c9d2ae2aaf8206f2e91caf74a7577efae9769b796d85261a
