[INFO] cloning repository https://github.com/geefuoco/repl_rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/geefuoco/repl_rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeefuoco%2Frepl_rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeefuoco%2Frepl_rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 574700c83152c9894e6f9f18cb3683b1e367e60f
[INFO] checking geefuoco/repl_rs against 5c543b0b8c73c7b72bc8284ced4fb22ead15734d for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeefuoco%2Frepl_rs" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/geefuoco/repl_rs
[INFO] finished tweaking git repo https://github.com/geefuoco/repl_rs
[INFO] tweaked toml for git repo https://github.com/geefuoco/repl_rs written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/geefuoco/repl_rs on toolchain 5c543b0b8c73c7b72bc8284ced4fb22ead15734d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/geefuoco/repl_rs 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" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0b57be0b2168e035ef08b4c22f3e4d7ca2a9a345d86695c0740723dc5a971eee
[INFO] running `Command { std: "docker" "start" "0b57be0b2168e035ef08b4c22f3e4d7ca2a9a345d86695c0740723dc5a971eee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0b57be0b2168e035ef08b4c22f3e4d7ca2a9a345d86695c0740723dc5a971eee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0b57be0b2168e035ef08b4c22f3e4d7ca2a9a345d86695c0740723dc5a971eee" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0b57be0b2168e035ef08b4c22f3e4d7ca2a9a345d86695c0740723dc5a971eee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0b57be0b2168e035ef08b4c22f3e4d7ca2a9a345d86695c0740723dc5a971eee" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking repl_rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/object/environment.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut map: HashMap<String, Objects> = HashMap::new();
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/object/environment.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut map: HashMap<String, Objects> = HashMap::new();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/object/environment.rs:75:18
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/object/environment.rs:81:27
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/ast/mod.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Expressions {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 48 |     pub fn as_call_expression(self) -> Option<Box<CallExpression>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn as_prefix_expression(self) -> Option<Box<PrefixExpression>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn as_function_literal(self) -> Option<FunctionLiteral> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn as_infix_expression(self) -> Option<Box<InfixExpression>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn as_if_expression(self) -> Option<IfExpression> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn as_integer_literal(self) -> Option<IntegerLiteral> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn as_boolean_literal(self) -> Option<BooleanLiteral> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn as_identifier(self) -> Option<Identifier> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn as_string_literal(self) -> Option<StringLiteral> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BlockStatement` is never constructed
[INFO] [stdout]    --> src/ast/mod.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub enum Statements {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 129 |     BlockStatement(BlockStatement),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Statements` 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: methods `as_let_statement`, `as_return_statement`, `as_expression_statement`, and `as_block_statement` are never used
[INFO] [stdout]    --> src/ast/mod.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl Statements {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 135 |     pub fn as_let_statement(self) -> Option<LetStatement> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn as_return_statement(self) -> Option<ReturnStatement> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn as_expression_statement(self) -> Option<ExpressionStatement> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn as_block_statement(self) -> Option<BlockStatement> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Statement` is never used
[INFO] [stdout]    --> src/ast/mod.rs:177:11
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub trait Statement: Node {
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Expression` is never used
[INFO] [stdout]    --> src/ast/mod.rs:181:11
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub trait Expression: Node {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token` and `statements` are never used
[INFO] [stdout]   --> src/ast/block_statement.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl BlockStatement {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn token(&self) -> &Token {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn statements(&self) -> &[Statements] {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `function` is never used
[INFO] [stdout]   --> src/ast/call_expression.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl CallExpression {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn function(&self) -> &Expressions {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expression` is never used
[INFO] [stdout]   --> src/ast/expression_statement.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl ExpressionStatement {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn expression(&self) -> &Expressions {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `body` is never used
[INFO] [stdout]   --> src/ast/function_literal.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl FunctionLiteral {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn body(&self) -> &BlockStatement {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `consequence` and `condition` are never used
[INFO] [stdout]   --> src/ast/if_expression.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl IfExpression {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn consequence(&self) -> &BlockStatement {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn condition(&self) -> &Box<Expressions> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `expression_right` and `expression_left` are never used
[INFO] [stdout]   --> src/ast/infix_expression.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl InfixExpression {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn expression_right(&self) -> &Expressions {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn expression_left(&self) -> &Expressions {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token` and `value` are never used
[INFO] [stdout]   --> src/ast/let_statement.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl LetStatement {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn token(&self) -> &Token {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn value(&self) -> &Expressions {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expression_right` is never used
[INFO] [stdout]   --> src/ast/prefix_expression.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl PrefixExpression {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn expression_right(&self) -> &Expressions {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token` and `return_value` are never used
[INFO] [stdout]   --> src/ast/return_statement.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ReturnStatement {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn token(&self) -> &Token {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn return_value(&self) -> &Expressions {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `as_null`, `as_return`, `as_fn`, `as_err`, `as_builtin`, and `is_null` are never used
[INFO] [stdout]    --> src/object/mod.rs:94:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl Objects {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn as_null(self) -> Option<Null> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn as_return(self) -> Option<Return> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn as_fn(self) -> Option<Function> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn as_err(self) -> Option<ErrorObject> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn as_builtin(self) -> Option<Rc<BuiltinWrapper>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn is_null(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CastError` is never constructed
[INFO] [stdout]    --> src/object/mod.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub struct CastError {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_builtin` is never used
[INFO] [stdout]    --> src/object/mod.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub trait Object: Debug {
[INFO] [stdout]     |           ------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 213 |     fn is_builtin(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value` is never used
[INFO] [stdout]   --> src/object/boolean.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Boolean {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn value(&self) -> &bool {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `message` is never used
[INFO] [stdout]   --> src/object/error.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Error {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn message(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `body` is never used
[INFO] [stdout]   --> src/object/function.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Function {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn body(&self) -> &BlockStatement {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value` is never used
[INFO] [stdout]   --> src/object/return_object.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Return {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn value(&self) -> &Box<Objects> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     repl::start();
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let _unused = repl::start();
[INFO] [stdout]    |     +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]  --> src/object/builtin_function.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]   |                        --------- in this derive macro expansion
[INFO] [stdout] 5 | pub enum BuiltinFunction {
[INFO] [stdout] 6 |     Default(fn(args: &[Objects]) -> Objects),
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: the address of the same function can vary between different codegen units
[INFO] [stdout]   = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]   = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]   = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]  --> src/object/builtin_function.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]   |                                   ---------- in this derive macro expansion
[INFO] [stdout] 5 | pub enum BuiltinFunction {
[INFO] [stdout] 6 |     Default(fn(args: &[Objects]) -> Objects),
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: the address of the same function can vary between different codegen units
[INFO] [stdout]   = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]   = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/object/environment.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut map: HashMap<String, Objects> = HashMap::new();
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/object/environment.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut map: HashMap<String, Objects> = HashMap::new();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/object/environment.rs:75:18
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/object/environment.rs:81:27
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BlockStatement` is never constructed
[INFO] [stdout]    --> src/ast/mod.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub enum Statements {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 129 |     BlockStatement(BlockStatement),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Statements` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_block_statement` is never used
[INFO] [stdout]    --> src/ast/mod.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl Statements {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn as_block_statement(self) -> Option<BlockStatement> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Statement` is never used
[INFO] [stdout]    --> src/ast/mod.rs:177:11
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub trait Statement: Node {
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Expression` is never used
[INFO] [stdout]    --> src/ast/mod.rs:181:11
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub trait Expression: Node {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token` is never used
[INFO] [stdout]   --> src/ast/block_statement.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl BlockStatement {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn token(&self) -> &Token {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token` is never used
[INFO] [stdout]   --> src/ast/let_statement.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl LetStatement {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn token(&self) -> &Token {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token` is never used
[INFO] [stdout]   --> src/ast/return_statement.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ReturnStatement {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn token(&self) -> &Token {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `as_null`, `as_return`, and `as_builtin` are never used
[INFO] [stdout]    --> src/object/mod.rs:94:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl Objects {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn as_null(self) -> Option<Null> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn as_return(self) -> Option<Return> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn as_builtin(self) -> Option<Rc<BuiltinWrapper>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CastError` is never constructed
[INFO] [stdout]    --> src/object/mod.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub struct CastError {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_builtin` is never used
[INFO] [stdout]    --> src/object/mod.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub trait Object: Debug {
[INFO] [stdout]     |           ------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 213 |     fn is_builtin(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     repl::start();
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let _unused = repl::start();
[INFO] [stdout]    |     +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]  --> src/object/builtin_function.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]   |                        --------- in this derive macro expansion
[INFO] [stdout] 5 | pub enum BuiltinFunction {
[INFO] [stdout] 6 |     Default(fn(args: &[Objects]) -> Objects),
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: the address of the same function can vary between different codegen units
[INFO] [stdout]   = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]   = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]   = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]  --> src/object/builtin_function.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]   |                                   ---------- in this derive macro expansion
[INFO] [stdout] 5 | pub enum BuiltinFunction {
[INFO] [stdout] 6 |     Default(fn(args: &[Objects]) -> Objects),
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: the address of the same function can vary between different codegen units
[INFO] [stdout]   = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]   = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.71s
[INFO] running `Command { std: "docker" "inspect" "0b57be0b2168e035ef08b4c22f3e4d7ca2a9a345d86695c0740723dc5a971eee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0b57be0b2168e035ef08b4c22f3e4d7ca2a9a345d86695c0740723dc5a971eee", kill_on_drop: false }`
[INFO] [stdout] 0b57be0b2168e035ef08b4c22f3e4d7ca2a9a345d86695c0740723dc5a971eee
