[INFO] cloning repository https://github.com/evomassiny/rlox
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/evomassiny/rlox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fevomassiny%2Frlox", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fevomassiny%2Frlox'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e7e2863e741a17cc6f45e85c01ee9749d8172ffc
[INFO] testing evomassiny/rlox against 1.75.0 for beta-1.76-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fevomassiny%2Frlox" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/evomassiny/rlox on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/evomassiny/rlox
[INFO] finished tweaking git repo https://github.com/evomassiny/rlox
[INFO] tweaked toml for git repo https://github.com/evomassiny/rlox written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/evomassiny/rlox already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 844c26eec17852362b4e3b9c789f26eaf54eb0757be47e9933213c52f6d7710f
[INFO] running `Command { std: "docker" "start" "-a" "844c26eec17852362b4e3b9c789f26eaf54eb0757be47e9933213c52f6d7710f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "844c26eec17852362b4e3b9c789f26eaf54eb0757be47e9933213c52f6d7710f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "844c26eec17852362b4e3b9c789f26eaf54eb0757be47e9933213c52f6d7710f", kill_on_drop: false }`
[INFO] [stdout] 844c26eec17852362b4e3b9c789f26eaf54eb0757be47e9933213c52f6d7710f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a982513f79eb63aebbf97a723fbcbe2c265e1f2668e3207a4181d4b8b4abbb70
[INFO] running `Command { std: "docker" "start" "-a" "a982513f79eb63aebbf97a723fbcbe2c265e1f2668e3207a4181d4b8b4abbb70", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling proc-macro2 v1.0.46
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling unicode-ident v1.0.4
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling syn v1.0.102
[INFO] [stderr]    Compiling libc v0.2.134
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling os_str_bytes v6.3.0
[INFO] [stderr]    Compiling lexer v0.1.0 (/opt/rustwide/workdir/lexer)
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling heck v0.4.0
[INFO] [stderr]    Compiling termcolor v1.1.3
[INFO] [stderr]    Compiling once_cell v1.15.0
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling textwrap v0.15.1
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling heap v0.1.0 (/opt/rustwide/workdir/heap)
[INFO] [stdout] warning: unused import: `std::convert::AsRef`
[INFO] [stdout]  --> heap/src/arrays.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::convert::AsRef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LINE_SIZE_BITS`
[INFO] [stdout]  --> heap/src/block_headers.rs:1:69
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blocks::{BlockOffset, BLOCK_SIZE, LINE_COUNT, LINE_SIZE, LINE_SIZE_BITS};
[INFO] [stdout]   |                                                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::heap_objects::Header`
[INFO] [stdout]  --> heap/src/blocks.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::heap_objects::Header;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::addr_of`
[INFO] [stdout]  --> heap/src/boxed_values.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ptr::addr_of;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block`, `LINE_COUNT`
[INFO] [stdout]  --> heap/src/compactor.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 |     blocks::{Block, LINE_COUNT},
[INFO] [stdout]   |              ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::NonNull`
[INFO] [stdout]   --> heap/src/compactor.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ptr::NonNull;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arrays::Array`
[INFO] [stdout]  --> heap/src/heap.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::arrays::Array;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockHeader`, `BlockState`
[INFO] [stdout]  --> heap/src/heap.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stdout]   |                            ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockError`, `Block`, `LINE_COUNT`
[INFO] [stdout]  --> heap/src/heap.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stdout]   |                     ^^^^^  ^^^^^^^^^^              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stdout]  --> heap/src/heap.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::boxed_values::BoxedValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stdout]  --> heap/src/heap.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lists::List`
[INFO] [stdout]  --> heap/src/heap.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::lists::List;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strings::Str`
[INFO] [stdout]  --> heap/src/heap.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::strings::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stdout]   --> heap/src/heap.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::tombstones::Tombstone;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `values::Value`
[INFO] [stdout]  --> heap/src/heap_objects.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 |     tombstones::Tombstone, values::Value,
[INFO] [stdout]   |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> heap/src/lists.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | /         /// SAFETY:
[INFO] [stdout] 129 | |         /// safe because both &self and self.array_ptr are non Null
[INFO] [stdout]     | |___________________________________________________________________^
[INFO] [stdout] 130 | /         unsafe {
[INFO] [stdout] 131 | |             let array_header_ptr = addr_of!((*self.array_ptr).header);
[INFO] [stdout] 132 | |             let self_ptr = Some(NonNull::new_unchecked(self as *const _ as *mut Header));
[INFO] [stdout] 133 | |             object_ptrs.push(ObjectRef {
[INFO] [stdout] ...   |
[INFO] [stdout] 136 | |             });
[INFO] [stdout] 137 | |         }
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockHeader`
[INFO] [stdout]  --> heap/src/memory.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stdout]   |                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockError`
[INFO] [stdout]  --> heap/src/memory.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stdout]  --> heap/src/memory.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::boxed_values::BoxedValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HeapCompactor`, `LivenessFlag`
[INFO] [stdout]  --> heap/src/memory.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::compactor::{HeapCompactor, LivenessFlag};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stdout]  --> heap/src/memory.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lists::List`
[INFO] [stdout]  --> heap/src/memory.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::lists::List;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strings::Str`
[INFO] [stdout]  --> heap/src/memory.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::strings::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stdout]  --> heap/src/memory.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::tombstones::Tombstone;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::values::Value`
[INFO] [stdout]  --> heap/src/memory.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::values::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::blocks::InBlockPtr`
[INFO] [stdout]  --> heap/src/tombstones.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blocks::InBlockPtr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::heap::Heap`
[INFO] [stdout]  --> heap/src/tombstones.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::heap::Heap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::MemoryError`
[INFO] [stdout]  --> heap/src/tombstones.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::memory::MemoryError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling parser v0.1.0 (/opt/rustwide/workdir/parser)
[INFO] [stderr]    Compiling clap_lex v0.2.4
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> heap/src/boxed_values.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |             let mut boxed_value = ptr.as_ptr().cast::<Self>();
[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: variable does not need to be mutable
[INFO] [stdout]   --> heap/src/lists.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let mut list = ptr.as_ptr().cast::<Self>();
[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]   --> heap/src/strings.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let mut string = ptr.as_ptr().cast::<Self>();
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TooBig` is never constructed
[INFO] [stdout]   --> heap/src/blocks.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum BlockError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     TooBig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BlockError` 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] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> parser/src/stmt_parser.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |             TokenKind::For => {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stdout] warning: variant `Primary` is never constructed
[INFO] [stdout]   --> parser/src/expr_parser.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Precedence {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 37 |     Primary = 9,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Precedence` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling resolver v0.1.0 (/opt/rustwide/workdir/resolver)
[INFO] [stdout] warning: 32 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SymbolId`, `Symbol`
[INFO] [stdout]  --> resolver/src/resolve.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::symbols::{Sym, Symbol, SymbolId, SymbolTable};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprKind`, `Expr`
[INFO] [stdout]  --> resolver/src/resolve.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprKind`, `Expr`, `StmtKind`, `Stmt`
[INFO] [stdout]  --> resolver/src/scopes.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Globals`, `ScopeChain`
[INFO] [stdout]  --> resolver/src/lib.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use scopes::{Globals, ScopeChain};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:23
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_else`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:29
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_else`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:24
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:30
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:70:14
[INFO] [stdout]    |
[INFO] [stdout] 70 |         Expr(expr) => todo!(),
[INFO] [stdout]    |              ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |         Print(expr) => todo!(),
[INFO] [stdout]    |               ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:72:16
[INFO] [stdout]    |
[INFO] [stdout] 72 |         Return(maybe_expr) => todo!(),
[INFO] [stdout]    |                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> resolver/src/resolve.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Var(name, intializer) => todo!(),
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intializer`
[INFO] [stdout]   --> resolver/src/resolve.rs:73:19
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Var(name, intializer) => todo!(),
[INFO] [stdout]    |                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |         While(condition, body) => todo!(),
[INFO] [stdout]    |               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:74:26
[INFO] [stdout]    |
[INFO] [stdout] 74 |         While(condition, body) => todo!(),
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_initializer`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_initializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_increment`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:49
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_increment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:66
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbs`
[INFO] [stdout]   --> resolver/src/scopes.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut symbs: Vec<SymbolId> = Vec::new();
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_symbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]   --> resolver/src/scopes.rs:57:39
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn resolve(&self, name: &str, table: &SymbolTable) -> Option<Sym> {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> resolver/src/scopes.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut symbs: Vec<SymbolId> = Vec::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: fields `roots` and `symbols` are never read
[INFO] [stdout]   --> resolver/src/resolve.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Ast {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 15 |     roots: Vec<Stmt<Sym>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 16 |     symbols: SymbolTable,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Ast` 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: method `resolve_precise` is never used
[INFO] [stdout]   --> resolver/src/scopes.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Globals {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn resolve_precise(&self, name: &str, src: &Span, table: &SymbolTable) -> Option<SymbolId> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> resolver/src/scopes.rs:127:19
[INFO] [stdout]     |
[INFO] [stdout] 127 |             while scope_idx >= 0 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 27 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling clap_derive v3.2.18
[INFO] [stderr]    Compiling clap v3.2.22
[INFO] [stderr]    Compiling rlox v0.1.0 (/opt/rustwide/workdir/rlox)
[INFO] [stdout] warning: unused import: `Ast`
[INFO] [stdout]  --> rlox/src/main.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use resolver::{resolve_names, Ast};
[INFO] [stdout]   |                               ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 7.09s
[INFO] running `Command { std: "docker" "inspect" "a982513f79eb63aebbf97a723fbcbe2c265e1f2668e3207a4181d4b8b4abbb70", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a982513f79eb63aebbf97a723fbcbe2c265e1f2668e3207a4181d4b8b4abbb70", kill_on_drop: false }`
[INFO] [stdout] a982513f79eb63aebbf97a723fbcbe2c265e1f2668e3207a4181d4b8b4abbb70
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e0669ae0d6f128cf24bc52a71d3bf691c64bfe5a38e6d1acde0a125acf07eb87
[INFO] running `Command { std: "docker" "start" "-a" "e0669ae0d6f128cf24bc52a71d3bf691c64bfe5a38e6d1acde0a125acf07eb87", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> parser/src/stmt_parser.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |             TokenKind::For => {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Primary` is never constructed
[INFO] [stdout]   --> parser/src/expr_parser.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Precedence {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 37 |     Primary = 9,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Precedence` has derived impls for the traits `Debug` and `Clone`, 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: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::AsRef`
[INFO] [stdout]  --> heap/src/arrays.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::convert::AsRef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LINE_SIZE_BITS`
[INFO] [stdout]  --> heap/src/block_headers.rs:1:69
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blocks::{BlockOffset, BLOCK_SIZE, LINE_COUNT, LINE_SIZE, LINE_SIZE_BITS};
[INFO] [stdout]   |                                                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::heap_objects::Header`
[INFO] [stdout]  --> heap/src/blocks.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::heap_objects::Header;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::addr_of`
[INFO] [stdout]  --> heap/src/boxed_values.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ptr::addr_of;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block`, `LINE_COUNT`
[INFO] [stdout]  --> heap/src/compactor.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 |     blocks::{Block, LINE_COUNT},
[INFO] [stdout]   |              ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::NonNull`
[INFO] [stdout]   --> heap/src/compactor.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ptr::NonNull;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arrays::Array`
[INFO] [stdout]  --> heap/src/heap.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::arrays::Array;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockHeader`, `BlockState`
[INFO] [stdout]  --> heap/src/heap.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stdout]   |                            ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockError`, `Block`, `LINE_COUNT`
[INFO] [stdout]  --> heap/src/heap.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stdout]   |                     ^^^^^  ^^^^^^^^^^              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stdout]  --> heap/src/heap.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::boxed_values::BoxedValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stdout]  --> heap/src/heap.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lists::List`
[INFO] [stdout]  --> heap/src/heap.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::lists::List;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strings::Str`
[INFO] [stdout]  --> heap/src/heap.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::strings::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stdout]   --> heap/src/heap.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::tombstones::Tombstone;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `values::Value`
[INFO] [stdout]  --> heap/src/heap_objects.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 |     tombstones::Tombstone, values::Value,
[INFO] [stdout]   |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> heap/src/lists.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | /         /// SAFETY:
[INFO] [stdout] 129 | |         /// safe because both &self and self.array_ptr are non Null
[INFO] [stdout]     | |___________________________________________________________________^
[INFO] [stdout] 130 | /         unsafe {
[INFO] [stdout] 131 | |             let array_header_ptr = addr_of!((*self.array_ptr).header);
[INFO] [stdout] 132 | |             let self_ptr = Some(NonNull::new_unchecked(self as *const _ as *mut Header));
[INFO] [stdout] 133 | |             object_ptrs.push(ObjectRef {
[INFO] [stdout] ...   |
[INFO] [stdout] 136 | |             });
[INFO] [stdout] 137 | |         }
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockHeader`
[INFO] [stdout]  --> heap/src/memory.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stdout]   |                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockError`
[INFO] [stdout]  --> heap/src/memory.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stdout]  --> heap/src/memory.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::boxed_values::BoxedValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HeapCompactor`, `LivenessFlag`
[INFO] [stdout]  --> heap/src/memory.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::compactor::{HeapCompactor, LivenessFlag};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stdout]  --> heap/src/memory.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lists::List`
[INFO] [stdout]  --> heap/src/memory.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::lists::List;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strings::Str`
[INFO] [stdout]  --> heap/src/memory.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::strings::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stdout]  --> heap/src/memory.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::tombstones::Tombstone;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::values::Value`
[INFO] [stdout]  --> heap/src/memory.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::values::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::blocks::InBlockPtr`
[INFO] [stdout]  --> heap/src/tombstones.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blocks::InBlockPtr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::heap::Heap`
[INFO] [stdout]  --> heap/src/tombstones.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::heap::Heap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::MemoryError`
[INFO] [stdout]  --> heap/src/tombstones.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::memory::MemoryError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> heap/src/boxed_values.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |             let mut boxed_value = ptr.as_ptr().cast::<Self>();
[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: variable does not need to be mutable
[INFO] [stdout]   --> heap/src/lists.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let mut list = ptr.as_ptr().cast::<Self>();
[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]   --> heap/src/strings.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let mut string = ptr.as_ptr().cast::<Self>();
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TooBig` is never constructed
[INFO] [stdout]   --> heap/src/blocks.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum BlockError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     TooBig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BlockError` 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] [stderr]    Compiling parser v0.1.0 (/opt/rustwide/workdir/parser)
[INFO] [stdout] warning: 32 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling heap v0.1.0 (/opt/rustwide/workdir/heap)
[INFO] [stderr]    Compiling lexer v0.1.0 (/opt/rustwide/workdir/lexer)
[INFO] [stdout] warning: unused imports: `SymbolId`, `Symbol`
[INFO] [stdout]  --> resolver/src/resolve.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::symbols::{Sym, Symbol, SymbolId, SymbolTable};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprKind`, `Expr`
[INFO] [stdout]  --> resolver/src/resolve.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprKind`, `Expr`, `StmtKind`, `Stmt`
[INFO] [stdout]  --> resolver/src/scopes.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Globals`, `ScopeChain`
[INFO] [stdout]  --> resolver/src/lib.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use scopes::{Globals, ScopeChain};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:23
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_else`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:29
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_else`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:24
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:30
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:70:14
[INFO] [stdout]    |
[INFO] [stdout] 70 |         Expr(expr) => todo!(),
[INFO] [stdout]    |              ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |         Print(expr) => todo!(),
[INFO] [stdout]    |               ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:72:16
[INFO] [stdout]    |
[INFO] [stdout] 72 |         Return(maybe_expr) => todo!(),
[INFO] [stdout]    |                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> resolver/src/resolve.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Var(name, intializer) => todo!(),
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intializer`
[INFO] [stdout]   --> resolver/src/resolve.rs:73:19
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Var(name, intializer) => todo!(),
[INFO] [stdout]    |                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |         While(condition, body) => todo!(),
[INFO] [stdout]    |               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:74:26
[INFO] [stdout]    |
[INFO] [stdout] 74 |         While(condition, body) => todo!(),
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_initializer`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_initializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_increment`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:49
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_increment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:66
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbs`
[INFO] [stdout]   --> resolver/src/scopes.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut symbs: Vec<SymbolId> = Vec::new();
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_symbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]   --> resolver/src/scopes.rs:57:39
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn resolve(&self, name: &str, table: &SymbolTable) -> Option<Sym> {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> resolver/src/scopes.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut symbs: Vec<SymbolId> = Vec::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: fields `roots` and `symbols` are never read
[INFO] [stdout]   --> resolver/src/resolve.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Ast {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 15 |     roots: Vec<Stmt<Sym>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 16 |     symbols: SymbolTable,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Ast` 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: method `resolve_precise` is never used
[INFO] [stdout]   --> resolver/src/scopes.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Globals {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn resolve_precise(&self, name: &str, src: &Span, table: &SymbolTable) -> Option<SymbolId> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling resolver v0.1.0 (/opt/rustwide/workdir/resolver)
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> resolver/src/scopes.rs:127:19
[INFO] [stdout]     |
[INFO] [stdout] 127 |             while scope_idx >= 0 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 27 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rlox v0.1.0 (/opt/rustwide/workdir/rlox)
[INFO] [stdout] warning: unused imports: `SymbolId`, `Symbol`
[INFO] [stdout]  --> resolver/src/resolve.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::symbols::{Sym, Symbol, SymbolId, SymbolTable};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprKind`, `Expr`
[INFO] [stdout]  --> resolver/src/resolve.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprKind`, `Expr`, `StmtKind`, `Stmt`
[INFO] [stdout]  --> resolver/src/scopes.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Globals`, `ScopeChain`
[INFO] [stdout]  --> resolver/src/lib.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use scopes::{Globals, ScopeChain};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ast`
[INFO] [stdout]  --> rlox/src/main.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use resolver::{resolve_names, Ast};
[INFO] [stdout]   |                               ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::AsRef`
[INFO] [stdout]  --> heap/src/arrays.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::convert::AsRef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LINE_SIZE_BITS`
[INFO] [stdout]  --> heap/src/block_headers.rs:1:69
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blocks::{BlockOffset, BLOCK_SIZE, LINE_COUNT, LINE_SIZE, LINE_SIZE_BITS};
[INFO] [stdout]   |                                                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::heap_objects::Header`
[INFO] [stdout]  --> heap/src/blocks.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::heap_objects::Header;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::addr_of`
[INFO] [stdout]  --> heap/src/boxed_values.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ptr::addr_of;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block`, `LINE_COUNT`
[INFO] [stdout]  --> heap/src/compactor.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 |     blocks::{Block, LINE_COUNT},
[INFO] [stdout]   |              ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::NonNull`
[INFO] [stdout]   --> heap/src/compactor.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ptr::NonNull;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arrays::Array`
[INFO] [stdout]  --> heap/src/heap.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::arrays::Array;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockHeader`, `BlockState`
[INFO] [stdout]  --> heap/src/heap.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stdout]   |                            ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockError`, `Block`, `LINE_COUNT`
[INFO] [stdout]  --> heap/src/heap.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stdout]   |                     ^^^^^  ^^^^^^^^^^              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stdout]  --> heap/src/heap.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::boxed_values::BoxedValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stdout]  --> heap/src/heap.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lists::List`
[INFO] [stdout]  --> heap/src/heap.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::lists::List;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strings::Str`
[INFO] [stdout]  --> heap/src/heap.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::strings::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stdout]   --> heap/src/heap.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::tombstones::Tombstone;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `values::Value`
[INFO] [stdout]  --> heap/src/heap_objects.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 |     tombstones::Tombstone, values::Value,
[INFO] [stdout]   |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> heap/src/lists.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | /         /// SAFETY:
[INFO] [stdout] 129 | |         /// safe because both &self and self.array_ptr are non Null
[INFO] [stdout]     | |___________________________________________________________________^
[INFO] [stdout] 130 | /         unsafe {
[INFO] [stdout] 131 | |             let array_header_ptr = addr_of!((*self.array_ptr).header);
[INFO] [stdout] 132 | |             let self_ptr = Some(NonNull::new_unchecked(self as *const _ as *mut Header));
[INFO] [stdout] 133 | |             object_ptrs.push(ObjectRef {
[INFO] [stdout] ...   |
[INFO] [stdout] 136 | |             });
[INFO] [stdout] 137 | |         }
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockHeader`
[INFO] [stdout]  --> heap/src/memory.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stdout]   |                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockError`
[INFO] [stdout]  --> heap/src/memory.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stdout]  --> heap/src/memory.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::boxed_values::BoxedValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HeapCompactor`, `LivenessFlag`
[INFO] [stdout]  --> heap/src/memory.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::compactor::{HeapCompactor, LivenessFlag};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stdout]  --> heap/src/memory.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lists::List`
[INFO] [stdout]  --> heap/src/memory.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::lists::List;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strings::Str`
[INFO] [stdout]  --> heap/src/memory.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::strings::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stdout]  --> heap/src/memory.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::tombstones::Tombstone;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::values::Value`
[INFO] [stdout]  --> heap/src/memory.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::values::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::blocks::InBlockPtr`
[INFO] [stdout]  --> heap/src/tombstones.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blocks::InBlockPtr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::heap::Heap`
[INFO] [stdout]  --> heap/src/tombstones.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::heap::Heap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::MemoryError`
[INFO] [stdout]  --> heap/src/tombstones.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::memory::MemoryError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:23
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_else`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:29
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_else`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:24
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:30
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:70:14
[INFO] [stdout]    |
[INFO] [stdout] 70 |         Expr(expr) => todo!(),
[INFO] [stdout]    |              ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |         Print(expr) => todo!(),
[INFO] [stdout]    |               ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:72:16
[INFO] [stdout]    |
[INFO] [stdout] 72 |         Return(maybe_expr) => todo!(),
[INFO] [stdout]    |                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> resolver/src/resolve.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Var(name, intializer) => todo!(),
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intializer`
[INFO] [stdout]   --> resolver/src/resolve.rs:73:19
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Var(name, intializer) => todo!(),
[INFO] [stdout]    |                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |         While(condition, body) => todo!(),
[INFO] [stdout]    |               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:74:26
[INFO] [stdout]    |
[INFO] [stdout] 74 |         While(condition, body) => todo!(),
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_initializer`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_initializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_increment`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:49
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_increment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:66
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbs`
[INFO] [stdout]   --> resolver/src/scopes.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut symbs: Vec<SymbolId> = Vec::new();
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_symbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]   --> resolver/src/scopes.rs:57:39
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn resolve(&self, name: &str, table: &SymbolTable) -> Option<Sym> {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> resolver/src/scopes.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut symbs: Vec<SymbolId> = Vec::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: fields `roots` and `symbols` are never read
[INFO] [stdout]   --> resolver/src/resolve.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Ast {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 15 |     roots: Vec<Stmt<Sym>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 16 |     symbols: SymbolTable,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Ast` 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: method `resolve_precise` is never used
[INFO] [stdout]   --> resolver/src/scopes.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Globals {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn resolve_precise(&self, name: &str, src: &Span, table: &SymbolTable) -> Option<SymbolId> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> resolver/src/scopes.rs:127:19
[INFO] [stdout]     |
[INFO] [stdout] 127 |             while scope_idx >= 0 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> heap/src/boxed_values.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |             let mut boxed_value = ptr.as_ptr().cast::<Self>();
[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: variable does not need to be mutable
[INFO] [stdout]   --> heap/src/lists.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let mut list = ptr.as_ptr().cast::<Self>();
[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]   --> heap/src/strings.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let mut string = ptr.as_ptr().cast::<Self>();
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TooBig` is never constructed
[INFO] [stdout]   --> heap/src/blocks.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum BlockError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     TooBig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BlockError` 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: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> heap/src/lib.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 109 |     drop(str_b);
[INFO] [stdout]     |     ^^^^^-----^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          argument has type `&mut Str`
[INFO] [stdout]     |
[INFO] [stdout]     = note: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> parser/src/stmt_parser.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |             TokenKind::For => {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 27 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Primary` is never constructed
[INFO] [stdout]   --> parser/src/expr_parser.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Precedence {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 37 |     Primary = 9,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Precedence` has derived impls for the traits `Debug` and `Clone`, 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: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 33 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.58s
[INFO] running `Command { std: "docker" "inspect" "e0669ae0d6f128cf24bc52a71d3bf691c64bfe5a38e6d1acde0a125acf07eb87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e0669ae0d6f128cf24bc52a71d3bf691c64bfe5a38e6d1acde0a125acf07eb87", kill_on_drop: false }`
[INFO] [stdout] e0669ae0d6f128cf24bc52a71d3bf691c64bfe5a38e6d1acde0a125acf07eb87
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 6245bc319108bde5295f4f8dc05ba88eb32b1a82a8c0e6b7e907ac45d3fe72ad
[INFO] running `Command { std: "docker" "start" "-a" "6245bc319108bde5295f4f8dc05ba88eb32b1a82a8c0e6b7e907ac45d3fe72ad", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> parser/src/stmt_parser.rs:104:13
[INFO] [stderr]     |
[INFO] [stderr] 104 |             TokenKind::For => {
[INFO] [stderr]     |             ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Primary` is never constructed
[INFO] [stderr]   --> parser/src/expr_parser.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub enum Precedence {
[INFO] [stderr]    |          ---------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 37 |     Primary = 9,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Precedence` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `parser` (lib) generated 2 warnings
[INFO] [stderr] warning: unused imports: `SymbolId`, `Symbol`
[INFO] [stderr]  --> resolver/src/resolve.rs:2:27
[INFO] [stderr]   |
[INFO] [stderr] 2 | use super::symbols::{Sym, Symbol, SymbolId, SymbolTable};
[INFO] [stderr]   |                           ^^^^^^  ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ExprKind`, `Expr`
[INFO] [stderr]  --> resolver/src/resolve.rs:4:14
[INFO] [stderr]   |
[INFO] [stderr] 4 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stderr]   |              ^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ExprKind`, `Expr`, `StmtKind`, `Stmt`
[INFO] [stderr]  --> resolver/src/scopes.rs:3:14
[INFO] [stderr]   |
[INFO] [stderr] 3 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stderr]   |              ^^^^  ^^^^^^^^  ^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Globals`, `ScopeChain`
[INFO] [stderr]  --> resolver/src/lib.rs:8:14
[INFO] [stderr]   |
[INFO] [stderr] 8 | use scopes::{Globals, ScopeChain};
[INFO] [stderr]   |              ^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `condition`
[INFO] [stderr]   --> resolver/src/resolve.rs:68:12
[INFO] [stderr]    |
[INFO] [stderr] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stderr]    |            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `then`
[INFO] [stderr]   --> resolver/src/resolve.rs:68:23
[INFO] [stderr]    |
[INFO] [stderr] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stderr]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `maybe_else`
[INFO] [stderr]   --> resolver/src/resolve.rs:68:29
[INFO] [stderr]    |
[INFO] [stderr] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stderr]    |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_else`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> resolver/src/resolve.rs:69:18
[INFO] [stderr]    |
[INFO] [stderr] 69 |         Function(name, args, body) => todo!(),
[INFO] [stderr]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `args`
[INFO] [stderr]   --> resolver/src/resolve.rs:69:24
[INFO] [stderr]    |
[INFO] [stderr] 69 |         Function(name, args, body) => todo!(),
[INFO] [stderr]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `body`
[INFO] [stderr]   --> resolver/src/resolve.rs:69:30
[INFO] [stderr]    |
[INFO] [stderr] 69 |         Function(name, args, body) => todo!(),
[INFO] [stderr]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `expr`
[INFO] [stderr]   --> resolver/src/resolve.rs:70:14
[INFO] [stderr]    |
[INFO] [stderr] 70 |         Expr(expr) => todo!(),
[INFO] [stderr]    |              ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `expr`
[INFO] [stderr]   --> resolver/src/resolve.rs:71:15
[INFO] [stderr]    |
[INFO] [stderr] 71 |         Print(expr) => todo!(),
[INFO] [stderr]    |               ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `maybe_expr`
[INFO] [stderr]   --> resolver/src/resolve.rs:72:16
[INFO] [stderr]    |
[INFO] [stderr] 72 |         Return(maybe_expr) => todo!(),
[INFO] [stderr]    |                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_expr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> resolver/src/resolve.rs:73:13
[INFO] [stderr]    |
[INFO] [stderr] 73 |         Var(name, intializer) => todo!(),
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `intializer`
[INFO] [stderr]   --> resolver/src/resolve.rs:73:19
[INFO] [stderr]    |
[INFO] [stderr] 73 |         Var(name, intializer) => todo!(),
[INFO] [stderr]    |                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intializer`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `condition`
[INFO] [stderr]   --> resolver/src/resolve.rs:74:15
[INFO] [stderr]    |
[INFO] [stderr] 74 |         While(condition, body) => todo!(),
[INFO] [stderr]    |               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `body`
[INFO] [stderr]   --> resolver/src/resolve.rs:74:26
[INFO] [stderr]    |
[INFO] [stderr] 74 |         While(condition, body) => todo!(),
[INFO] [stderr]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `maybe_initializer`
[INFO] [stderr]   --> resolver/src/resolve.rs:75:13
[INFO] [stderr]    |
[INFO] [stderr] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_initializer`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `maybe_condition`
[INFO] [stderr]   --> resolver/src/resolve.rs:75:32
[INFO] [stderr]    |
[INFO] [stderr] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_condition`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `maybe_increment`
[INFO] [stderr]   --> resolver/src/resolve.rs:75:49
[INFO] [stderr]    |
[INFO] [stderr] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_increment`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `body`
[INFO] [stderr]   --> resolver/src/resolve.rs:75:66
[INFO] [stderr]    |
[INFO] [stderr] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stderr]    |                                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `symbs`
[INFO] [stderr]   --> resolver/src/scopes.rs:58:17
[INFO] [stderr]    |
[INFO] [stderr] 58 |         let mut symbs: Vec<SymbolId> = Vec::new();
[INFO] [stderr]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_symbs`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `table`
[INFO] [stderr]   --> resolver/src/scopes.rs:57:39
[INFO] [stderr]    |
[INFO] [stderr] 57 |     pub fn resolve(&self, name: &str, table: &SymbolTable) -> Option<Sym> {
[INFO] [stderr]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> resolver/src/scopes.rs:58:13
[INFO] [stderr]    |
[INFO] [stderr] 58 |         let mut symbs: Vec<SymbolId> = Vec::new();
[INFO] [stderr]    |             ----^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `roots` and `symbols` are never read
[INFO] [stderr]   --> resolver/src/resolve.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct Ast {
[INFO] [stderr]    |            --- fields in this struct
[INFO] [stderr] 15 |     roots: Vec<Stmt<Sym>>,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 16 |     symbols: SymbolTable,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Ast` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `resolve_precise` is never used
[INFO] [stderr]   --> resolver/src/scopes.rs:44:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl Globals {
[INFO] [stderr]    | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub fn resolve_precise(&self, name: &str, src: &Span, table: &SymbolTable) -> Option<SymbolId> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> resolver/src/scopes.rs:127:19
[INFO] [stderr]     |
[INFO] [stderr] 127 |             while scope_idx >= 0 {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::convert::AsRef`
[INFO] [stderr]  --> heap/src/arrays.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::convert::AsRef;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `LINE_SIZE_BITS`
[INFO] [stderr]  --> heap/src/block_headers.rs:1:69
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::blocks::{BlockOffset, BLOCK_SIZE, LINE_COUNT, LINE_SIZE, LINE_SIZE_BITS};
[INFO] [stderr]   |                                                                     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::heap_objects::Header`
[INFO] [stderr]  --> heap/src/blocks.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::heap_objects::Header;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ptr::addr_of`
[INFO] [stderr]  --> heap/src/boxed_values.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::ptr::addr_of;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Block`, `LINE_COUNT`
[INFO] [stderr]  --> heap/src/compactor.rs:4:14
[INFO] [stderr]   |
[INFO] [stderr] 4 |     blocks::{Block, LINE_COUNT},
[INFO] [stderr]   |              ^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ptr::NonNull`
[INFO] [stderr]   --> heap/src/compactor.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::ptr::NonNull;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::arrays::Array`
[INFO] [stderr]  --> heap/src/heap.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::arrays::Array;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BlockHeader`, `BlockState`
[INFO] [stderr]  --> heap/src/heap.rs:2:28
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stderr]   |                            ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BlockError`, `Block`, `LINE_COUNT`
[INFO] [stderr]  --> heap/src/heap.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stderr]   |                     ^^^^^  ^^^^^^^^^^              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stderr]  --> heap/src/heap.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::boxed_values::BoxedValue;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stderr]  --> heap/src/heap.rs:6:27
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stderr]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::lists::List`
[INFO] [stderr]  --> heap/src/heap.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::lists::List;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::strings::Str`
[INFO] [stderr]  --> heap/src/heap.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::strings::Str;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stderr]   --> heap/src/heap.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::tombstones::Tombstone;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `values::Value`
[INFO] [stderr]  --> heap/src/heap_objects.rs:3:28
[INFO] [stderr]   |
[INFO] [stderr] 3 |     tombstones::Tombstone, values::Value,
[INFO] [stderr]   |                            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> heap/src/lists.rs:128:9
[INFO] [stderr]     |
[INFO] [stderr] 128 | /         /// SAFETY:
[INFO] [stderr] 129 | |         /// safe because both &self and self.array_ptr are non Null
[INFO] [stderr]     | |___________________________________________________________________^
[INFO] [stderr] 130 | /         unsafe {
[INFO] [stderr] 131 | |             let array_header_ptr = addr_of!((*self.array_ptr).header);
[INFO] [stderr] 132 | |             let self_ptr = Some(NonNull::new_unchecked(self as *const _ as *mut Header));
[INFO] [stderr] 133 | |             object_ptrs.push(ObjectRef {
[INFO] [stderr] ...   |
[INFO] [stderr] 136 | |             });
[INFO] [stderr] 137 | |         }
[INFO] [stderr]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `BlockHeader`
[INFO] [stderr]  --> heap/src/memory.rs:1:28
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stderr]   |                            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `BlockError`
[INFO] [stderr]  --> heap/src/memory.rs:2:28
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stderr]   |                            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stderr]  --> heap/src/memory.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::boxed_values::BoxedValue;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HeapCompactor`, `LivenessFlag`
[INFO] [stderr]  --> heap/src/memory.rs:4:24
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::compactor::{HeapCompactor, LivenessFlag};
[INFO] [stderr]   |                        ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stderr]  --> heap/src/memory.rs:5:27
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stderr]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::lists::List`
[INFO] [stderr]  --> heap/src/memory.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::lists::List;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::strings::Str`
[INFO] [stderr]  --> heap/src/memory.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::strings::Str;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stderr]  --> heap/src/memory.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::tombstones::Tombstone;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::values::Value`
[INFO] [stderr]  --> heap/src/memory.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::values::Value;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::blocks::InBlockPtr`
[INFO] [stderr]  --> heap/src/tombstones.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::blocks::InBlockPtr;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::heap::Heap`
[INFO] [stderr]  --> heap/src/tombstones.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::heap::Heap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::memory::MemoryError`
[INFO] [stderr]  --> heap/src/tombstones.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::memory::MemoryError;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> heap/src/boxed_values.rs:24:17
[INFO] [stderr]    |
[INFO] [stderr] 24 |             let mut boxed_value = ptr.as_ptr().cast::<Self>();
[INFO] [stderr]    |                 ----^^^^^^^^^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> heap/src/lists.rs:33:17
[INFO] [stderr]    |
[INFO] [stderr] 33 |             let mut list = ptr.as_ptr().cast::<Self>();
[INFO] [stderr]    |                 ----^^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> heap/src/strings.rs:34:17
[INFO] [stderr]    |
[INFO] [stderr] 34 |             let mut string = ptr.as_ptr().cast::<Self>();
[INFO] [stderr]    |                 ----^^^^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `TooBig` is never constructed
[INFO] [stderr]   --> heap/src/blocks.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub enum BlockError {
[INFO] [stderr]    |          ---------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 17 |     TooBig,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BlockError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `resolver` (lib) generated 27 warnings (run `cargo fix --lib -p resolver` to apply 24 suggestions)
[INFO] [stderr] warning: `heap` (lib) generated 32 warnings (run `cargo fix --lib -p heap` to apply 30 suggestions)
[INFO] [stderr] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stderr]    --> heap/src/lib.rs:109:5
[INFO] [stderr]     |
[INFO] [stderr] 109 |     drop(str_b);
[INFO] [stderr]     |     ^^^^^-----^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          argument has type `&mut Str`
[INFO] [stderr]     |
[INFO] [stderr]     = note: use `let _ = ...` to ignore the expression or result
[INFO] [stderr]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `resolver` (lib test) generated 27 warnings (27 duplicates)
[INFO] [stderr] warning: `parser` (lib test) generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: `heap` (lib test) generated 33 warnings (32 duplicates)
[INFO] [stderr] warning: unused import: `Ast`
[INFO] [stderr]  --> rlox/src/main.rs:4:31
[INFO] [stderr]   |
[INFO] [stderr] 4 | use resolver::{resolve_names, Ast};
[INFO] [stderr]   |                               ^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `rlox` (bin "rlox" test) generated 1 warning (run `cargo fix --bin "rlox" --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/heap-92b0f5ad1c83e62c)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stderr] thread 'test_marking' panicked at heap/src/strings.rs:35:13:
[INFO] [stderr] misaligned pointer dereference: address must be a multiple of 0x8 but is 0x7f8830008194
[INFO] [stderr] stack backtrace:
[INFO] [stderr]    0:     0x55ab1f1e1d6c - std::backtrace_rs::backtrace::libunwind::trace::ha637c64ce894333a
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stderr]    1:     0x55ab1f1e1d6c - std::backtrace_rs::backtrace::trace_unsynchronized::h47f62dea28e0c88d
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stderr]    2:     0x55ab1f1e1d6c - std::sys_common::backtrace::_print_fmt::h9eef0abe20ede486
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:67:5
[INFO] [stderr]    3:     0x55ab1f1e1d6c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hed7f999df88cc644
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stderr]    4:     0x55ab1f20bcc0 - core::fmt::rt::Argument::fmt::h1539a9308b8d058d
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/rt.rs:142:9
[INFO] [stderr]    5:     0x55ab1f20bcc0 - core::fmt::write::h3a39390d8560d9c9
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/mod.rs:1120:17
[INFO] [stderr]    6:     0x55ab1f1df7af - std::io::Write::write_fmt::h5fc9997dfe05f882
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/io/mod.rs:1762:15
[INFO] [stderr]    7:     0x55ab1f1e1b54 - std::sys_common::backtrace::_print::h894006fb5c6f3d45
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stderr]    8:     0x55ab1f1e1b54 - std::sys_common::backtrace::print::h23a2d212c6fff936
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stderr]    9:     0x55ab1f1e3817 - std::panicking::default_hook::{{closure}}::h8a1d2ee00185001a
[INFO] [stderr]   10:     0x55ab1f1e357f - std::panicking::default_hook::h6038f2eba384e475
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:292:9
[INFO] [stderr]   11:     0x55ab1f1b3f17 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h0ad024c9bdc6d768
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stderr]   12:     0x55ab1f1b3f17 - test::test_main::{{closure}}::h7500b54257359db6
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:138:21
[INFO] [stderr]   13:     0x55ab1f1e3e28 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h1f8f335eaa9cfaee
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stderr]   14:     0x55ab1f1e3e28 - std::panicking::rust_panic_with_hook::h2b5517d590cab22e
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:783:13
[INFO] [stderr]   15:     0x55ab1f1e3b7e - std::panicking::begin_panic_handler::{{closure}}::h233112c06e0ef43e
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:657:13
[INFO] [stderr]   16:     0x55ab1f1e2236 - std::sys_common::backtrace::__rust_end_short_backtrace::h6e893f24d7ebbff8
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:170:18
[INFO] [stderr]   17:     0x55ab1f1e38e2 - rust_begin_unwind
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5
[INFO] [stderr]   18:     0x55ab1f174d38 - core::panicking::panic_nounwind_fmt::h8767c3f35819d636
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:106:14
[INFO] [stderr]   19:     0x55ab1f174faa - core::panicking::panic_misaligned_pointer_dereference::h69d5e81334dc0203
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:203:5
[INFO] [stderr]   20:     0x55ab1f17acac - heap::strings::Str::new::h76f521b999859e12
[INFO] [stderr]                                at /opt/rustwide/workdir/heap/src/strings.rs:35:13
[INFO] [stderr]   21:     0x55ab1f17c42d - heap::test_marking::h45bea9411136bc41
[INFO] [stderr]                                at /opt/rustwide/workdir/heap/src/lib.rs:108:27
[INFO] [stderr]   22:     0x55ab1f17c367 - heap::test_marking::{{closure}}::h36991c2ececba1cd
[INFO] [stderr]                                at /opt/rustwide/workdir/heap/src/lib.rs:104:18
[INFO] [stderr]   23:     0x55ab1f175f36 - core::ops::function::FnOnce::call_once::he2ad5c6318bbcc16
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stderr]   24:     0x55ab1f1b956f - core::ops::function::FnOnce::call_once::h2b5d431d5046312d
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stderr]   25:     0x55ab1f1b956f - test::__rust_begin_short_backtrace::h7714669af176e207
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:628:18
[INFO] [stderr]   26:     0x55ab1f1b8585 - test::run_test_in_process::{{closure}}::h85218797dcbcec12
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:60
[INFO] [stderr]   27:     0x55ab1f1b8585 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h76c106ea31c14d7b
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stderr]   28:     0x55ab1f1b8585 - std::panicking::try::do_call::h3bd5d0f6620ee946
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stderr]   29:     0x55ab1f1b8585 - std::panicking::try::h232e535e4744fe31
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stderr]   30:     0x55ab1f1b8585 - std::panic::catch_unwind::h3ce3bd6ca8dbac68
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stderr]   31:     0x55ab1f1b8585 - test::run_test_in_process::hc97b257c9621286a
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:27
[INFO] [stderr]   32:     0x55ab1f1b8585 - test::run_test::{{closure}}::h2aa798823a438d38
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:574:43
[INFO] [stderr]   33:     0x55ab1f180846 - test::run_test::{{closure}}::h87d231c78fb59832
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:602:41
[INFO] [stderr]   34:     0x55ab1f180846 - std::sys_common::backtrace::__rust_begin_short_backtrace::he6df152596625789
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:154:18
[INFO] [stderr]   35:     0x55ab1f1858f7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::ha94be15d1e0acf36
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:529:17
[INFO] [stderr]   36:     0x55ab1f1858f7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9dc6bd6372f16606
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stderr]   37:     0x55ab1f1858f7 - std::panicking::try::do_call::h9057517f80303cd4
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stderr]   38:     0x55ab1f1858f7 - std::panicking::try::he3a30b11ee45340c
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stderr]   39:     0x55ab1f1858f7 - std::panic::catch_unwind::h410458cfd3528b8b
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stderr]   40:     0x55ab1f1858f7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h72ac3bdb567b737b
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:528:30
[INFO] [stderr]   41:     0x55ab1f1858f7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h38f34da3654a8344
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stderr]   42:     0x55ab1f1e88b5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hc7eafaff61e32df9
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stderr]   43:     0x55ab1f1e88b5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h6ba4a5de48dd2304
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stderr]   44:     0x55ab1f1e88b5 - std::sys::unix::thread::Thread::new::thread_start::he469335aef763e45
[INFO] [stderr]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stderr]   45:     0x7f883ac87ac3 - <unknown>
[INFO] [stderr]   46:     0x7f883ad18bf4 - __clone
[INFO] [stderr]   47:                0x0 - <unknown>
[INFO] [stderr] thread caused non-unwinding panic. aborting.
[INFO] [stderr] error: test failed, to rerun pass `-p heap --lib`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/heap-92b0f5ad1c83e62c` (signal: 6, SIGABRT: process abort signal)
[INFO] running `Command { std: "docker" "inspect" "6245bc319108bde5295f4f8dc05ba88eb32b1a82a8c0e6b7e907ac45d3fe72ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6245bc319108bde5295f4f8dc05ba88eb32b1a82a8c0e6b7e907ac45d3fe72ad", kill_on_drop: false }`
[INFO] [stdout] 6245bc319108bde5295f4f8dc05ba88eb32b1a82a8c0e6b7e907ac45d3fe72ad
[INFO] testing evomassiny/rlox against beta-2023-12-22 for beta-1.76-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fevomassiny%2Frlox" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/evomassiny/rlox on toolchain beta-2023-12-22
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/evomassiny/rlox
[INFO] finished tweaking git repo https://github.com/evomassiny/rlox
[INFO] tweaked toml for git repo https://github.com/evomassiny/rlox written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/evomassiny/rlox 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" "+beta-2023-12-22" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c9a9bfb7009bd26d02e1af3e185961ef591cc3d8cae2e396458cd849a36d283c
[INFO] running `Command { std: "docker" "start" "-a" "c9a9bfb7009bd26d02e1af3e185961ef591cc3d8cae2e396458cd849a36d283c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c9a9bfb7009bd26d02e1af3e185961ef591cc3d8cae2e396458cd849a36d283c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c9a9bfb7009bd26d02e1af3e185961ef591cc3d8cae2e396458cd849a36d283c", kill_on_drop: false }`
[INFO] [stdout] c9a9bfb7009bd26d02e1af3e185961ef591cc3d8cae2e396458cd849a36d283c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 67831be2b0a520b8e57f4af8572d6d25a724787835cd8d50c366b61b760ae615
[INFO] running `Command { std: "docker" "start" "-a" "67831be2b0a520b8e57f4af8572d6d25a724787835cd8d50c366b61b760ae615", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling proc-macro2 v1.0.46
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling unicode-ident v1.0.4
[INFO] [stderr]    Compiling syn v1.0.102
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling libc v0.2.134
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling heck v0.4.0
[INFO] [stderr]    Compiling lexer v0.1.0 (/opt/rustwide/workdir/lexer)
[INFO] [stderr]    Compiling os_str_bytes v6.3.0
[INFO] [stderr]    Compiling once_cell v1.15.0
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling termcolor v1.1.3
[INFO] [stderr]    Compiling textwrap v0.15.1
[INFO] [stderr]    Compiling heap v0.1.0 (/opt/rustwide/workdir/heap)
[INFO] [stdout] warning: unused import: `std::convert::AsRef`
[INFO] [stdout]  --> heap/src/arrays.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::convert::AsRef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LINE_SIZE_BITS`
[INFO] [stdout]  --> heap/src/block_headers.rs:1:69
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blocks::{BlockOffset, BLOCK_SIZE, LINE_COUNT, LINE_SIZE, LINE_SIZE_BITS};
[INFO] [stdout]   |                                                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::heap_objects::Header`
[INFO] [stdout]  --> heap/src/blocks.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::heap_objects::Header;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::addr_of`
[INFO] [stdout]  --> heap/src/boxed_values.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ptr::addr_of;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block`, `LINE_COUNT`
[INFO] [stdout]  --> heap/src/compactor.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 |     blocks::{Block, LINE_COUNT},
[INFO] [stdout]   |              ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::NonNull`
[INFO] [stdout]   --> heap/src/compactor.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ptr::NonNull;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arrays::Array`
[INFO] [stdout]  --> heap/src/heap.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::arrays::Array;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockHeader`, `BlockState`
[INFO] [stdout]  --> heap/src/heap.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stdout]   |                            ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockError`, `Block`, `LINE_COUNT`
[INFO] [stdout]  --> heap/src/heap.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stdout]   |                     ^^^^^  ^^^^^^^^^^              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stdout]  --> heap/src/heap.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::boxed_values::BoxedValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stdout]  --> heap/src/heap.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lists::List`
[INFO] [stdout]  --> heap/src/heap.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::lists::List;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strings::Str`
[INFO] [stdout]  --> heap/src/heap.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::strings::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stdout]   --> heap/src/heap.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::tombstones::Tombstone;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `values::Value`
[INFO] [stdout]  --> heap/src/heap_objects.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 |     tombstones::Tombstone, values::Value,
[INFO] [stdout]   |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> heap/src/lists.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | /         /// SAFETY:
[INFO] [stdout] 129 | |         /// safe because both &self and self.array_ptr are non Null
[INFO] [stdout]     | |___________________________________________________________________^
[INFO] [stdout] 130 | /         unsafe {
[INFO] [stdout] 131 | |             let array_header_ptr = addr_of!((*self.array_ptr).header);
[INFO] [stdout] 132 | |             let self_ptr = Some(NonNull::new_unchecked(self as *const _ as *mut Header));
[INFO] [stdout] 133 | |             object_ptrs.push(ObjectRef {
[INFO] [stdout] ...   |
[INFO] [stdout] 136 | |             });
[INFO] [stdout] 137 | |         }
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockHeader`
[INFO] [stdout]  --> heap/src/memory.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stdout]   |                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockError`
[INFO] [stdout]  --> heap/src/memory.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stdout]  --> heap/src/memory.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::boxed_values::BoxedValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HeapCompactor`, `LivenessFlag`
[INFO] [stdout]  --> heap/src/memory.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::compactor::{HeapCompactor, LivenessFlag};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stdout]  --> heap/src/memory.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lists::List`
[INFO] [stdout]  --> heap/src/memory.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::lists::List;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strings::Str`
[INFO] [stdout]  --> heap/src/memory.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::strings::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stdout]  --> heap/src/memory.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::tombstones::Tombstone;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::values::Value`
[INFO] [stdout]  --> heap/src/memory.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::values::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::blocks::InBlockPtr`
[INFO] [stdout]  --> heap/src/tombstones.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blocks::InBlockPtr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::heap::Heap`
[INFO] [stdout]  --> heap/src/tombstones.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::heap::Heap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::MemoryError`
[INFO] [stdout]  --> heap/src/tombstones.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::memory::MemoryError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling parser v0.1.0 (/opt/rustwide/workdir/parser)
[INFO] [stderr]    Compiling clap_lex v0.2.4
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> heap/src/boxed_values.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |             let mut boxed_value = ptr.as_ptr().cast::<Self>();
[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: variable does not need to be mutable
[INFO] [stdout]   --> heap/src/lists.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let mut list = ptr.as_ptr().cast::<Self>();
[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]   --> heap/src/strings.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let mut string = ptr.as_ptr().cast::<Self>();
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TooBig` is never constructed
[INFO] [stdout]   --> heap/src/blocks.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum BlockError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     TooBig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BlockError` 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] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> parser/src/stmt_parser.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |             TokenKind::For => {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stdout] warning: variant `Primary` is never constructed
[INFO] [stdout]   --> parser/src/expr_parser.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Precedence {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 37 |     Primary = 9,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Precedence` has derived impls for the traits `Debug` and `Clone`, 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: 32 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling resolver v0.1.0 (/opt/rustwide/workdir/resolver)
[INFO] [stdout] warning: unused imports: `SymbolId`, `Symbol`
[INFO] [stdout]  --> resolver/src/resolve.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::symbols::{Sym, Symbol, SymbolId, SymbolTable};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprKind`, `Expr`
[INFO] [stdout]  --> resolver/src/resolve.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprKind`, `Expr`, `StmtKind`, `Stmt`
[INFO] [stdout]  --> resolver/src/scopes.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Globals`, `ScopeChain`
[INFO] [stdout]  --> resolver/src/lib.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use scopes::{Globals, ScopeChain};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:23
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_else`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:29
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_else`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:24
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:30
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:70:14
[INFO] [stdout]    |
[INFO] [stdout] 70 |         Expr(expr) => todo!(),
[INFO] [stdout]    |              ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |         Print(expr) => todo!(),
[INFO] [stdout]    |               ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:72:16
[INFO] [stdout]    |
[INFO] [stdout] 72 |         Return(maybe_expr) => todo!(),
[INFO] [stdout]    |                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> resolver/src/resolve.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Var(name, intializer) => todo!(),
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intializer`
[INFO] [stdout]   --> resolver/src/resolve.rs:73:19
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Var(name, intializer) => todo!(),
[INFO] [stdout]    |                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |         While(condition, body) => todo!(),
[INFO] [stdout]    |               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:74:26
[INFO] [stdout]    |
[INFO] [stdout] 74 |         While(condition, body) => todo!(),
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_initializer`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_initializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_increment`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:49
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_increment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:66
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbs`
[INFO] [stdout]   --> resolver/src/scopes.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut symbs: Vec<SymbolId> = Vec::new();
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_symbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]   --> resolver/src/scopes.rs:57:39
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn resolve(&self, name: &str, table: &SymbolTable) -> Option<Sym> {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> resolver/src/scopes.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut symbs: Vec<SymbolId> = Vec::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: fields `roots` and `symbols` are never read
[INFO] [stdout]   --> resolver/src/resolve.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Ast {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 15 |     roots: Vec<Stmt<Sym>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 16 |     symbols: SymbolTable,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Ast` 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: method `resolve_precise` is never used
[INFO] [stdout]   --> resolver/src/scopes.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Globals {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn resolve_precise(&self, name: &str, src: &Span, table: &SymbolTable) -> Option<SymbolId> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> resolver/src/scopes.rs:127:19
[INFO] [stdout]     |
[INFO] [stdout] 127 |             while scope_idx >= 0 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 27 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling clap_derive v3.2.18
[INFO] [stderr]    Compiling clap v3.2.22
[INFO] [stderr]    Compiling rlox v0.1.0 (/opt/rustwide/workdir/rlox)
[INFO] [stdout] warning: unused import: `Ast`
[INFO] [stdout]  --> rlox/src/main.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use resolver::{resolve_names, Ast};
[INFO] [stdout]   |                               ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 6.73s
[INFO] running `Command { std: "docker" "inspect" "67831be2b0a520b8e57f4af8572d6d25a724787835cd8d50c366b61b760ae615", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "67831be2b0a520b8e57f4af8572d6d25a724787835cd8d50c366b61b760ae615", kill_on_drop: false }`
[INFO] [stdout] 67831be2b0a520b8e57f4af8572d6d25a724787835cd8d50c366b61b760ae615
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8ebdf1e124f33667c3a97189101d30779f035fa7e9d3989aa1f0a5697c8b1990
[INFO] running `Command { std: "docker" "start" "-a" "8ebdf1e124f33667c3a97189101d30779f035fa7e9d3989aa1f0a5697c8b1990", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> parser/src/stmt_parser.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |             TokenKind::For => {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Primary` is never constructed
[INFO] [stdout]   --> parser/src/expr_parser.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Precedence {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 37 |     Primary = 9,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Precedence` has derived impls for the traits `Debug` and `Clone`, 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: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::AsRef`
[INFO] [stdout]  --> heap/src/arrays.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::convert::AsRef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LINE_SIZE_BITS`
[INFO] [stdout]  --> heap/src/block_headers.rs:1:69
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blocks::{BlockOffset, BLOCK_SIZE, LINE_COUNT, LINE_SIZE, LINE_SIZE_BITS};
[INFO] [stdout]   |                                                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::heap_objects::Header`
[INFO] [stdout]  --> heap/src/blocks.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::heap_objects::Header;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::addr_of`
[INFO] [stdout]  --> heap/src/boxed_values.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ptr::addr_of;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block`, `LINE_COUNT`
[INFO] [stdout]  --> heap/src/compactor.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 |     blocks::{Block, LINE_COUNT},
[INFO] [stdout]   |              ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::NonNull`
[INFO] [stdout]   --> heap/src/compactor.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ptr::NonNull;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arrays::Array`
[INFO] [stdout]  --> heap/src/heap.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::arrays::Array;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockHeader`, `BlockState`
[INFO] [stdout]  --> heap/src/heap.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stdout]   |                            ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockError`, `Block`, `LINE_COUNT`
[INFO] [stdout]  --> heap/src/heap.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stdout]   |                     ^^^^^  ^^^^^^^^^^              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stdout]  --> heap/src/heap.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::boxed_values::BoxedValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stdout]  --> heap/src/heap.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lists::List`
[INFO] [stdout]  --> heap/src/heap.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::lists::List;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strings::Str`
[INFO] [stdout]  --> heap/src/heap.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::strings::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stdout]   --> heap/src/heap.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::tombstones::Tombstone;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `values::Value`
[INFO] [stdout]  --> heap/src/heap_objects.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 |     tombstones::Tombstone, values::Value,
[INFO] [stdout]   |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> heap/src/lists.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | /         /// SAFETY:
[INFO] [stdout] 129 | |         /// safe because both &self and self.array_ptr are non Null
[INFO] [stdout]     | |___________________________________________________________________^
[INFO] [stdout] 130 | /         unsafe {
[INFO] [stdout] 131 | |             let array_header_ptr = addr_of!((*self.array_ptr).header);
[INFO] [stdout] 132 | |             let self_ptr = Some(NonNull::new_unchecked(self as *const _ as *mut Header));
[INFO] [stdout] 133 | |             object_ptrs.push(ObjectRef {
[INFO] [stdout] ...   |
[INFO] [stdout] 136 | |             });
[INFO] [stdout] 137 | |         }
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockHeader`
[INFO] [stdout]  --> heap/src/memory.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stdout]   |                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockError`
[INFO] [stdout]  --> heap/src/memory.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stdout]  --> heap/src/memory.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::boxed_values::BoxedValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HeapCompactor`, `LivenessFlag`
[INFO] [stdout]  --> heap/src/memory.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::compactor::{HeapCompactor, LivenessFlag};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stdout]  --> heap/src/memory.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lists::List`
[INFO] [stdout]  --> heap/src/memory.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::lists::List;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strings::Str`
[INFO] [stdout]  --> heap/src/memory.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::strings::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stdout]  --> heap/src/memory.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::tombstones::Tombstone;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::values::Value`
[INFO] [stdout]  --> heap/src/memory.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::values::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::blocks::InBlockPtr`
[INFO] [stdout]  --> heap/src/tombstones.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blocks::InBlockPtr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::heap::Heap`
[INFO] [stdout]  --> heap/src/tombstones.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::heap::Heap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::MemoryError`
[INFO] [stdout]  --> heap/src/tombstones.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::memory::MemoryError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> heap/src/boxed_values.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |             let mut boxed_value = ptr.as_ptr().cast::<Self>();
[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: variable does not need to be mutable
[INFO] [stdout]   --> heap/src/lists.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let mut list = ptr.as_ptr().cast::<Self>();
[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]   --> heap/src/strings.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let mut string = ptr.as_ptr().cast::<Self>();
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TooBig` is never constructed
[INFO] [stdout]   --> heap/src/blocks.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum BlockError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     TooBig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BlockError` 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] [stderr]    Compiling parser v0.1.0 (/opt/rustwide/workdir/parser)
[INFO] [stdout] warning: 32 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling heap v0.1.0 (/opt/rustwide/workdir/heap)
[INFO] [stderr]    Compiling lexer v0.1.0 (/opt/rustwide/workdir/lexer)
[INFO] [stdout] warning: unused imports: `SymbolId`, `Symbol`
[INFO] [stdout]  --> resolver/src/resolve.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::symbols::{Sym, Symbol, SymbolId, SymbolTable};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprKind`, `Expr`
[INFO] [stdout]  --> resolver/src/resolve.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprKind`, `Expr`, `StmtKind`, `Stmt`
[INFO] [stdout]  --> resolver/src/scopes.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Globals`, `ScopeChain`
[INFO] [stdout]  --> resolver/src/lib.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use scopes::{Globals, ScopeChain};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:23
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_else`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:29
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_else`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:24
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:30
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:70:14
[INFO] [stdout]    |
[INFO] [stdout] 70 |         Expr(expr) => todo!(),
[INFO] [stdout]    |              ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |         Print(expr) => todo!(),
[INFO] [stdout]    |               ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:72:16
[INFO] [stdout]    |
[INFO] [stdout] 72 |         Return(maybe_expr) => todo!(),
[INFO] [stdout]    |                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> resolver/src/resolve.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Var(name, intializer) => todo!(),
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intializer`
[INFO] [stdout]   --> resolver/src/resolve.rs:73:19
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Var(name, intializer) => todo!(),
[INFO] [stdout]    |                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |         While(condition, body) => todo!(),
[INFO] [stdout]    |               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:74:26
[INFO] [stdout]    |
[INFO] [stdout] 74 |         While(condition, body) => todo!(),
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_initializer`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_initializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_increment`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:49
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_increment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:66
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbs`
[INFO] [stdout]   --> resolver/src/scopes.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut symbs: Vec<SymbolId> = Vec::new();
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_symbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]   --> resolver/src/scopes.rs:57:39
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn resolve(&self, name: &str, table: &SymbolTable) -> Option<Sym> {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> resolver/src/scopes.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut symbs: Vec<SymbolId> = Vec::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: fields `roots` and `symbols` are never read
[INFO] [stdout]   --> resolver/src/resolve.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Ast {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 15 |     roots: Vec<Stmt<Sym>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 16 |     symbols: SymbolTable,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Ast` 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: method `resolve_precise` is never used
[INFO] [stdout]   --> resolver/src/scopes.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Globals {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn resolve_precise(&self, name: &str, src: &Span, table: &SymbolTable) -> Option<SymbolId> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling resolver v0.1.0 (/opt/rustwide/workdir/resolver)
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> resolver/src/scopes.rs:127:19
[INFO] [stdout]     |
[INFO] [stdout] 127 |             while scope_idx >= 0 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 27 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rlox v0.1.0 (/opt/rustwide/workdir/rlox)
[INFO] [stdout] warning: unused imports: `SymbolId`, `Symbol`
[INFO] [stdout]  --> resolver/src/resolve.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::symbols::{Sym, Symbol, SymbolId, SymbolTable};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprKind`, `Expr`
[INFO] [stdout]  --> resolver/src/resolve.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprKind`, `Expr`, `StmtKind`, `Stmt`
[INFO] [stdout]  --> resolver/src/scopes.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Globals`, `ScopeChain`
[INFO] [stdout]  --> resolver/src/lib.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use scopes::{Globals, ScopeChain};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::AsRef`
[INFO] [stdout]  --> heap/src/arrays.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::convert::AsRef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LINE_SIZE_BITS`
[INFO] [stdout]  --> heap/src/block_headers.rs:1:69
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blocks::{BlockOffset, BLOCK_SIZE, LINE_COUNT, LINE_SIZE, LINE_SIZE_BITS};
[INFO] [stdout]   |                                                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::heap_objects::Header`
[INFO] [stdout]  --> heap/src/blocks.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::heap_objects::Header;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::addr_of`
[INFO] [stdout]  --> heap/src/boxed_values.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ptr::addr_of;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block`, `LINE_COUNT`
[INFO] [stdout]  --> heap/src/compactor.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 |     blocks::{Block, LINE_COUNT},
[INFO] [stdout]   |              ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::NonNull`
[INFO] [stdout]   --> heap/src/compactor.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ptr::NonNull;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arrays::Array`
[INFO] [stdout]  --> heap/src/heap.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::arrays::Array;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockHeader`, `BlockState`
[INFO] [stdout]  --> heap/src/heap.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stdout]   |                            ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockError`, `Block`, `LINE_COUNT`
[INFO] [stdout]  --> heap/src/heap.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stdout]   |                     ^^^^^  ^^^^^^^^^^              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stdout]  --> heap/src/heap.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::boxed_values::BoxedValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stdout]  --> heap/src/heap.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lists::List`
[INFO] [stdout]  --> heap/src/heap.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::lists::List;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ast`
[INFO] [stdout]  --> rlox/src/main.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use resolver::{resolve_names, Ast};
[INFO] [stdout]   |                               ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strings::Str`
[INFO] [stdout]  --> heap/src/heap.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::strings::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stdout]   --> heap/src/heap.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::tombstones::Tombstone;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `values::Value`
[INFO] [stdout]  --> heap/src/heap_objects.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 |     tombstones::Tombstone, values::Value,
[INFO] [stdout]   |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> heap/src/lists.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | /         /// SAFETY:
[INFO] [stdout] 129 | |         /// safe because both &self and self.array_ptr are non Null
[INFO] [stdout]     | |___________________________________________________________________^
[INFO] [stdout] 130 | /         unsafe {
[INFO] [stdout] 131 | |             let array_header_ptr = addr_of!((*self.array_ptr).header);
[INFO] [stdout] 132 | |             let self_ptr = Some(NonNull::new_unchecked(self as *const _ as *mut Header));
[INFO] [stdout] 133 | |             object_ptrs.push(ObjectRef {
[INFO] [stdout] ...   |
[INFO] [stdout] 136 | |             });
[INFO] [stdout] 137 | |         }
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockHeader`
[INFO] [stdout]  --> heap/src/memory.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stdout]   |                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockError`
[INFO] [stdout]  --> heap/src/memory.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stdout]  --> heap/src/memory.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::boxed_values::BoxedValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HeapCompactor`, `LivenessFlag`
[INFO] [stdout]  --> heap/src/memory.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::compactor::{HeapCompactor, LivenessFlag};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stdout]  --> heap/src/memory.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lists::List`
[INFO] [stdout]  --> heap/src/memory.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::lists::List;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strings::Str`
[INFO] [stdout]  --> heap/src/memory.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::strings::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stdout]  --> heap/src/memory.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::tombstones::Tombstone;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::values::Value`
[INFO] [stdout]  --> heap/src/memory.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::values::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::blocks::InBlockPtr`
[INFO] [stdout]  --> heap/src/tombstones.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blocks::InBlockPtr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::heap::Heap`
[INFO] [stdout]  --> heap/src/tombstones.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::heap::Heap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::MemoryError`
[INFO] [stdout]  --> heap/src/tombstones.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::memory::MemoryError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:23
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_else`
[INFO] [stdout]   --> resolver/src/resolve.rs:68:29
[INFO] [stdout]    |
[INFO] [stdout] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stdout]    |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_else`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:24
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:69:30
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Function(name, args, body) => todo!(),
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:70:14
[INFO] [stdout]    |
[INFO] [stdout] 70 |         Expr(expr) => todo!(),
[INFO] [stdout]    |              ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |         Print(expr) => todo!(),
[INFO] [stdout]    |               ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_expr`
[INFO] [stdout]   --> resolver/src/resolve.rs:72:16
[INFO] [stdout]    |
[INFO] [stdout] 72 |         Return(maybe_expr) => todo!(),
[INFO] [stdout]    |                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> resolver/src/resolve.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Var(name, intializer) => todo!(),
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intializer`
[INFO] [stdout]   --> resolver/src/resolve.rs:73:19
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Var(name, intializer) => todo!(),
[INFO] [stdout]    |                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |         While(condition, body) => todo!(),
[INFO] [stdout]    |               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:74:26
[INFO] [stdout]    |
[INFO] [stdout] 74 |         While(condition, body) => todo!(),
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_initializer`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_initializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_condition`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_increment`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:49
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_increment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> resolver/src/resolve.rs:75:66
[INFO] [stdout]    |
[INFO] [stdout] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stdout]    |                                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbs`
[INFO] [stdout]   --> resolver/src/scopes.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut symbs: Vec<SymbolId> = Vec::new();
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_symbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]   --> resolver/src/scopes.rs:57:39
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn resolve(&self, name: &str, table: &SymbolTable) -> Option<Sym> {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> resolver/src/scopes.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut symbs: Vec<SymbolId> = Vec::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: fields `roots` and `symbols` are never read
[INFO] [stdout]   --> resolver/src/resolve.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Ast {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 15 |     roots: Vec<Stmt<Sym>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 16 |     symbols: SymbolTable,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Ast` 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: method `resolve_precise` is never used
[INFO] [stdout]   --> resolver/src/scopes.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Globals {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn resolve_precise(&self, name: &str, src: &Span, table: &SymbolTable) -> Option<SymbolId> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> resolver/src/scopes.rs:127:19
[INFO] [stdout]     |
[INFO] [stdout] 127 |             while scope_idx >= 0 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> heap/src/boxed_values.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |             let mut boxed_value = ptr.as_ptr().cast::<Self>();
[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: variable does not need to be mutable
[INFO] [stdout]   --> heap/src/lists.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let mut list = ptr.as_ptr().cast::<Self>();
[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]   --> heap/src/strings.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let mut string = ptr.as_ptr().cast::<Self>();
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TooBig` is never constructed
[INFO] [stdout]   --> heap/src/blocks.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum BlockError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     TooBig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BlockError` 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: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> heap/src/lib.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 109 |     drop(str_b);
[INFO] [stdout]     |     ^^^^^-----^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          argument has type `&mut Str`
[INFO] [stdout]     |
[INFO] [stdout]     = note: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> parser/src/stmt_parser.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |             TokenKind::For => {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Primary` is never constructed
[INFO] [stdout]   --> parser/src/expr_parser.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Precedence {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 37 |     Primary = 9,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Precedence` has derived impls for the traits `Debug` and `Clone`, 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: 27 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 33 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.56s
[INFO] running `Command { std: "docker" "inspect" "8ebdf1e124f33667c3a97189101d30779f035fa7e9d3989aa1f0a5697c8b1990", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8ebdf1e124f33667c3a97189101d30779f035fa7e9d3989aa1f0a5697c8b1990", kill_on_drop: false }`
[INFO] [stdout] 8ebdf1e124f33667c3a97189101d30779f035fa7e9d3989aa1f0a5697c8b1990
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 70bff83f827ed6796998f11afcfb77bd042718ba57f9eab5a361c4b3735224b7
[INFO] running `Command { std: "docker" "start" "-a" "70bff83f827ed6796998f11afcfb77bd042718ba57f9eab5a361c4b3735224b7", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> parser/src/stmt_parser.rs:104:13
[INFO] [stderr]     |
[INFO] [stderr] 104 |             TokenKind::For => {
[INFO] [stderr]     |             ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Primary` is never constructed
[INFO] [stderr]   --> parser/src/expr_parser.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub enum Precedence {
[INFO] [stderr]    |          ---------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 37 |     Primary = 9,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Precedence` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `parser` (lib) generated 2 warnings
[INFO] [stderr] warning: unused imports: `SymbolId`, `Symbol`
[INFO] [stderr]  --> resolver/src/resolve.rs:2:27
[INFO] [stderr]   |
[INFO] [stderr] 2 | use super::symbols::{Sym, Symbol, SymbolId, SymbolTable};
[INFO] [stderr]   |                           ^^^^^^  ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ExprKind`, `Expr`
[INFO] [stderr]  --> resolver/src/resolve.rs:4:14
[INFO] [stderr]   |
[INFO] [stderr] 4 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stderr]   |              ^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ExprKind`, `Expr`, `StmtKind`, `Stmt`
[INFO] [stderr]  --> resolver/src/scopes.rs:3:14
[INFO] [stderr]   |
[INFO] [stderr] 3 | use parser::{Expr, ExprKind, Stmt, StmtKind};
[INFO] [stderr]   |              ^^^^  ^^^^^^^^  ^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Globals`, `ScopeChain`
[INFO] [stderr]  --> resolver/src/lib.rs:8:14
[INFO] [stderr]   |
[INFO] [stderr] 8 | use scopes::{Globals, ScopeChain};
[INFO] [stderr]   |              ^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `condition`
[INFO] [stderr]   --> resolver/src/resolve.rs:68:12
[INFO] [stderr]    |
[INFO] [stderr] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stderr]    |            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `then`
[INFO] [stderr]   --> resolver/src/resolve.rs:68:23
[INFO] [stderr]    |
[INFO] [stderr] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stderr]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `maybe_else`
[INFO] [stderr]   --> resolver/src/resolve.rs:68:29
[INFO] [stderr]    |
[INFO] [stderr] 68 |         If(condition, then, maybe_else) => todo!(),
[INFO] [stderr]    |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_else`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> resolver/src/resolve.rs:69:18
[INFO] [stderr]    |
[INFO] [stderr] 69 |         Function(name, args, body) => todo!(),
[INFO] [stderr]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `args`
[INFO] [stderr]   --> resolver/src/resolve.rs:69:24
[INFO] [stderr]    |
[INFO] [stderr] 69 |         Function(name, args, body) => todo!(),
[INFO] [stderr]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `body`
[INFO] [stderr]   --> resolver/src/resolve.rs:69:30
[INFO] [stderr]    |
[INFO] [stderr] 69 |         Function(name, args, body) => todo!(),
[INFO] [stderr]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `expr`
[INFO] [stderr]   --> resolver/src/resolve.rs:70:14
[INFO] [stderr]    |
[INFO] [stderr] 70 |         Expr(expr) => todo!(),
[INFO] [stderr]    |              ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `expr`
[INFO] [stderr]   --> resolver/src/resolve.rs:71:15
[INFO] [stderr]    |
[INFO] [stderr] 71 |         Print(expr) => todo!(),
[INFO] [stderr]    |               ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `maybe_expr`
[INFO] [stderr]   --> resolver/src/resolve.rs:72:16
[INFO] [stderr]    |
[INFO] [stderr] 72 |         Return(maybe_expr) => todo!(),
[INFO] [stderr]    |                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_expr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> resolver/src/resolve.rs:73:13
[INFO] [stderr]    |
[INFO] [stderr] 73 |         Var(name, intializer) => todo!(),
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `intializer`
[INFO] [stderr]   --> resolver/src/resolve.rs:73:19
[INFO] [stderr]    |
[INFO] [stderr] 73 |         Var(name, intializer) => todo!(),
[INFO] [stderr]    |                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intializer`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `condition`
[INFO] [stderr]   --> resolver/src/resolve.rs:74:15
[INFO] [stderr]    |
[INFO] [stderr] 74 |         While(condition, body) => todo!(),
[INFO] [stderr]    |               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_condition`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `body`
[INFO] [stderr]   --> resolver/src/resolve.rs:74:26
[INFO] [stderr]    |
[INFO] [stderr] 74 |         While(condition, body) => todo!(),
[INFO] [stderr]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `maybe_initializer`
[INFO] [stderr]   --> resolver/src/resolve.rs:75:13
[INFO] [stderr]    |
[INFO] [stderr] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_initializer`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `maybe_condition`
[INFO] [stderr]   --> resolver/src/resolve.rs:75:32
[INFO] [stderr]    |
[INFO] [stderr] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_condition`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `maybe_increment`
[INFO] [stderr]   --> resolver/src/resolve.rs:75:49
[INFO] [stderr]    |
[INFO] [stderr] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_increment`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `body`
[INFO] [stderr]   --> resolver/src/resolve.rs:75:66
[INFO] [stderr]    |
[INFO] [stderr] 75 |         For(maybe_initializer, maybe_condition, maybe_increment, body) => todo!(),
[INFO] [stderr]    |                                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `symbs`
[INFO] [stderr]   --> resolver/src/scopes.rs:58:17
[INFO] [stderr]    |
[INFO] [stderr] 58 |         let mut symbs: Vec<SymbolId> = Vec::new();
[INFO] [stderr]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_symbs`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `table`
[INFO] [stderr]   --> resolver/src/scopes.rs:57:39
[INFO] [stderr]    |
[INFO] [stderr] 57 |     pub fn resolve(&self, name: &str, table: &SymbolTable) -> Option<Sym> {
[INFO] [stderr]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> resolver/src/scopes.rs:58:13
[INFO] [stderr]    |
[INFO] [stderr] 58 |         let mut symbs: Vec<SymbolId> = Vec::new();
[INFO] [stderr]    |             ----^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `roots` and `symbols` are never read
[INFO] [stderr]   --> resolver/src/resolve.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct Ast {
[INFO] [stderr]    |            --- fields in this struct
[INFO] [stderr] 15 |     roots: Vec<Stmt<Sym>>,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 16 |     symbols: SymbolTable,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Ast` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `resolve_precise` is never used
[INFO] [stderr]   --> resolver/src/scopes.rs:44:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl Globals {
[INFO] [stderr]    | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub fn resolve_precise(&self, name: &str, src: &Span, table: &SymbolTable) -> Option<SymbolId> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> resolver/src/scopes.rs:127:19
[INFO] [stderr]     |
[INFO] [stderr] 127 |             while scope_idx >= 0 {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::convert::AsRef`
[INFO] [stderr]  --> heap/src/arrays.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::convert::AsRef;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `LINE_SIZE_BITS`
[INFO] [stderr]  --> heap/src/block_headers.rs:1:69
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::blocks::{BlockOffset, BLOCK_SIZE, LINE_COUNT, LINE_SIZE, LINE_SIZE_BITS};
[INFO] [stderr]   |                                                                     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::heap_objects::Header`
[INFO] [stderr]  --> heap/src/blocks.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::heap_objects::Header;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ptr::addr_of`
[INFO] [stderr]  --> heap/src/boxed_values.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::ptr::addr_of;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Block`, `LINE_COUNT`
[INFO] [stderr]  --> heap/src/compactor.rs:4:14
[INFO] [stderr]   |
[INFO] [stderr] 4 |     blocks::{Block, LINE_COUNT},
[INFO] [stderr]   |              ^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ptr::NonNull`
[INFO] [stderr]   --> heap/src/compactor.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::ptr::NonNull;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::arrays::Array`
[INFO] [stderr]  --> heap/src/heap.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::arrays::Array;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BlockHeader`, `BlockState`
[INFO] [stderr]  --> heap/src/heap.rs:2:28
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stderr]   |                            ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BlockError`, `Block`, `LINE_COUNT`
[INFO] [stderr]  --> heap/src/heap.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stderr]   |                     ^^^^^  ^^^^^^^^^^              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stderr]  --> heap/src/heap.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::boxed_values::BoxedValue;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stderr]  --> heap/src/heap.rs:6:27
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stderr]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::lists::List`
[INFO] [stderr]  --> heap/src/heap.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::lists::List;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::strings::Str`
[INFO] [stderr]  --> heap/src/heap.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::strings::Str;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stderr]   --> heap/src/heap.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::tombstones::Tombstone;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `values::Value`
[INFO] [stderr]  --> heap/src/heap_objects.rs:3:28
[INFO] [stderr]   |
[INFO] [stderr] 3 |     tombstones::Tombstone, values::Value,
[INFO] [stderr]   |                            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> heap/src/lists.rs:128:9
[INFO] [stderr]     |
[INFO] [stderr] 128 | /         /// SAFETY:
[INFO] [stderr] 129 | |         /// safe because both &self and self.array_ptr are non Null
[INFO] [stderr]     | |___________________________________________________________________^
[INFO] [stderr] 130 | /         unsafe {
[INFO] [stderr] 131 | |             let array_header_ptr = addr_of!((*self.array_ptr).header);
[INFO] [stderr] 132 | |             let self_ptr = Some(NonNull::new_unchecked(self as *const _ as *mut Header));
[INFO] [stderr] 133 | |             object_ptrs.push(ObjectRef {
[INFO] [stderr] ...   |
[INFO] [stderr] 136 | |             });
[INFO] [stderr] 137 | |         }
[INFO] [stderr]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `BlockHeader`
[INFO] [stderr]  --> heap/src/memory.rs:1:28
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::block_headers::{BlockHeader, BlockState};
[INFO] [stderr]   |                            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `BlockError`
[INFO] [stderr]  --> heap/src/memory.rs:2:28
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::blocks::{Block, BlockError, InBlockPtr, LINE_COUNT};
[INFO] [stderr]   |                            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::boxed_values::BoxedValue`
[INFO] [stderr]  --> heap/src/memory.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::boxed_values::BoxedValue;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HeapCompactor`, `LivenessFlag`
[INFO] [stderr]  --> heap/src/memory.rs:4:24
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::compactor::{HeapCompactor, LivenessFlag};
[INFO] [stderr]   |                        ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Header`, `Markable`, `Object`
[INFO] [stderr]  --> heap/src/memory.rs:5:27
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::heap_objects::{Header, Markable, Object};
[INFO] [stderr]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::lists::List`
[INFO] [stderr]  --> heap/src/memory.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::lists::List;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::strings::Str`
[INFO] [stderr]  --> heap/src/memory.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::strings::Str;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::tombstones::Tombstone`
[INFO] [stderr]  --> heap/src/memory.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::tombstones::Tombstone;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::values::Value`
[INFO] [stderr]  --> heap/src/memory.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::values::Value;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::blocks::InBlockPtr`
[INFO] [stderr]  --> heap/src/tombstones.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::blocks::InBlockPtr;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::heap::Heap`
[INFO] [stderr]  --> heap/src/tombstones.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::heap::Heap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::memory::MemoryError`
[INFO] [stderr]  --> heap/src/tombstones.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::memory::MemoryError;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> heap/src/boxed_values.rs:24:17
[INFO] [stderr]    |
[INFO] [stderr] 24 |             let mut boxed_value = ptr.as_ptr().cast::<Self>();
[INFO] [stderr]    |                 ----^^^^^^^^^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> heap/src/lists.rs:33:17
[INFO] [stderr]    |
[INFO] [stderr] 33 |             let mut list = ptr.as_ptr().cast::<Self>();
[INFO] [stderr]    |                 ----^^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> heap/src/strings.rs:34:17
[INFO] [stderr]    |
[INFO] [stderr] 34 |             let mut string = ptr.as_ptr().cast::<Self>();
[INFO] [stderr]    |                 ----^^^^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `TooBig` is never constructed
[INFO] [stderr]   --> heap/src/blocks.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub enum BlockError {
[INFO] [stderr]    |          ---------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 17 |     TooBig,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BlockError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stderr]    --> heap/src/lib.rs:109:5
[INFO] [stderr]     |
[INFO] [stderr] 109 |     drop(str_b);
[INFO] [stderr]     |     ^^^^^-----^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          argument has type `&mut Str`
[INFO] [stderr]     |
[INFO] [stderr]     = note: use `let _ = ...` to ignore the expression or result
[INFO] [stderr]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `resolver` (lib) generated 27 warnings (run `cargo fix --lib -p resolver` to apply 24 suggestions)
[INFO] [stderr] warning: `heap` (lib) generated 32 warnings (run `cargo fix --lib -p heap` to apply 30 suggestions)
[INFO] [stderr] warning: `resolver` (lib test) generated 27 warnings (27 duplicates)
[INFO] [stderr] warning: `parser` (lib test) generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: `heap` (lib test) generated 33 warnings (32 duplicates)
[INFO] [stderr] warning: unused import: `Ast`
[INFO] [stderr]  --> rlox/src/main.rs:4:31
[INFO] [stderr]   |
[INFO] [stderr] 4 | use resolver::{resolve_names, Ast};
[INFO] [stderr]   |                               ^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `rlox` (bin "rlox" test) generated 1 warning (run `cargo fix --bin "rlox" --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/heap-1a70c422d72a1dea)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stderr] thread 'test_marking' panicked at heap/src/strings.rs:35:13:
[INFO] [stderr] misaligned pointer dereference: address must be a multiple of 0x8 but is 0x7ffb9c008194
[INFO] [stderr] stack backtrace:
[INFO] [stderr]    0:     0x55e10fa7e396 - std::backtrace_rs::backtrace::libunwind::trace::h261606ad26a499c1
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stderr]    1:     0x55e10fa7e396 - std::backtrace_rs::backtrace::trace_unsynchronized::hd183f0625477fb28
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stderr]    2:     0x55e10fa7e396 - std::sys_common::backtrace::_print_fmt::hd7f8fef21b4eda67
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stderr]    3:     0x55e10fa7e396 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h623d9b51f2f453f1
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stderr]    4:     0x55e10faa75f0 - core::fmt::rt::Argument::fmt::h9f417ac76a86f368
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/rt.rs:142:9
[INFO] [stderr]    5:     0x55e10faa75f0 - core::fmt::write::hc9b6faf4ac2aeff7
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/mod.rs:1120:17
[INFO] [stderr]    6:     0x55e10fa7be8f - std::io::Write::write_fmt::hfead1eee52c2e65e
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/io/mod.rs:1810:15
[INFO] [stderr]    7:     0x55e10fa7e174 - std::sys_common::backtrace::_print::hd5d66399c7df88a2
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stderr]    8:     0x55e10fa7e174 - std::sys_common::backtrace::print::he81ed2da642d37e5
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stderr]    9:     0x55e10fa7fee7 - std::panicking::default_hook::{{closure}}::h85773f4fa117163d
[INFO] [stderr]   10:     0x55e10fa7fc49 - std::panicking::default_hook::h6a1694a91d09b278
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:292:9
[INFO] [stderr]   11:     0x55e10fa4fda7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h616ac37fa3cd6c8f
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stderr]   12:     0x55e10fa4fda7 - test::test_main::{{closure}}::h00d84697cefdcbb6
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:138:21
[INFO] [stderr]   13:     0x55e10fa80506 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcb3fe3b9bb537ba8
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stderr]   14:     0x55e10fa80506 - std::panicking::rust_panic_with_hook::h0a7ad96e90f7145b
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:783:13
[INFO] [stderr]   15:     0x55e10fa80252 - std::panicking::begin_panic_handler::{{closure}}::h7919090525c6485e
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:657:13
[INFO] [stderr]   16:     0x55e10fa7e896 - std::sys_common::backtrace::__rust_end_short_backtrace::hf3289479464f7dfe
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stderr]   17:     0x55e10fa7ffb0 - rust_begin_unwind
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:645:5
[INFO] [stderr]   18:     0x55e10fa0fd3a - core::panicking::panic_nounwind_fmt::runtime::hb5f50ebfb7c183b9
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:110:18
[INFO] [stderr]   19:     0x55e10fa0fd3a - core::panicking::panic_nounwind_fmt::he516aba6085c9891
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:122:9
[INFO] [stderr]   20:     0x55e10fa0ffaa - core::panicking::panic_misaligned_pointer_dereference::h288b3a1698e7d035
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:221:5
[INFO] [stderr]   21:     0x55e10fa1ac68 - heap::strings::Str::new::h89ca9f823aca1205
[INFO] [stderr]                                at /opt/rustwide/workdir/heap/src/strings.rs:35:13
[INFO] [stderr]   22:     0x55e10fa1744d - heap::test_marking::haaf8de8f28d685cf
[INFO] [stderr]                                at /opt/rustwide/workdir/heap/src/lib.rs:108:27
[INFO] [stderr]   23:     0x55e10fa17387 - heap::test_marking::{{closure}}::hbb98259ba963b573
[INFO] [stderr]                                at /opt/rustwide/workdir/heap/src/lib.rs:104:18
[INFO] [stderr]   24:     0x55e10fa18146 - core::ops::function::FnOnce::call_once::hd85628287f7b9d3f
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stderr]   25:     0x55e10fa5567f - core::ops::function::FnOnce::call_once::hd64d26f405258157
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stderr]   26:     0x55e10fa5567f - test::__rust_begin_short_backtrace::he21b0b7a6d731bf9
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:627:18
[INFO] [stderr]   27:     0x55e10fa54401 - test::run_test_in_process::{{closure}}::hf5c73986d7bdfde2
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:60
[INFO] [stderr]   28:     0x55e10fa54401 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h330011ad032aadc0
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stderr]   29:     0x55e10fa54401 - std::panicking::try::do_call::he61b0a958b795a41
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stderr]   30:     0x55e10fa54401 - std::panicking::try::h7309da130f906eb7
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stderr]   31:     0x55e10fa54401 - std::panic::catch_unwind::hc5c3a06fdaf0a92a
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stderr]   32:     0x55e10fa54401 - test::run_test_in_process::h7e7b7c71c3324e0f
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:27
[INFO] [stderr]   33:     0x55e10fa54401 - test::run_test::{{closure}}::h1f509f28f5cf20b1
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:573:43
[INFO] [stderr]   34:     0x55e10fa1b736 - test::run_test::{{closure}}::h1754218abf443f6d
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:601:41
[INFO] [stderr]   35:     0x55e10fa1b736 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2ee174b9d5954948
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stderr]   36:     0x55e10fa20797 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hf60bee9c1a17ef09
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:529:17
[INFO] [stderr]   37:     0x55e10fa20797 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h33d0dddec5216160
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stderr]   38:     0x55e10fa20797 - std::panicking::try::do_call::h144b3048b546f835
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stderr]   39:     0x55e10fa20797 - std::panicking::try::h978244d04646189f
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stderr]   40:     0x55e10fa20797 - std::panic::catch_unwind::hdf436369d188fe86
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stderr]   41:     0x55e10fa20797 - std::thread::Builder::spawn_unchecked_::{{closure}}::h87329cbdd33c79ec
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:528:30
[INFO] [stderr]   42:     0x55e10fa20797 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h401abbe67897d450
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stderr]   43:     0x55e10fa84fb5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5d7c8f150ab9c84c
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stderr]   44:     0x55e10fa84fb5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h570d5b005c242c15
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stderr]   45:     0x55e10fa84fb5 - std::sys::unix::thread::Thread::new::thread_start::h36b0a20c0b2361ad
[INFO] [stderr]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stderr]   46:     0x7ffbb3cc6ac3 - <unknown>
[INFO] [stderr]   47:     0x7ffbb3d57bf4 - __clone
[INFO] [stderr]   48:                0x0 - <unknown>
[INFO] [stderr] thread caused non-unwinding panic. aborting.
[INFO] [stderr] error: test failed, to rerun pass `-p heap --lib`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/heap-1a70c422d72a1dea` (signal: 6, SIGABRT: process abort signal)
[INFO] running `Command { std: "docker" "inspect" "70bff83f827ed6796998f11afcfb77bd042718ba57f9eab5a361c4b3735224b7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "70bff83f827ed6796998f11afcfb77bd042718ba57f9eab5a361c4b3735224b7", kill_on_drop: false }`
[INFO] [stdout] 70bff83f827ed6796998f11afcfb77bd042718ba57f9eab5a361c4b3735224b7
