[INFO] cloning repository https://github.com/loonskai/rusteva
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/loonskai/rusteva" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Floonskai%2Frusteva", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Floonskai%2Frusteva'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 962a31379b62ae2bc1d00a0c051bdcb173e1f25b
[INFO] building loonskai/rusteva against try#334963c956d25708feab489a3816ae63f639355d for pr-135216-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Floonskai%2Frusteva" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/loonskai/rusteva on toolchain 334963c956d25708feab489a3816ae63f639355d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+334963c956d25708feab489a3816ae63f639355d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/loonskai/rusteva
[INFO] finished tweaking git repo https://github.com/loonskai/rusteva
[INFO] tweaked toml for git repo https://github.com/loonskai/rusteva written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/loonskai/rusteva 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" "+334963c956d25708feab489a3816ae63f639355d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+334963c956d25708feab489a3816ae63f639355d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5f2314e979b1674119d42fd5a6f99916d1aa519942b45b821e45afe9bd7dcb54
[INFO] running `Command { std: "docker" "start" "-a" "5f2314e979b1674119d42fd5a6f99916d1aa519942b45b821e45afe9bd7dcb54", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f2314e979b1674119d42fd5a6f99916d1aa519942b45b821e45afe9bd7dcb54", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f2314e979b1674119d42fd5a6f99916d1aa519942b45b821e45afe9bd7dcb54", kill_on_drop: false }`
[INFO] [stdout] 5f2314e979b1674119d42fd5a6f99916d1aa519942b45b821e45afe9bd7dcb54
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+334963c956d25708feab489a3816ae63f639355d" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 59b5b626e74b24345d4fe24fe410403162a4d65ceeab3621ccb8d8f4fc675cc1
[INFO] running `Command { std: "docker" "start" "-a" "59b5b626e74b24345d4fe24fe410403162a4d65ceeab3621ccb8d8f4fc675cc1", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling rusteva v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/error.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuntimeErrorKind`
[INFO] [stdout]  --> src/environment.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::error::{RuntimeErrorKind,RuntimeError};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expr`
[INFO] [stdout]  --> src/environment.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::eva::{Expr, Value};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Int`, `Str`, `Null`, and `Boolean` are never constructed
[INFO] [stdout]   --> src/eva.rs:9:3
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub enum Value {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] 9  |   Int(isize),
[INFO] [stdout]    |   ^^^
[INFO] [stdout] 10 |   Str(String),
[INFO] [stdout]    |   ^^^
[INFO] [stdout] 11 |   Null,
[INFO] [stdout]    |   ^^^^
[INFO] [stdout] 12 |   Boolean(bool)
[INFO] [stdout]    |   ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Literal`, `BinaryExpression`, `VariableDeclaration`, and `Identifier` are never constructed
[INFO] [stdout]   --> src/eva.rs:17:3
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 17 |   Literal(Value),
[INFO] [stdout]    |   ^^^^^^^
[INFO] [stdout] 18 |   BinaryExpression(char, Box<Expr>, Box<Expr>),
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |   VariableDeclaration(String, String, Box<Expr>),
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |   Identifier(String)
[INFO] [stdout]    |   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Eva` is never constructed
[INFO] [stdout]   --> src/eva.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Eva {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `eval`, and `binary_operation` are never used
[INFO] [stdout]   --> src/eva.rs:30:6
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Eva {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |   fn new() -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |   fn eval(&mut self, exp: Expr, env: &mut Environment) -> Option<Value> {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |   fn binary_operation<F>(&mut self, env: &mut Environment, exp1: Box<Expr>, exp2: Box<Expr>, operation: F) -> Option<Value> 
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuntimeErrorKind` is never used
[INFO] [stdout]  --> src/error.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum RuntimeErrorKind {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `RuntimeErrorKind` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuntimeError` is never constructed
[INFO] [stdout]   --> src/error.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct RuntimeError {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RuntimeError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `reference_error`, and `syntax_error` are never used
[INFO] [stdout]   --> src/error.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl RuntimeError {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 16 |   pub fn new(kind: RuntimeErrorKind, message: String) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |   pub fn reference_error(var_name: &String) -> Self {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |   pub fn syntax_error(details: String) -> Self {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `record` is never read
[INFO] [stdout]  --> src/environment.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Environment {
[INFO] [stdout]   |            ----------- field in this struct
[INFO] [stdout] 7 |   record: HashMap<String, Value>
[INFO] [stdout]   |   ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Environment` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `define`, `lookup`, and `set` are never used
[INFO] [stdout]   --> src/environment.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Environment {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 11 |   pub fn new() -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |   pub fn define(&mut self, id: String, value: Value) -> Result<&Value, RuntimeError> {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |   pub fn lookup(&self, id: &String) -> Result<&Value, RuntimeError> {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |   pub fn set(&mut self, id: String, value: Value) -> Result<Value, RuntimeError> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     global_env.define("null".to_string(), Value::Null);
[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] 32 |     let _ = global_env.define("null".to_string(), Value::Null);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     global_env.define("true".to_string(), Value::Boolean(true));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let _ = global_env.define("true".to_string(), Value::Boolean(true));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     global_env.define("false".to_string(), Value::Boolean(false)); 
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let _ = global_env.define("false".to_string(), Value::Boolean(false)); 
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuntimeErrorKind`
[INFO] [stdout]  --> src/environment.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::error::{RuntimeErrorKind,RuntimeError};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expr`
[INFO] [stdout]  --> src/environment.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::eva::{Expr, Value};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/error.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let x = i32::abs(2);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Int`, `Str`, `Null`, and `Boolean` are never constructed
[INFO] [stdout]   --> src/eva.rs:9:3
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub enum Value {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] 9  |   Int(isize),
[INFO] [stdout]    |   ^^^
[INFO] [stdout] 10 |   Str(String),
[INFO] [stdout]    |   ^^^
[INFO] [stdout] 11 |   Null,
[INFO] [stdout]    |   ^^^^
[INFO] [stdout] 12 |   Boolean(bool)
[INFO] [stdout]    |   ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Literal`, `BinaryExpression`, `VariableDeclaration`, and `Identifier` are never constructed
[INFO] [stdout]   --> src/eva.rs:17:3
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 17 |   Literal(Value),
[INFO] [stdout]    |   ^^^^^^^
[INFO] [stdout] 18 |   BinaryExpression(char, Box<Expr>, Box<Expr>),
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |   VariableDeclaration(String, String, Box<Expr>),
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |   Identifier(String)
[INFO] [stdout]    |   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Eva` is never constructed
[INFO] [stdout]   --> src/eva.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Eva {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `eval`, and `binary_operation` are never used
[INFO] [stdout]   --> src/eva.rs:30:6
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Eva {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |   fn new() -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |   fn eval(&mut self, exp: Expr, env: &mut Environment) -> Option<Value> {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |   fn binary_operation<F>(&mut self, env: &mut Environment, exp1: Box<Expr>, exp2: Box<Expr>, operation: F) -> Option<Value> 
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `record` is never read
[INFO] [stdout]  --> src/environment.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Environment {
[INFO] [stdout]   |            ----------- field in this struct
[INFO] [stdout] 7 |   record: HashMap<String, Value>
[INFO] [stdout]   |   ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Environment` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `define`, `lookup`, and `set` are never used
[INFO] [stdout]   --> src/environment.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Environment {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 11 |   pub fn new() -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |   pub fn define(&mut self, id: String, value: Value) -> Result<&Value, RuntimeError> {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |   pub fn lookup(&self, id: &String) -> Result<&Value, RuntimeError> {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |   pub fn set(&mut self, id: String, value: Value) -> Result<Value, RuntimeError> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuntimeErrorKind` is never used
[INFO] [stdout]  --> src/error.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum RuntimeErrorKind {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `RuntimeErrorKind` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuntimeError` is never constructed
[INFO] [stdout]   --> src/error.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct RuntimeError {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RuntimeError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `reference_error`, and `syntax_error` are never used
[INFO] [stdout]   --> src/error.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl RuntimeError {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 16 |   pub fn new(kind: RuntimeErrorKind, message: String) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |   pub fn reference_error(var_name: &String) -> Self {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |   pub fn syntax_error(details: String) -> Self {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     global_env.define("null".to_string(), Value::Null);
[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] 32 |     let _ = global_env.define("null".to_string(), Value::Null);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     global_env.define("true".to_string(), Value::Boolean(true));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let _ = global_env.define("true".to_string(), Value::Boolean(true));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     global_env.define("false".to_string(), Value::Boolean(false)); 
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let _ = global_env.define("false".to_string(), Value::Boolean(false)); 
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.65s
[INFO] running `Command { std: "docker" "inspect" "59b5b626e74b24345d4fe24fe410403162a4d65ceeab3621ccb8d8f4fc675cc1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "59b5b626e74b24345d4fe24fe410403162a4d65ceeab3621ccb8d8f4fc675cc1", kill_on_drop: false }`
[INFO] [stdout] 59b5b626e74b24345d4fe24fe410403162a4d65ceeab3621ccb8d8f4fc675cc1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+334963c956d25708feab489a3816ae63f639355d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ee9d8499dfaf80a4a2897bfa18144a8086b3a666a57df349f13624e336e22745
[INFO] running `Command { std: "docker" "start" "-a" "ee9d8499dfaf80a4a2897bfa18144a8086b3a666a57df349f13624e336e22745", kill_on_drop: false }`
[INFO] [stderr]    Compiling rusteva v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/error.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuntimeErrorKind`
[INFO] [stdout]  --> src/environment.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::error::{RuntimeErrorKind,RuntimeError};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expr`
[INFO] [stdout]  --> src/environment.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::eva::{Expr, Value};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Int`, `Str`, `Null`, and `Boolean` are never constructed
[INFO] [stdout]   --> src/eva.rs:9:3
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub enum Value {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] 9  |   Int(isize),
[INFO] [stdout]    |   ^^^
[INFO] [stdout] 10 |   Str(String),
[INFO] [stdout]    |   ^^^
[INFO] [stdout] 11 |   Null,
[INFO] [stdout]    |   ^^^^
[INFO] [stdout] 12 |   Boolean(bool)
[INFO] [stdout]    |   ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Literal`, `BinaryExpression`, `VariableDeclaration`, and `Identifier` are never constructed
[INFO] [stdout]   --> src/eva.rs:17:3
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 17 |   Literal(Value),
[INFO] [stdout]    |   ^^^^^^^
[INFO] [stdout] 18 |   BinaryExpression(char, Box<Expr>, Box<Expr>),
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |   VariableDeclaration(String, String, Box<Expr>),
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |   Identifier(String)
[INFO] [stdout]    |   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Eva` is never constructed
[INFO] [stdout]   --> src/eva.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Eva {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `eval`, and `binary_operation` are never used
[INFO] [stdout]   --> src/eva.rs:30:6
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Eva {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |   fn new() -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |   fn eval(&mut self, exp: Expr, env: &mut Environment) -> Option<Value> {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |   fn binary_operation<F>(&mut self, env: &mut Environment, exp1: Box<Expr>, exp2: Box<Expr>, operation: F) -> Option<Value> 
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuntimeErrorKind` is never used
[INFO] [stdout]  --> src/error.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum RuntimeErrorKind {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `RuntimeErrorKind` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuntimeError` is never constructed
[INFO] [stdout]   --> src/error.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct RuntimeError {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RuntimeError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `reference_error`, and `syntax_error` are never used
[INFO] [stdout]   --> src/error.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl RuntimeError {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 16 |   pub fn new(kind: RuntimeErrorKind, message: String) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |   pub fn reference_error(var_name: &String) -> Self {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |   pub fn syntax_error(details: String) -> Self {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `record` is never read
[INFO] [stdout]  --> src/environment.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Environment {
[INFO] [stdout]   |            ----------- field in this struct
[INFO] [stdout] 7 |   record: HashMap<String, Value>
[INFO] [stdout]   |   ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Environment` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `define`, `lookup`, and `set` are never used
[INFO] [stdout]   --> src/environment.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Environment {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 11 |   pub fn new() -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |   pub fn define(&mut self, id: String, value: Value) -> Result<&Value, RuntimeError> {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |   pub fn lookup(&self, id: &String) -> Result<&Value, RuntimeError> {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |   pub fn set(&mut self, id: String, value: Value) -> Result<Value, RuntimeError> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     global_env.define("null".to_string(), Value::Null);
[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] 32 |     let _ = global_env.define("null".to_string(), Value::Null);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     global_env.define("true".to_string(), Value::Boolean(true));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let _ = global_env.define("true".to_string(), Value::Boolean(true));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     global_env.define("false".to_string(), Value::Boolean(false)); 
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let _ = global_env.define("false".to_string(), Value::Boolean(false)); 
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuntimeErrorKind`
[INFO] [stdout]  --> src/environment.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::error::{RuntimeErrorKind,RuntimeError};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expr`
[INFO] [stdout]  --> src/environment.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::eva::{Expr, Value};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error::RuntimeError`
[INFO] [stdout]   --> src/environment.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |     use crate::{error::RuntimeError, eva::Value};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/error.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/error.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuntimeErrorKind`
[INFO] [stdout]  --> src/environment.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::error::{RuntimeErrorKind,RuntimeError};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expr`
[INFO] [stdout]  --> src/environment.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::eva::{Expr, Value};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error::RuntimeError`
[INFO] [stdout]   --> src/environment.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |     use crate::{error::RuntimeError, eva::Value};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/eva.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let mut eva = Eva::new();
[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: `RuntimeErrorKind`
[INFO] [stdout]   --> src/environment.rs:69:31
[INFO] [stdout]    |
[INFO] [stdout] 69 |       assert!(matches!(x, Err(RuntimeErrorKind)));
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_RuntimeErrorKind`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let x = i32::abs(2);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Identifier` is never constructed
[INFO] [stdout]   --> src/eva.rs:20:3
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Expr {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 20 |   Identifier(String)
[INFO] [stdout]    |   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind` and `message` are never read
[INFO] [stdout]   --> src/error.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct RuntimeError {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 11 |   pub kind: RuntimeErrorKind,
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 12 |   pub message: String,
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RuntimeError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/eva.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let mut eva = Eva::new();
[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 `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     global_env.define("null".to_string(), Value::Null);
[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] 32 |     let _ = global_env.define("null".to_string(), Value::Null);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     global_env.define("true".to_string(), Value::Boolean(true));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let _ = global_env.define("true".to_string(), Value::Boolean(true));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     global_env.define("false".to_string(), Value::Boolean(false)); 
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let _ = global_env.define("false".to_string(), Value::Boolean(false)); 
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `RuntimeErrorKind` should have a snake case name
[INFO] [stdout]   --> src/environment.rs:69:31
[INFO] [stdout]    |
[INFO] [stdout] 69 |       assert!(matches!(x, Err(RuntimeErrorKind)));
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `runtime_error_kind`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/environment.rs:78:7
[INFO] [stdout]    |
[INFO] [stdout] 78 |       env.define("x".to_string(), Value::Int(10));
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 78 |       let _ = env.define("x".to_string(), Value::Int(10));
[INFO] [stdout]    |       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/environment.rs:79:7
[INFO] [stdout]    |
[INFO] [stdout] 79 |       env.set("x".to_string(), Value::Int(20));
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 79 |       let _ = env.set("x".to_string(), Value::Int(20));
[INFO] [stdout]    |       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `RuntimeErrorKind`
[INFO] [stdout]   --> src/environment.rs:69:31
[INFO] [stdout]    |
[INFO] [stdout] 69 |       assert!(matches!(x, Err(RuntimeErrorKind)));
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_RuntimeErrorKind`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Identifier` is never constructed
[INFO] [stdout]   --> src/eva.rs:20:3
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Expr {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 20 |   Identifier(String)
[INFO] [stdout]    |   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind` and `message` are never read
[INFO] [stdout]   --> src/error.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct RuntimeError {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 11 |   pub kind: RuntimeErrorKind,
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 12 |   pub message: String,
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RuntimeError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     global_env.define("null".to_string(), Value::Null);
[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] 32 |     let _ = global_env.define("null".to_string(), Value::Null);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     global_env.define("true".to_string(), Value::Boolean(true));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let _ = global_env.define("true".to_string(), Value::Boolean(true));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/eva.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     global_env.define("false".to_string(), Value::Boolean(false)); 
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let _ = global_env.define("false".to_string(), Value::Boolean(false)); 
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `RuntimeErrorKind` should have a snake case name
[INFO] [stdout]   --> src/environment.rs:69:31
[INFO] [stdout]    |
[INFO] [stdout] 69 |       assert!(matches!(x, Err(RuntimeErrorKind)));
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `runtime_error_kind`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/environment.rs:78:7
[INFO] [stdout]    |
[INFO] [stdout] 78 |       env.define("x".to_string(), Value::Int(10));
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 78 |       let _ = env.define("x".to_string(), Value::Int(10));
[INFO] [stdout]    |       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/environment.rs:79:7
[INFO] [stdout]    |
[INFO] [stdout] 79 |       env.set("x".to_string(), Value::Int(20));
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 79 |       let _ = env.set("x".to_string(), Value::Int(20));
[INFO] [stdout]    |       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.50s
[INFO] running `Command { std: "docker" "inspect" "ee9d8499dfaf80a4a2897bfa18144a8086b3a666a57df349f13624e336e22745", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ee9d8499dfaf80a4a2897bfa18144a8086b3a666a57df349f13624e336e22745", kill_on_drop: false }`
[INFO] [stdout] ee9d8499dfaf80a4a2897bfa18144a8086b3a666a57df349f13624e336e22745
