[INFO] cloning repository https://github.com/islandryu/Ankara [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/islandryu/Ankara" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fislandryu%2FAnkara", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fislandryu%2FAnkara'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5a06a68fe5945a4d4a6331a431f8ad131697a3a3 [INFO] checking islandryu/Ankara against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fislandryu%2FAnkara" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/islandryu/Ankara on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/islandryu/Ankara [INFO] finished tweaking git repo https://github.com/islandryu/Ankara [INFO] tweaked toml for git repo https://github.com/islandryu/Ankara written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/islandryu/Ankara 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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6d6f19bec7617ee6690b9b12c207e19c125a5c550f6620b89aafc56ad1f17627 [INFO] running `Command { std: "docker" "start" "-a" "6d6f19bec7617ee6690b9b12c207e19c125a5c550f6620b89aafc56ad1f17627", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6d6f19bec7617ee6690b9b12c207e19c125a5c550f6620b89aafc56ad1f17627", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6d6f19bec7617ee6690b9b12c207e19c125a5c550f6620b89aafc56ad1f17627", kill_on_drop: false }` [INFO] [stdout] 6d6f19bec7617ee6690b9b12c207e19c125a5c550f6620b89aafc56ad1f17627 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e18b82f89000e80142d316cbb4116b9423c65477f1f432035146fa2da6de2cf4 [INFO] running `Command { std: "docker" "start" "-a" "e18b82f89000e80142d316cbb4116b9423c65477f1f432035146fa2da6de2cf4", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.66 [INFO] [stderr] Compiling unicode-ident v1.0.11 [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Compiling regex-syntax v0.6.29 [INFO] [stderr] Compiling beef v0.5.2 [INFO] [stderr] Compiling thiserror v1.0.48 [INFO] [stderr] Checking ppv-lite86 v0.2.17 [INFO] [stderr] Checking unicode-width v0.1.10 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking ansi_term v0.12.1 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking getrandom v0.2.10 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking clap v2.34.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling syn v2.0.31 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling logos-codegen v0.13.0 [INFO] [stderr] Compiling thiserror-impl v1.0.48 [INFO] [stderr] Compiling logos-derive v0.13.0 [INFO] [stderr] Checking logos v0.13.0 [INFO] [stderr] Checking Ankara v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `collections::HashMap` [INFO] [stdout] --> src/ast.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, fmt::Display}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/ast.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::token::{self, Token}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::borrow` [INFO] [stdout] --> src/interpreter/assign.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use core::borrow; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BlockExpression`, `BlockReturnStatement`, and `Expression` [INFO] [stdout] --> src/interpreter/environment.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | ast::{BlockExpression, BlockReturnStatement, Expression, WatchDeclaration}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::borrow` [INFO] [stdout] --> src/interpreter/environment.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use core::borrow; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `path::Display` [INFO] [stdout] --> src/interpreter/environment.rs:7:67 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{borrow::BorrowMut, cell::RefCell, collections::HashMap, path::Display, rc::Rc}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::array` [INFO] [stdout] --> src/interpreter/evaluator.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::array; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> src/interpreter/evaluator.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Assign`, `BlockExpression`, `ElementAccessExpression`, `Identifier`, and `self` [INFO] [stdout] --> src/interpreter/evaluator.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | self, ArrayMapValue, Assign, BlockExpression, ElementAccessExpression, Expression, Identifier, [INFO] [stdout] | ^^^^ ^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BlockReturnStatement` and `Expression` [INFO] [stdout] --> src/interpreter/object.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::ast::{BlockReturnStatement, Expression}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/interpreter/object.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ast::Identifier` [INFO] [stdout] --> src/parser.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ast::Identifier; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::precedence` [INFO] [stdout] --> src/parser.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::precedence; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logos::Lexer` [INFO] [stdout] --> src/parser.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use logos::Lexer; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logos::Logos` [INFO] [stdout] --> src/parser.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use logos::Logos; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/main.rs:11:30 [INFO] [stdout] | [INFO] [stdout] 11 | use interpreter::evaluator::{self, EvalOption, Evaluator}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Logos` and `source` [INFO] [stdout] --> src/main.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use logos::{source, Logos}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `collections::HashMap` [INFO] [stdout] --> src/ast.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, fmt::Display}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/ast.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::token::{self, Token}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::borrow` [INFO] [stdout] --> src/interpreter/assign.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use core::borrow; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BlockExpression`, `BlockReturnStatement`, and `Expression` [INFO] [stdout] --> src/interpreter/environment.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | ast::{BlockExpression, BlockReturnStatement, Expression, WatchDeclaration}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::borrow` [INFO] [stdout] --> src/interpreter/environment.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use core::borrow; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `path::Display` [INFO] [stdout] --> src/interpreter/environment.rs:7:67 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{borrow::BorrowMut, cell::RefCell, collections::HashMap, path::Display, rc::Rc}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::array` [INFO] [stdout] --> src/interpreter/evaluator.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::array; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> src/interpreter/evaluator.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Assign`, `BlockExpression`, `ElementAccessExpression`, `Identifier`, and `self` [INFO] [stdout] --> src/interpreter/evaluator.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | self, ArrayMapValue, Assign, BlockExpression, ElementAccessExpression, Expression, Identifier, [INFO] [stdout] | ^^^^ ^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BlockReturnStatement` and `Expression` [INFO] [stdout] --> src/interpreter/object.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::ast::{BlockReturnStatement, Expression}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/interpreter/object.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/interpreter/tests/cases.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | rc::{self, Rc}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Array`, `Expression`, `Operator`, `parser::parse_expression`, `precedence::Precedence`, `self`, and `self` [INFO] [stdout] --> src/interpreter/tests/misc.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | ast::{self, Expression, Operator}, [INFO] [stdout] | ^^^^ ^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 10 | object::{Array, Object}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | object::{self, Return}, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | parser::parse_expression, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | precedence::Precedence, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/interpreter/tests/misc.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Expression`, `Operator`, `parser::parse_expression`, `precedence::Precedence`, and `self` [INFO] [stdout] --> src/interpreter/tests/mod.rs:10:15 [INFO] [stdout] | [INFO] [stdout] 10 | ast::{self, Expression, Operator}, [INFO] [stdout] | ^^^^ ^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | parser::parse_expression, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | precedence::Precedence, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/interpreter/tests/mod.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ast::Identifier` [INFO] [stdout] --> src/parser.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ast::Identifier; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::precedence` [INFO] [stdout] --> src/parser.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::precedence; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logos::Lexer` [INFO] [stdout] --> src/parser.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use logos::Lexer; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logos::Logos` [INFO] [stdout] --> src/parser.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use logos::Logos; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/main.rs:11:30 [INFO] [stdout] | [INFO] [stdout] 11 | use interpreter::evaluator::{self, EvalOption, Evaluator}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Logos` and `source` [INFO] [stdout] --> src/main.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use logos::{source, Logos}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/assign.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{borrow::BorrowMut, cell::RefCell}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/environment.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{borrow::BorrowMut, cell::RefCell, collections::HashMap, path::Display, rc::Rc}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/evaluator.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `function` [INFO] [stdout] --> src/ast.rs:234:41 [INFO] [stdout] | [INFO] [stdout] 234 | Expression::FunctionLiteral(function) => write!(f, "function",), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `if_expression` [INFO] [stdout] --> src/ast.rs:238:38 [INFO] [stdout] | [INFO] [stdout] 238 | Expression::IfExpression(if_expression) => write!(f, "if"), [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `array` [INFO] [stdout] --> src/ast.rs:241:38 [INFO] [stdout] | [INFO] [stdout] 241 | Expression::ArrayLiteral(array) => write!(f, "array"), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_array` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `for_expression` [INFO] [stdout] --> src/ast.rs:245:39 [INFO] [stdout] | [INFO] [stdout] 245 | Expression::ForExpression(for_expression) => { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_for_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `switch_expression` [INFO] [stdout] --> src/ast.rs:248:42 [INFO] [stdout] | [INFO] [stdout] 248 | Expression::SwitchExpression(switch_expression) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_switch_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `assign` [INFO] [stdout] --> src/ast.rs:251:32 [INFO] [stdout] | [INFO] [stdout] 251 | Expression::Assign(assign) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_assign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block` [INFO] [stdout] --> src/ast.rs:254:41 [INFO] [stdout] | [INFO] [stdout] 254 | Expression::BlockExpression(block) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_block` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/interpreter/environment.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | let mut cloned_env = env.clone(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:267:9 [INFO] [stdout] | [INFO] [stdout] 267 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:385:9 [INFO] [stdout] | [INFO] [stdout] 385 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `value` is never read [INFO] [stdout] --> src/interpreter/evaluator.rs:512:17 [INFO] [stdout] | [INFO] [stdout] 512 | let mut value = Ok(Object::None); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_array` [INFO] [stdout] --> src/interpreter/evaluator.rs:513:17 [INFO] [stdout] | [INFO] [stdout] 513 | let mut return_array = Array { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_array` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/interpreter/evaluator.rs:513:13 [INFO] [stdout] | [INFO] [stdout] 513 | let mut return_array = Array { [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/interpreter/evaluator.rs:518:13 [INFO] [stdout] | [INFO] [stdout] 518 | let mut obj = match iter { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:636:9 [INFO] [stdout] | [INFO] [stdout] 636 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/interpreter/object.rs:96:22 [INFO] [stdout] | [INFO] [stdout] 96 | for (i, element) in array.elements.borrow().iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/interpreter/object.rs:129:22 [INFO] [stdout] | [INFO] [stdout] 129 | for (i, element) in array.elements.borrow().iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/precedence.rs:38:27 [INFO] [stdout] | [INFO] [stdout] 36 | Token::Plus | Token::Minus => Precedence::Sum, [INFO] [stdout] | ------------ matches all the relevant values [INFO] [stdout] 37 | Token::Asterisk | Token::Slash | Token::Percent => Precedence::Product, [INFO] [stdout] 38 | Token::Bang | Token::Minus => Precedence::Prefix, [INFO] [stdout] | ^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | let mut env = get_builtin_environment(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BlockReturn` is never constructed [INFO] [stdout] --> src/ast.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 144 | pub struct BlockReturn { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_string` is never used [INFO] [stdout] --> src/interpreter/environment.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl Environment { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Void` is never constructed [INFO] [stdout] --> src/interpreter/object.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum Object { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 22 | Void, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Object` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_number`, `unwrap_number`, `is_return`, `unwrap_block_return`, and `unwrap_return` are never used [INFO] [stdout] --> src/interpreter/object.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Object { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 26 | pub fn is_number(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn unwrap_number(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn is_return(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn unwrap_block_return(&self) -> Object { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn unwrap_return(&self) -> Object { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_case_file_path` is never used [INFO] [stdout] --> src/interpreter/tests/cases.rs:62:4 [INFO] [stdout] | [INFO] [stdout] 62 | fn get_all_case_file_path() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_or_check_file` is never used [INFO] [stdout] --> src/interpreter/tests/cases.rs:75:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn write_or_check_file(file_name: &str, content: &str) -> std::io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Factorial` is never constructed [INFO] [stdout] --> src/precedence.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Precedence { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 16 | Factorial, // 階乗(例:n!) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Precedence` 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 `is_higher_than` is never used [INFO] [stdout] --> src/precedence.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Precedence { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn is_higher_than(&self, other: &Precedence) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_infix_operator` is never used [INFO] [stdout] --> src/token.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl Token { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 101 | pub fn is_infix_operator(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/interpreter/assign.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | expression.borrow().eval(watch_env, option); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 92 | let _ = expression.borrow().eval(watch_env, option); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 51 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/assign.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{borrow::BorrowMut, cell::RefCell}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/environment.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{borrow::BorrowMut, cell::RefCell, collections::HashMap, path::Display, rc::Rc}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/evaluator.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `function` [INFO] [stdout] --> src/ast.rs:234:41 [INFO] [stdout] | [INFO] [stdout] 234 | Expression::FunctionLiteral(function) => write!(f, "function",), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `if_expression` [INFO] [stdout] --> src/ast.rs:238:38 [INFO] [stdout] | [INFO] [stdout] 238 | Expression::IfExpression(if_expression) => write!(f, "if"), [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `array` [INFO] [stdout] --> src/ast.rs:241:38 [INFO] [stdout] | [INFO] [stdout] 241 | Expression::ArrayLiteral(array) => write!(f, "array"), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_array` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `for_expression` [INFO] [stdout] --> src/ast.rs:245:39 [INFO] [stdout] | [INFO] [stdout] 245 | Expression::ForExpression(for_expression) => { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_for_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `switch_expression` [INFO] [stdout] --> src/ast.rs:248:42 [INFO] [stdout] | [INFO] [stdout] 248 | Expression::SwitchExpression(switch_expression) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_switch_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `assign` [INFO] [stdout] --> src/ast.rs:251:32 [INFO] [stdout] | [INFO] [stdout] 251 | Expression::Assign(assign) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_assign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block` [INFO] [stdout] --> src/ast.rs:254:41 [INFO] [stdout] | [INFO] [stdout] 254 | Expression::BlockExpression(block) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_block` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/interpreter/environment.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | let mut cloned_env = env.clone(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:267:9 [INFO] [stdout] | [INFO] [stdout] 267 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:385:9 [INFO] [stdout] | [INFO] [stdout] 385 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `value` is never read [INFO] [stdout] --> src/interpreter/evaluator.rs:512:17 [INFO] [stdout] | [INFO] [stdout] 512 | let mut value = Ok(Object::None); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_array` [INFO] [stdout] --> src/interpreter/evaluator.rs:513:17 [INFO] [stdout] | [INFO] [stdout] 513 | let mut return_array = Array { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_array` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/interpreter/evaluator.rs:513:13 [INFO] [stdout] | [INFO] [stdout] 513 | let mut return_array = Array { [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/interpreter/evaluator.rs:518:13 [INFO] [stdout] | [INFO] [stdout] 518 | let mut obj = match iter { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:636:9 [INFO] [stdout] | [INFO] [stdout] 636 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/interpreter/object.rs:96:22 [INFO] [stdout] | [INFO] [stdout] 96 | for (i, element) in array.elements.borrow().iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/interpreter/object.rs:129:22 [INFO] [stdout] | [INFO] [stdout] 129 | for (i, element) in array.elements.borrow().iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/interpreter/tests/cases.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | let mut env = get_builtin_environment(); [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/interpreter/tests/misc.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let mut env = Environment::new(None); [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/interpreter/tests/mod.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let mut env = Environment::new(None); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/precedence.rs:38:27 [INFO] [stdout] | [INFO] [stdout] 36 | Token::Plus | Token::Minus => Precedence::Sum, [INFO] [stdout] | ------------ matches all the relevant values [INFO] [stdout] 37 | Token::Asterisk | Token::Slash | Token::Percent => Precedence::Product, [INFO] [stdout] 38 | Token::Bang | Token::Minus => Precedence::Prefix, [INFO] [stdout] | ^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | let mut env = get_builtin_environment(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BlockReturn` is never constructed [INFO] [stdout] --> src/ast.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 144 | pub struct BlockReturn { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Void` is never constructed [INFO] [stdout] --> src/interpreter/object.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum Object { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 22 | Void, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Object` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_number`, `unwrap_number`, `is_return`, and `unwrap_block_return` are never used [INFO] [stdout] --> src/interpreter/object.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Object { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 26 | pub fn is_number(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn unwrap_number(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn is_return(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn unwrap_block_return(&self) -> Object { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_return_object` is never used [INFO] [stdout] --> src/interpreter/tests/misc.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | fn get_return_object(obj: Object) -> Object { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Factorial` is never constructed [INFO] [stdout] --> src/precedence.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Precedence { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 16 | Factorial, // 階乗(例:n!) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Precedence` 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 `is_higher_than` is never used [INFO] [stdout] --> src/precedence.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Precedence { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn is_higher_than(&self, other: &Precedence) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_infix_operator` is never used [INFO] [stdout] --> src/token.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl Token { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 101 | pub fn is_infix_operator(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/interpreter/assign.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | expression.borrow().eval(watch_env, option); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 92 | let _ = expression.borrow().eval(watch_env, option); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `variableDeclaration` should have a snake case name [INFO] [stdout] --> src/parser.rs:1046:13 [INFO] [stdout] | [INFO] [stdout] 1046 | let variableDeclaration = parse_variable_declaration(&mut lexer).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `variable_declaration` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 58 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.09s [INFO] running `Command { std: "docker" "inspect" "e18b82f89000e80142d316cbb4116b9423c65477f1f432035146fa2da6de2cf4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e18b82f89000e80142d316cbb4116b9423c65477f1f432035146fa2da6de2cf4", kill_on_drop: false }` [INFO] [stdout] e18b82f89000e80142d316cbb4116b9423c65477f1f432035146fa2da6de2cf4 [INFO] checking islandryu/Ankara against try#f9935d29d867449445ee008640ccca1bf1ae0889+rustflags=-Dtail_expr_drop_order for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fislandryu%2FAnkara" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/islandryu/Ankara on toolchain f9935d29d867449445ee008640ccca1bf1ae0889 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9935d29d867449445ee008640ccca1bf1ae0889" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/islandryu/Ankara [INFO] finished tweaking git repo https://github.com/islandryu/Ankara [INFO] tweaked toml for git repo https://github.com/islandryu/Ankara written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/islandryu/Ankara 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" "+f9935d29d867449445ee008640ccca1bf1ae0889" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+f9935d29d867449445ee008640ccca1bf1ae0889" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 88cc61f60f0d11367a7c65347b0455874c0e44d48c24f9fa5201714504ffa055 [INFO] running `Command { std: "docker" "start" "-a" "88cc61f60f0d11367a7c65347b0455874c0e44d48c24f9fa5201714504ffa055", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "88cc61f60f0d11367a7c65347b0455874c0e44d48c24f9fa5201714504ffa055", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "88cc61f60f0d11367a7c65347b0455874c0e44d48c24f9fa5201714504ffa055", kill_on_drop: false }` [INFO] [stdout] 88cc61f60f0d11367a7c65347b0455874c0e44d48c24f9fa5201714504ffa055 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail_expr_drop_order" "-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+f9935d29d867449445ee008640ccca1bf1ae0889" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8511efbd5b569b36264e96a91b3d153c1ae1f9d90db86b404a6861bd5a0aefc9 [INFO] running `Command { std: "docker" "start" "-a" "8511efbd5b569b36264e96a91b3d153c1ae1f9d90db86b404a6861bd5a0aefc9", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.66 [INFO] [stderr] Compiling unicode-ident v1.0.11 [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Compiling beef v0.5.2 [INFO] [stderr] Compiling regex-syntax v0.6.29 [INFO] [stderr] Checking ppv-lite86 v0.2.17 [INFO] [stderr] Checking unicode-width v0.1.10 [INFO] [stderr] Compiling thiserror v1.0.48 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking ansi_term v0.12.1 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking getrandom v0.2.10 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Compiling syn v2.0.31 [INFO] [stderr] Checking clap v2.34.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling logos-codegen v0.13.0 [INFO] [stderr] Compiling thiserror-impl v1.0.48 [INFO] [stderr] Compiling logos-derive v0.13.0 [INFO] [stderr] Checking logos v0.13.0 [INFO] [stderr] Checking Ankara v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `collections::HashMap` [INFO] [stdout] --> src/ast.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, fmt::Display}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/ast.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::token::{self, Token}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::borrow` [INFO] [stdout] --> src/interpreter/assign.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use core::borrow; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BlockExpression`, `BlockReturnStatement`, and `Expression` [INFO] [stdout] --> src/interpreter/environment.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | ast::{BlockExpression, BlockReturnStatement, Expression, WatchDeclaration}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::borrow` [INFO] [stdout] --> src/interpreter/environment.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use core::borrow; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `path::Display` [INFO] [stdout] --> src/interpreter/environment.rs:7:67 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{borrow::BorrowMut, cell::RefCell, collections::HashMap, path::Display, rc::Rc}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::array` [INFO] [stdout] --> src/interpreter/evaluator.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::array; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> src/interpreter/evaluator.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Assign`, `BlockExpression`, `ElementAccessExpression`, `Identifier`, and `self` [INFO] [stdout] --> src/interpreter/evaluator.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | self, ArrayMapValue, Assign, BlockExpression, ElementAccessExpression, Expression, Identifier, [INFO] [stdout] | ^^^^ ^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BlockReturnStatement` and `Expression` [INFO] [stdout] --> src/interpreter/object.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::ast::{BlockReturnStatement, Expression}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/interpreter/object.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ast::Identifier` [INFO] [stdout] --> src/parser.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ast::Identifier; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::precedence` [INFO] [stdout] --> src/parser.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::precedence; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logos::Lexer` [INFO] [stdout] --> src/parser.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use logos::Lexer; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logos::Logos` [INFO] [stdout] --> src/parser.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use logos::Logos; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/main.rs:11:30 [INFO] [stdout] | [INFO] [stdout] 11 | use interpreter::evaluator::{self, EvalOption, Evaluator}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Logos` and `source` [INFO] [stdout] --> src/main.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use logos::{source, Logos}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `collections::HashMap` [INFO] [stdout] --> src/ast.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, fmt::Display}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/ast.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::token::{self, Token}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::borrow` [INFO] [stdout] --> src/interpreter/assign.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use core::borrow; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BlockExpression`, `BlockReturnStatement`, and `Expression` [INFO] [stdout] --> src/interpreter/environment.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | ast::{BlockExpression, BlockReturnStatement, Expression, WatchDeclaration}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::borrow` [INFO] [stdout] --> src/interpreter/environment.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use core::borrow; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `path::Display` [INFO] [stdout] --> src/interpreter/environment.rs:7:67 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{borrow::BorrowMut, cell::RefCell, collections::HashMap, path::Display, rc::Rc}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::array` [INFO] [stdout] --> src/interpreter/evaluator.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::array; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> src/interpreter/evaluator.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Assign`, `BlockExpression`, `ElementAccessExpression`, `Identifier`, and `self` [INFO] [stdout] --> src/interpreter/evaluator.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | self, ArrayMapValue, Assign, BlockExpression, ElementAccessExpression, Expression, Identifier, [INFO] [stdout] | ^^^^ ^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BlockReturnStatement` and `Expression` [INFO] [stdout] --> src/interpreter/object.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::ast::{BlockReturnStatement, Expression}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/interpreter/object.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/interpreter/tests/cases.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | rc::{self, Rc}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Array`, `Expression`, `Operator`, `parser::parse_expression`, `precedence::Precedence`, `self`, and `self` [INFO] [stdout] --> src/interpreter/tests/misc.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | ast::{self, Expression, Operator}, [INFO] [stdout] | ^^^^ ^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 10 | object::{Array, Object}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | object::{self, Return}, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | parser::parse_expression, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | precedence::Precedence, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/interpreter/tests/misc.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Expression`, `Operator`, `parser::parse_expression`, `precedence::Precedence`, and `self` [INFO] [stdout] --> src/interpreter/tests/mod.rs:10:15 [INFO] [stdout] | [INFO] [stdout] 10 | ast::{self, Expression, Operator}, [INFO] [stdout] | ^^^^ ^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | parser::parse_expression, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | precedence::Precedence, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/interpreter/tests/mod.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ast::Identifier` [INFO] [stdout] --> src/parser.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ast::Identifier; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::precedence` [INFO] [stdout] --> src/parser.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::precedence; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logos::Lexer` [INFO] [stdout] --> src/parser.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use logos::Lexer; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logos::Logos` [INFO] [stdout] --> src/parser.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use logos::Logos; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/main.rs:11:30 [INFO] [stdout] | [INFO] [stdout] 11 | use interpreter::evaluator::{self, EvalOption, Evaluator}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Logos` and `source` [INFO] [stdout] --> src/main.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use logos::{source, Logos}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/assign.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{borrow::BorrowMut, cell::RefCell}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/environment.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{borrow::BorrowMut, cell::RefCell, collections::HashMap, path::Display, rc::Rc}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/evaluator.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `function` [INFO] [stdout] --> src/ast.rs:234:41 [INFO] [stdout] | [INFO] [stdout] 234 | Expression::FunctionLiteral(function) => write!(f, "function",), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `if_expression` [INFO] [stdout] --> src/ast.rs:238:38 [INFO] [stdout] | [INFO] [stdout] 238 | Expression::IfExpression(if_expression) => write!(f, "if"), [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `array` [INFO] [stdout] --> src/ast.rs:241:38 [INFO] [stdout] | [INFO] [stdout] 241 | Expression::ArrayLiteral(array) => write!(f, "array"), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_array` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `for_expression` [INFO] [stdout] --> src/ast.rs:245:39 [INFO] [stdout] | [INFO] [stdout] 245 | Expression::ForExpression(for_expression) => { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_for_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `switch_expression` [INFO] [stdout] --> src/ast.rs:248:42 [INFO] [stdout] | [INFO] [stdout] 248 | Expression::SwitchExpression(switch_expression) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_switch_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `assign` [INFO] [stdout] --> src/ast.rs:251:32 [INFO] [stdout] | [INFO] [stdout] 251 | Expression::Assign(assign) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_assign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block` [INFO] [stdout] --> src/ast.rs:254:41 [INFO] [stdout] | [INFO] [stdout] 254 | Expression::BlockExpression(block) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_block` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/assign.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{borrow::BorrowMut, cell::RefCell}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/environment.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{borrow::BorrowMut, cell::RefCell, collections::HashMap, path::Display, rc::Rc}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/evaluator.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/interpreter/environment.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | let mut cloned_env = env.clone(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:267:9 [INFO] [stdout] | [INFO] [stdout] 267 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:385:9 [INFO] [stdout] | [INFO] [stdout] 385 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `function` [INFO] [stdout] --> src/ast.rs:234:41 [INFO] [stdout] | [INFO] [stdout] 234 | Expression::FunctionLiteral(function) => write!(f, "function",), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `if_expression` [INFO] [stdout] --> src/ast.rs:238:38 [INFO] [stdout] | [INFO] [stdout] 238 | Expression::IfExpression(if_expression) => write!(f, "if"), [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `array` [INFO] [stdout] --> src/ast.rs:241:38 [INFO] [stdout] | [INFO] [stdout] 241 | Expression::ArrayLiteral(array) => write!(f, "array"), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_array` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `for_expression` [INFO] [stdout] --> src/ast.rs:245:39 [INFO] [stdout] | [INFO] [stdout] 245 | Expression::ForExpression(for_expression) => { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_for_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `switch_expression` [INFO] [stdout] --> src/ast.rs:248:42 [INFO] [stdout] | [INFO] [stdout] 248 | Expression::SwitchExpression(switch_expression) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_switch_expression` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `assign` [INFO] [stdout] --> src/ast.rs:251:32 [INFO] [stdout] | [INFO] [stdout] 251 | Expression::Assign(assign) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_assign` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block` [INFO] [stdout] --> src/ast.rs:254:41 [INFO] [stdout] | [INFO] [stdout] 254 | Expression::BlockExpression(block) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_block` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `value` is never read [INFO] [stdout] --> src/interpreter/evaluator.rs:512:17 [INFO] [stdout] | [INFO] [stdout] 512 | let mut value = Ok(Object::None); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_array` [INFO] [stdout] --> src/interpreter/evaluator.rs:513:17 [INFO] [stdout] | [INFO] [stdout] 513 | let mut return_array = Array { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_array` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/interpreter/evaluator.rs:513:13 [INFO] [stdout] | [INFO] [stdout] 513 | let mut return_array = Array { [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/interpreter/evaluator.rs:518:13 [INFO] [stdout] | [INFO] [stdout] 518 | let mut obj = match iter { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:636:9 [INFO] [stdout] | [INFO] [stdout] 636 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/interpreter/object.rs:96:22 [INFO] [stdout] | [INFO] [stdout] 96 | for (i, element) in array.elements.borrow().iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/interpreter/environment.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | let mut cloned_env = env.clone(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/interpreter/object.rs:129:22 [INFO] [stdout] | [INFO] [stdout] 129 | for (i, element) in array.elements.borrow().iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:267:9 [INFO] [stdout] | [INFO] [stdout] 267 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:385:9 [INFO] [stdout] | [INFO] [stdout] 385 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `value` is never read [INFO] [stdout] --> src/interpreter/evaluator.rs:512:17 [INFO] [stdout] | [INFO] [stdout] 512 | let mut value = Ok(Object::None); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_array` [INFO] [stdout] --> src/interpreter/evaluator.rs:513:17 [INFO] [stdout] | [INFO] [stdout] 513 | let mut return_array = Array { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_array` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/interpreter/evaluator.rs:513:13 [INFO] [stdout] | [INFO] [stdout] 513 | let mut return_array = Array { [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/interpreter/evaluator.rs:518:13 [INFO] [stdout] | [INFO] [stdout] 518 | let mut obj = match iter { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `option` [INFO] [stdout] --> src/interpreter/evaluator.rs:636:9 [INFO] [stdout] | [INFO] [stdout] 636 | option: &mut EvalOption, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/interpreter/object.rs:96:22 [INFO] [stdout] | [INFO] [stdout] 96 | for (i, element) in array.elements.borrow().iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/interpreter/object.rs:129:22 [INFO] [stdout] | [INFO] [stdout] 129 | for (i, element) in array.elements.borrow().iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/interpreter/tests/cases.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | let mut env = get_builtin_environment(); [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/interpreter/tests/misc.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let mut env = Environment::new(None); [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/interpreter/tests/mod.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let mut env = Environment::new(None); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/precedence.rs:38:27 [INFO] [stdout] | [INFO] [stdout] 36 | Token::Plus | Token::Minus => Precedence::Sum, [INFO] [stdout] | ------------ matches all the relevant values [INFO] [stdout] 37 | Token::Asterisk | Token::Slash | Token::Percent => Precedence::Product, [INFO] [stdout] 38 | Token::Bang | Token::Minus => Precedence::Prefix, [INFO] [stdout] | ^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | let mut env = get_builtin_environment(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BlockReturn` is never constructed [INFO] [stdout] --> src/ast.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 144 | pub struct BlockReturn { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_string` is never used [INFO] [stdout] --> src/interpreter/environment.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl Environment { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Void` is never constructed [INFO] [stdout] --> src/interpreter/object.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum Object { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 22 | Void, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Object` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_number`, `unwrap_number`, `is_return`, `unwrap_block_return`, and `unwrap_return` are never used [INFO] [stdout] --> src/interpreter/object.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Object { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 26 | pub fn is_number(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn unwrap_number(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn is_return(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn unwrap_block_return(&self) -> Object { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn unwrap_return(&self) -> Object { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_case_file_path` is never used [INFO] [stdout] --> src/interpreter/tests/cases.rs:62:4 [INFO] [stdout] | [INFO] [stdout] 62 | fn get_all_case_file_path() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_or_check_file` is never used [INFO] [stdout] --> src/interpreter/tests/cases.rs:75:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn write_or_check_file(file_name: &str, content: &str) -> std::io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Factorial` is never constructed [INFO] [stdout] --> src/precedence.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Precedence { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 16 | Factorial, // 階乗(例:n!) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Precedence` 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 `is_higher_than` is never used [INFO] [stdout] --> src/precedence.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Precedence { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn is_higher_than(&self, other: &Precedence) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_infix_operator` is never used [INFO] [stdout] --> src/token.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl Token { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 101 | pub fn is_infix_operator(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/precedence.rs:38:27 [INFO] [stdout] | [INFO] [stdout] 36 | Token::Plus | Token::Minus => Precedence::Sum, [INFO] [stdout] | ------------ matches all the relevant values [INFO] [stdout] 37 | Token::Asterisk | Token::Slash | Token::Percent => Precedence::Product, [INFO] [stdout] 38 | Token::Bang | Token::Minus => Precedence::Prefix, [INFO] [stdout] | ^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/interpreter/assign.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | expression.borrow().eval(watch_env, option); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 92 | let _ = expression.borrow().eval(watch_env, option); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 117 | env: Rc>, [INFO] [stdout] | ----------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 121 | let value = self.value.eval(env.clone(), option)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 126 | let mut env_borrowed = (*env).borrow_mut(); [INFO] [stdout] | ------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 127 | env_borrowed.define(name, value); [INFO] [stdout] 128 | Ok(Object::Null) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 164 | _env: Rc>, [INFO] [stdout] | ------------------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 167 | Ok(Object::Number(self.value)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:180:15 [INFO] [stdout] | [INFO] [stdout] 174 | env: Rc>, [INFO] [stdout] | ----------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 177 | let left = self.left.eval(env.clone(), option)?; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 178 | let right = self.right.eval(env, option)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 179 | let operator = self.operator.clone(); [INFO] [stdout] 180 | match (left, right) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:387:12 [INFO] [stdout] | [INFO] [stdout] 384 | _env: Rc>, [INFO] [stdout] | ------------------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 387 | Ok(Object::Boolean(self.value)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:397:12 [INFO] [stdout] | [INFO] [stdout] 394 | _env: Rc>, [INFO] [stdout] | ------------------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 397 | Ok(Object::StringLiteral(self.value.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:422:12 [INFO] [stdout] | [INFO] [stdout] 404 | env: Rc>, [INFO] [stdout] | ----------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 407 | let mut elements: Vec = Vec::new(); [INFO] [stdout] | -------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 408 | let mut map_elements: HashMap = HashMap::new(); [INFO] [stdout] | ------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 422 | Ok(Object::Array(Rc::new(Array { [INFO] [stdout] | ____________^ [INFO] [stdout] 423 | | elements: RefCell::new(elements), [INFO] [stdout] 424 | | map: RefCell::new(map_elements), [INFO] [stdout] 425 | | }))) [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:563:12 [INFO] [stdout] | [INFO] [stdout] 509 | env: Rc>, [INFO] [stdout] | ----------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 512 | let mut value = Ok(Object::None); [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 513 | let mut return_array = Array { [INFO] [stdout] | ------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 517 | let iter = self.iterable.eval(env.clone(), option); [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 518 | let mut obj = match iter { [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 519 | Ok(obj) => obj, [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 520 | Err(error) => return Err(error), [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 521 | }; [INFO] [stdout] 522 | let array = match obj { [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 523 | Object::Array(array) => array, [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 531 | let elements = array.elements.borrow(); [INFO] [stdout] | -------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 563 | Ok(Object::None) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:597:15 [INFO] [stdout] | [INFO] [stdout] 570 | env: Rc>, [INFO] [stdout] | ----------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 573 | let value = self.expression.eval(env.clone(), option)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 597 | match default.body.eval(env, option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 8 previous errors; 51 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `Ankara` (bin "Ankara") due to 9 previous errors; 51 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | let mut env = get_builtin_environment(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BlockReturn` is never constructed [INFO] [stdout] --> src/ast.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 144 | pub struct BlockReturn { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Void` is never constructed [INFO] [stdout] --> src/interpreter/object.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum Object { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 22 | Void, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Object` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_number`, `unwrap_number`, `is_return`, and `unwrap_block_return` are never used [INFO] [stdout] --> src/interpreter/object.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Object { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 26 | pub fn is_number(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn unwrap_number(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn is_return(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn unwrap_block_return(&self) -> Object { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_return_object` is never used [INFO] [stdout] --> src/interpreter/tests/misc.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | fn get_return_object(obj: Object) -> Object { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Factorial` is never constructed [INFO] [stdout] --> src/precedence.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Precedence { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 16 | Factorial, // 階乗(例:n!) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Precedence` 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 `is_higher_than` is never used [INFO] [stdout] --> src/precedence.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Precedence { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn is_higher_than(&self, other: &Precedence) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_infix_operator` is never used [INFO] [stdout] --> src/token.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl Token { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 101 | pub fn is_infix_operator(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/interpreter/assign.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | expression.borrow().eval(watch_env, option); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 92 | let _ = expression.borrow().eval(watch_env, option); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 117 | env: Rc>, [INFO] [stdout] | ----------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 121 | let value = self.value.eval(env.clone(), option)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 126 | let mut env_borrowed = (*env).borrow_mut(); [INFO] [stdout] | ------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 127 | env_borrowed.define(name, value); [INFO] [stdout] 128 | Ok(Object::Null) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 164 | _env: Rc>, [INFO] [stdout] | ------------------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 167 | Ok(Object::Number(self.value)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:180:15 [INFO] [stdout] | [INFO] [stdout] 174 | env: Rc>, [INFO] [stdout] | ----------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 177 | let left = self.left.eval(env.clone(), option)?; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 178 | let right = self.right.eval(env, option)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 179 | let operator = self.operator.clone(); [INFO] [stdout] 180 | match (left, right) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:387:12 [INFO] [stdout] | [INFO] [stdout] 384 | _env: Rc>, [INFO] [stdout] | ------------------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 387 | Ok(Object::Boolean(self.value)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:397:12 [INFO] [stdout] | [INFO] [stdout] 394 | _env: Rc>, [INFO] [stdout] | ------------------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 397 | Ok(Object::StringLiteral(self.value.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:422:12 [INFO] [stdout] | [INFO] [stdout] 404 | env: Rc>, [INFO] [stdout] | ----------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 407 | let mut elements: Vec = Vec::new(); [INFO] [stdout] | -------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 408 | let mut map_elements: HashMap = HashMap::new(); [INFO] [stdout] | ------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 422 | Ok(Object::Array(Rc::new(Array { [INFO] [stdout] | ____________^ [INFO] [stdout] 423 | | elements: RefCell::new(elements), [INFO] [stdout] 424 | | map: RefCell::new(map_elements), [INFO] [stdout] 425 | | }))) [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:563:12 [INFO] [stdout] | [INFO] [stdout] 509 | env: Rc>, [INFO] [stdout] | ----------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 512 | let mut value = Ok(Object::None); [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 513 | let mut return_array = Array { [INFO] [stdout] | ------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 517 | let iter = self.iterable.eval(env.clone(), option); [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 518 | let mut obj = match iter { [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 519 | Ok(obj) => obj, [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 520 | Err(error) => return Err(error), [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 521 | }; [INFO] [stdout] 522 | let array = match obj { [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 523 | Object::Array(array) => array, [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 531 | let elements = array.elements.borrow(); [INFO] [stdout] | -------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 563 | Ok(Object::None) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/evaluator.rs:597:15 [INFO] [stdout] | [INFO] [stdout] 570 | env: Rc>, [INFO] [stdout] | ----------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 573 | let value = self.expression.eval(env.clone(), option)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 597 | match default.body.eval(env, option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/tests/misc.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 25 | let mut env = Environment::new(None); [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 26 | let mut lexer = Peekable::new(source_code); [INFO] [stdout] 27 | let program = parse(&mut lexer).unwrap(); [INFO] [stdout] | ------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 28 | / program [INFO] [stdout] 29 | | .eval(Rc::new(RefCell::new(env)), &mut EvalOption::new()) [INFO] [stdout] | |_____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/interpreter/tests/mod.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 25 | let mut env = Environment::new(None); [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 26 | let mut lexer = Peekable::new(str); [INFO] [stdout] 27 | let program = parse(&mut lexer).unwrap(); [INFO] [stdout] | ------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 28 | / program [INFO] [stdout] 29 | | .eval(Rc::new(RefCell::new(env)), &mut EvalOption::new()) [INFO] [stdout] | |_____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser.rs:1049:13 [INFO] [stdout] | [INFO] [stdout] 1046 | let variableDeclaration = parse_variable_declaration(&mut lexer).unwrap(); [INFO] [stdout] | ------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 1049 | / VariableDeclaration { [INFO] [stdout] 1050 | | name: "a".to_string(), [INFO] [stdout] 1051 | | value: Expression::FunctionLiteral(ast::FunctionLiteral { [INFO] [stdout] 1052 | | parameters: vec![ [INFO] [stdout] ... | [INFO] [stdout] 1073 | | }), [INFO] [stdout] 1074 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `variableDeclaration` should have a snake case name [INFO] [stdout] --> src/parser.rs:1046:13 [INFO] [stdout] | [INFO] [stdout] 1046 | let variableDeclaration = parse_variable_declaration(&mut lexer).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `variable_declaration` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 11 previous errors; 58 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `Ankara` (bin "Ankara" test) due to 12 previous errors; 58 warnings emitted [INFO] running `Command { std: "docker" "inspect" "8511efbd5b569b36264e96a91b3d153c1ae1f9d90db86b404a6861bd5a0aefc9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8511efbd5b569b36264e96a91b3d153c1ae1f9d90db86b404a6861bd5a0aefc9", kill_on_drop: false }` [INFO] [stdout] 8511efbd5b569b36264e96a91b3d153c1ae1f9d90db86b404a6861bd5a0aefc9