[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.76.0 for beta-1.77-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fevomassiny%2Frlox" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/evomassiny/rlox on toolchain 1.76.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.76.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-5-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.76.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-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1d4ddbe50b96b173cea6cedf98e6745e472361280ebd58c2ba4e42080766bed6
[INFO] running `Command { std: "docker" "start" "-a" "1d4ddbe50b96b173cea6cedf98e6745e472361280ebd58c2ba4e42080766bed6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1d4ddbe50b96b173cea6cedf98e6745e472361280ebd58c2ba4e42080766bed6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1d4ddbe50b96b173cea6cedf98e6745e472361280ebd58c2ba4e42080766bed6", kill_on_drop: false }`
[INFO] [stdout] 1d4ddbe50b96b173cea6cedf98e6745e472361280ebd58c2ba4e42080766bed6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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.76.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a170060d11b89d50fba5203c01c6042798c43dfe138f1bb0c57e7788af98ae9f
[INFO] running `Command { std: "docker" "start" "-a" "a170060d11b89d50fba5203c01c6042798c43dfe138f1bb0c57e7788af98ae9f", 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 libc v0.2.134
[INFO] [stderr]    Compiling lexer v0.1.0 (/opt/rustwide/workdir/lexer)
[INFO] [stderr]    Compiling os_str_bytes v6.3.0
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling heck v0.4.0
[INFO] [stderr]    Compiling once_cell v1.15.0
[INFO] [stderr]    Compiling termcolor v1.1.3
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling textwrap v0.15.1
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling indexmap v1.9.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] [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] [stderr]    Compiling clap_lex v0.2.4
[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] [stdout] warning: 32 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] [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 10.84s
[INFO] running `Command { std: "docker" "inspect" "a170060d11b89d50fba5203c01c6042798c43dfe138f1bb0c57e7788af98ae9f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a170060d11b89d50fba5203c01c6042798c43dfe138f1bb0c57e7788af98ae9f", kill_on_drop: false }`
[INFO] [stdout] a170060d11b89d50fba5203c01c6042798c43dfe138f1bb0c57e7788af98ae9f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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.76.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 698a0a228db1aa482bdbdbe0363036f8a97d8b27532a9410afb31e2020b10c54
[INFO] running `Command { std: "docker" "start" "-a" "698a0a228db1aa482bdbdbe0363036f8a97d8b27532a9410afb31e2020b10c54", 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 lexer v0.1.0 (/opt/rustwide/workdir/lexer)
[INFO] [stderr]    Compiling heap v0.1.0 (/opt/rustwide/workdir/heap)
[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: 27 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling resolver v0.1.0 (/opt/rustwide/workdir/resolver)
[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: `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 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 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.76s
[INFO] running `Command { std: "docker" "inspect" "698a0a228db1aa482bdbdbe0363036f8a97d8b27532a9410afb31e2020b10c54", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "698a0a228db1aa482bdbdbe0363036f8a97d8b27532a9410afb31e2020b10c54", kill_on_drop: false }`
[INFO] [stdout] 698a0a228db1aa482bdbdbe0363036f8a97d8b27532a9410afb31e2020b10c54
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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.76.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8aa090280058bd32d2ed44abbe4b17f7459ce49753d7ad23163f2837f908bde9
[INFO] running `Command { std: "docker" "start" "-a" "8aa090280058bd32d2ed44abbe4b17f7459ce49753d7ad23163f2837f908bde9", 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.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/heap-9276d4e6ddf0c471)
[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 0x7fe278008194
[INFO] [stderr] stack backtrace:
[INFO] [stderr]    0:     0x562be19dc376 - std::backtrace_rs::backtrace::libunwind::trace::hbee8a7973eeb6c93
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stderr]    1:     0x562be19dc376 - std::backtrace_rs::backtrace::trace_unsynchronized::hc8ac75eea3aa6899
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stderr]    2:     0x562be19dc376 - std::sys_common::backtrace::_print_fmt::hc7f3e3b5298b1083
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stderr]    3:     0x562be19dc376 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hbb235daedd7c6190
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stderr]    4:     0x562be1a055d0 - core::fmt::rt::Argument::fmt::h76c38a80d925a410
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/fmt/rt.rs:142:9
[INFO] [stderr]    5:     0x562be1a055d0 - core::fmt::write::h3ed6aeaa977c8e45
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/fmt/mod.rs:1120:17
[INFO] [stderr]    6:     0x562be19d9e6f - std::io::Write::write_fmt::h78b18af5775fedb5
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/io/mod.rs:1810:15
[INFO] [stderr]    7:     0x562be19dc154 - std::sys_common::backtrace::_print::h5d645a07e0fcfdbb
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stderr]    8:     0x562be19dc154 - std::sys_common::backtrace::print::h85035a511aafe7a8
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stderr]    9:     0x562be19ddec7 - std::panicking::default_hook::{{closure}}::hcce8cea212785a25
[INFO] [stderr]   10:     0x562be19ddc29 - std::panicking::default_hook::hf5fcb0f213fe709a
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:292:9
[INFO] [stderr]   11:     0x562be19adda7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h60265c2dfa87ee34
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/alloc/src/boxed.rs:2029:9
[INFO] [stderr]   12:     0x562be19adda7 - test::test_main::{{closure}}::h77865bd3127078c6
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/test/src/lib.rs:138:21
[INFO] [stderr]   13:     0x562be19de4e6 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hbc5ccf4eb663e1e5
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/alloc/src/boxed.rs:2029:9
[INFO] [stderr]   14:     0x562be19de4e6 - std::panicking::rust_panic_with_hook::h095fccf1dc9379ee
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:783:13
[INFO] [stderr]   15:     0x562be19de232 - std::panicking::begin_panic_handler::{{closure}}::h032ba12139b353db
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:657:13
[INFO] [stderr]   16:     0x562be19dc876 - std::sys_common::backtrace::__rust_end_short_backtrace::h9259bc2ff8fd0f76
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stderr]   17:     0x562be19ddf90 - rust_begin_unwind
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:645:5
[INFO] [stderr]   18:     0x562be196dd3a - core::panicking::panic_nounwind_fmt::runtime::hc18fd4a76c1e2aab
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panicking.rs:110:18
[INFO] [stderr]   19:     0x562be196dd3a - core::panicking::panic_nounwind_fmt::hcb87f45b1afb5c5d
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panicking.rs:122:9
[INFO] [stderr]   20:     0x562be196dfaa - core::panicking::panic_misaligned_pointer_dereference::hb795539249e40c00
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panicking.rs:221:5
[INFO] [stderr]   21:     0x562be1978c68 - heap::strings::Str::new::h97798705007a24f2
[INFO] [stderr]                                at /opt/rustwide/workdir/heap/src/strings.rs:35:13
[INFO] [stderr]   22:     0x562be19754fd - heap::test_marking::hea069c5b93b06671
[INFO] [stderr]                                at /opt/rustwide/workdir/heap/src/lib.rs:108:27
[INFO] [stderr]   23:     0x562be1975437 - heap::test_marking::{{closure}}::hbead46586f7c81d6
[INFO] [stderr]                                at /opt/rustwide/workdir/heap/src/lib.rs:104:18
[INFO] [stderr]   24:     0x562be1976266 - core::ops::function::FnOnce::call_once::haf1d3557c8a3fb90
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250:5
[INFO] [stderr]   25:     0x562be19b367f - core::ops::function::FnOnce::call_once::h8dc6907944022cf6
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250:5
[INFO] [stderr]   26:     0x562be19b367f - test::__rust_begin_short_backtrace::haae1a87433f1efb3
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/test/src/lib.rs:627:18
[INFO] [stderr]   27:     0x562be19b2401 - test::run_test_in_process::{{closure}}::h8c7decfa7c14e152
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/test/src/lib.rs:650:60
[INFO] [stderr]   28:     0x562be19b2401 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h19e6ff056d9d21e9
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stderr]   29:     0x562be19b2401 - std::panicking::try::do_call::h89c848fcaa37c035
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:552:40
[INFO] [stderr]   30:     0x562be19b2401 - std::panicking::try::h57ab3dc74e2839b8
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:516:19
[INFO] [stderr]   31:     0x562be19b2401 - std::panic::catch_unwind::hfb6a1b1abc120fb9
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panic.rs:142:14
[INFO] [stderr]   32:     0x562be19b2401 - test::run_test_in_process::h5ae2f9875edd562d
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/test/src/lib.rs:650:27
[INFO] [stderr]   33:     0x562be19b2401 - test::run_test::{{closure}}::h35d7300d8928a067
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/test/src/lib.rs:573:43
[INFO] [stderr]   34:     0x562be1979736 - test::run_test::{{closure}}::h7525ced405d23d1b
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/test/src/lib.rs:601:41
[INFO] [stderr]   35:     0x562be1979736 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4e7db78ce05afad8
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stderr]   36:     0x562be197e797 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hcfbcb64f1a1b3482
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/thread/mod.rs:529:17
[INFO] [stderr]   37:     0x562be197e797 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9d89c5c4108bd689
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stderr]   38:     0x562be197e797 - std::panicking::try::do_call::h8a4869bc94ec50c9
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:552:40
[INFO] [stderr]   39:     0x562be197e797 - std::panicking::try::h9a576f20ff81ac30
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:516:19
[INFO] [stderr]   40:     0x562be197e797 - std::panic::catch_unwind::hbcb4e3f860ef9830
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panic.rs:142:14
[INFO] [stderr]   41:     0x562be197e797 - std::thread::Builder::spawn_unchecked_::{{closure}}::h93c79a6be1505948
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/thread/mod.rs:528:30
[INFO] [stderr]   42:     0x562be197e797 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h426d96740c81bdaf
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250:5
[INFO] [stderr]   43:     0x562be19e2f95 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h12de4fc57affb195
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/alloc/src/boxed.rs:2015:9
[INFO] [stderr]   44:     0x562be19e2f95 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h3c619f45059d5cf1
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/alloc/src/boxed.rs:2015:9
[INFO] [stderr]   45:     0x562be19e2f95 - std::sys::unix::thread::Thread::new::thread_start::hbac657605e4b7389
[INFO] [stderr]                                at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stderr]   46:     0x7fe284cddac3 - <unknown>
[INFO] [stderr]   47:     0x7fe284d6ebf4 - __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-9276d4e6ddf0c471` (signal: 6, SIGABRT: process abort signal)
[INFO] running `Command { std: "docker" "inspect" "8aa090280058bd32d2ed44abbe4b17f7459ce49753d7ad23163f2837f908bde9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8aa090280058bd32d2ed44abbe4b17f7459ce49753d7ad23163f2837f908bde9", kill_on_drop: false }`
[INFO] [stdout] 8aa090280058bd32d2ed44abbe4b17f7459ce49753d7ad23163f2837f908bde9
