[INFO] fetching crate spaik 0.3.1...
[INFO] testing spaik-0.3.1 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate spaik 0.3.1 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate spaik 0.3.1
[INFO] finished tweaking crates.io crate spaik 0.3.1
[INFO] tweaked toml for crates.io crate spaik 0.3.1 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate spaik 0.3.1 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate spaik 0.3.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fd5d1adf17e4f769438cf36acf30566bcbf21f3b365bae7dbd5388b5a5c2b450
[INFO] running `Command { std: "docker" "start" "-a" "fd5d1adf17e4f769438cf36acf30566bcbf21f3b365bae7dbd5388b5a5c2b450", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fd5d1adf17e4f769438cf36acf30566bcbf21f3b365bae7dbd5388b5a5c2b450", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fd5d1adf17e4f769438cf36acf30566bcbf21f3b365bae7dbd5388b5a5c2b450", kill_on_drop: false }`
[INFO] [stdout] fd5d1adf17e4f769438cf36acf30566bcbf21f3b365bae7dbd5388b5a5c2b450
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5f443bde0fbf3fad2a0d55fc5d17ce1ce9523e896c6a5da96afa21d2f2e25044
[INFO] running `Command { std: "docker" "start" "-a" "5f443bde0fbf3fad2a0d55fc5d17ce1ce9523e896c6a5da96afa21d2f2e25044", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.55
[INFO] [stderr]    Compiling unicode-ident v1.0.8
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling libc v0.2.140
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling siphasher v0.3.10
[INFO] [stderr]    Compiling serde_derive v1.0.159
[INFO] [stderr]    Compiling serde v1.0.159
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling rustversion v1.0.12
[INFO] [stderr]    Compiling winnow v0.4.1
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]    Compiling toml_datetime v0.6.1
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling is_ci v1.1.1
[INFO] [stderr]    Compiling unicode-width v0.1.10
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling once_cell v1.17.1
[INFO] [stderr]    Compiling phf_shared v0.11.1
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling mint v0.5.9
[INFO] [stderr]    Compiling strum v0.23.0
[INFO] [stderr]    Compiling syn v2.0.13
[INFO] [stderr]    Compiling phf_generator v0.11.1
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling dirs-sys v0.3.7
[INFO] [stderr]    Compiling dirs v4.0.0
[INFO] [stderr]    Compiling supports-color v1.3.1
[INFO] [stderr]    Compiling dirs-next v1.0.2
[INFO] [stderr]    Compiling owo-colors v3.5.0
[INFO] [stderr]    Compiling toml_edit v0.19.8
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling rustyline v6.3.0
[INFO] [stderr]    Compiling phf_macros v0.11.1
[INFO] [stderr]    Compiling strum_macros v0.23.1
[INFO] [stderr]    Compiling spaik-proc-macros v0.1.0
[INFO] [stderr]    Compiling phf v0.11.1
[INFO] [stderr]    Compiling comfy-table v5.0.1
[INFO] [stderr]    Compiling glam v0.21.3
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling spaik v0.3.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/nuke.rs:1327:13
[INFO] [stdout]      |
[INFO] [stdout] 1327 |         let mut cur = align_mut(self.free as *mut NkAtom,
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SymTypeOf` is never used
[INFO] [stdout]   --> src/nkgc.rs:64:11
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub trait SymTypeOf {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Stream` is never constructed
[INFO] [stdout]     --> src/nkgc.rs:1091:12
[INFO] [stdout]      |
[INFO] [stdout] 1091 | pub struct Stream {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ILambda` is never constructed
[INFO] [stdout]     --> src/nkgc.rs:1108:12
[INFO] [stdout]      |
[INFO] [stdout] 1108 | pub struct ILambda {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SizeOf` is never used
[INFO] [stdout]     --> src/nkgc.rs:1115:11
[INFO] [stdout]      |
[INFO] [stdout] 1115 | pub trait SizeOf {
[INFO] [stdout]      |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TailCall` is never constructed
[INFO] [stdout]   --> src/ast.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum M {
[INFO] [stdout]    |          - variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 58 |     TailCall(Progn),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `M` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |     Div(&'a M, &'a M),
[INFO] [stdout]    |     --- ^^^^^  ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `M2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 97 -     Div(&'a M, &'a M),
[INFO] [stdout] 97 +     Div((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     Mul(&'a M, &'a M),
[INFO] [stdout]    |     --- ^^^^^  ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `M2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 98 -     Mul(&'a M, &'a M),
[INFO] [stdout] 98 +     Mul((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrinterVisitor` is never constructed
[INFO] [stdout]    --> src/ast.rs:861:12
[INFO] [stdout]     |
[INFO] [stdout] 861 | pub struct PrinterVisitor;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FindLoopBreak` is never constructed
[INFO] [stdout]    --> src/opt.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | struct FindLoopBreak<F: FnMut(&mut AST2) -> crate::Result<()>>(F);
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TCOptomat` is never constructed
[INFO] [stdout]    --> src/opt.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub struct TCOptomat {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Hexable` is never used
[INFO] [stdout]    --> src/builtins.rs:138:11
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub trait Hexable {
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hex` is never constructed
[INFO] [stdout]    --> src/builtins.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | struct Hex<T>(pub T) where T: LowerHex;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 803 | |     (PV, Builtin::Ref, crate::nkgc::PV),
[INFO] [stdout]     | |      -- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 805 | |     (Vec4, Builtin::Vec4, glam::Vec4),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 806 | |     (Mat2, Builtin::Mat2, glam::Mat2),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 807 | |     (Mat3, Builtin::Mat3, glam::Mat3),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 808 | |     (Mat4, Builtin::Mat4, glam::Mat4),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawDebugStr` is never constructed
[INFO] [stdout]     --> src/nuke.rs:1432:8
[INFO] [stdout]      |
[INFO] [stdout] 1432 | struct RawDebugStr<'a>(&'a str);
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DebugHexBytes` is never constructed
[INFO] [stdout]     --> src/nuke.rs:1440:8
[INFO] [stdout]      |
[INFO] [stdout] 1440 | struct DebugHexBytes<'a>(&'a [u8]);
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModuleMeta` is never constructed
[INFO] [stdout]   --> src/module.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct ModuleMeta {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `style_asm_var` is never used
[INFO] [stdout]   --> src/stylize.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout]  7 |         pub trait Stylize: OwoColorize {
[INFO] [stdout]    |                   ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 32 |     style_asm_var { style().cyan().bold() }
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `def_styles` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/nkgc.rs:357:13
[INFO] [stdout]     |
[INFO] [stdout] 357 |             (*fastcast::<Vec<PV>>(self.vec)).get(idx).copied()
[INFO] [stdout]     |             ^^-----------------------------^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this raw pointer has type `*const Vec<PV>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[PV]`
[INFO] [stdout]    --> src/nkgc.rs:357:13
[INFO] [stdout]     |
[INFO] [stdout] 357 |             (*fastcast::<Vec<PV>>(self.vec)).get(idx).copied()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: method calls to `get` require a reference
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:572:4
[INFO] [stdout]     = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 357 |             (&(*fastcast::<Vec<PV>>(self.vec))).get(idx).copied()
[INFO] [stdout]     |             ++                                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/nkgc.rs:383:16
[INFO] [stdout]     |
[INFO] [stdout] 383 |     pub fn str(&self) -> Cow<str> {
[INFO] [stdout]     |                ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 383 |     pub fn str(&self) -> Cow<'_, str> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/nkgc.rs:385:31
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Ok(Cow::Borrowed(&(*s)[..]))
[INFO] [stdout]     |                               ^^-^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this raw pointer has type `*const String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stdout]    --> src/nkgc.rs:385:31
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Ok(Cow::Borrowed(&(*s)[..]))
[INFO] [stdout]     |                               ^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Ok(Cow::Borrowed(&(&(*s))[..]))
[INFO] [stdout]     |                               ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/chasm.rs:264:51
[INFO] [stdout]     |
[INFO] [stdout] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/r8vm.rs:27:1
[INFO] [stdout]     |
[INFO] [stdout]  27 | / chasm_def! {
[INFO] [stdout]  28 | |     r8c:
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |     MUL()
[INFO] [stdout] 113 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout] 264 +                         $name::Op::$en($(unsafe { u32::from_ne_bytes($arg) }),*)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/chasm.rs:264:51
[INFO] [stdout]     |
[INFO] [stdout] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/r8vm.rs:27:1
[INFO] [stdout]     |
[INFO] [stdout]  27 | / chasm_def! {
[INFO] [stdout]  28 | |     r8c:
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |     MUL()
[INFO] [stdout] 113 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout] 264 +                         $name::Op::$en($(unsafe { u16::from_ne_bytes($arg) }),*)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/chasm.rs:264:51
[INFO] [stdout]     |
[INFO] [stdout] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/r8vm.rs:27:1
[INFO] [stdout]     |
[INFO] [stdout]  27 | / chasm_def! {
[INFO] [stdout]  28 | |     r8c:
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |     MUL()
[INFO] [stdout] 113 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout] 264 +                         $name::Op::$en($(unsafe { i32::from_ne_bytes($arg) }),*)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/chasm.rs:264:51
[INFO] [stdout]     |
[INFO] [stdout] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/r8vm.rs:27:1
[INFO] [stdout]     |
[INFO] [stdout]  27 | / chasm_def! {
[INFO] [stdout]  28 | |     r8c:
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |     MUL()
[INFO] [stdout] 113 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout] 264 +                         $name::Op::$en($(unsafe { u8::from_ne_bytes($arg) }),*)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/r8vm.rs:1197:58
[INFO] [stdout]      |
[INFO] [stdout] 1197 |             path.push_str(with_ref!(p, String(s) => {Ok(&(*s)[..])})
[INFO] [stdout]      |                                                          ^^-^^^^^
[INFO] [stdout]      |                                                            |
[INFO] [stdout]      |                                                            this raw pointer has type `*const String`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stdout]     --> src/r8vm.rs:1197:58
[INFO] [stdout]      |
[INFO] [stdout] 1197 |             path.push_str(with_ref!(p, String(s) => {Ok(&(*s)[..])})
[INFO] [stdout]      |                                                          ^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1197 |             path.push_str(with_ref!(p, String(s) => {Ok(&(&(*s))[..])})
[INFO] [stdout]      |                                                          ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/r8vm.rs:1967:25
[INFO] [stdout]      |
[INFO] [stdout] 1967 |                         (*v).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stdout]      |                         ^^-^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this raw pointer has type `*const Vec<PV>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[PV]`
[INFO] [stdout]     --> src/r8vm.rs:1967:25
[INFO] [stdout]      |
[INFO] [stdout] 1967 |                         (*v).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stdout]      |                         ^^^^
[INFO] [stdout] note: method calls to `get` require a reference
[INFO] [stdout]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:572:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1967 |                         (&(*v)).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stdout]      |                         ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/r8vm.rs:1986:30
[INFO] [stdout]      |
[INFO] [stdout] 1986 | ...                   *(*v).get_unchecked_mut(idx) = args[0];
[INFO] [stdout]      |                        ^^-^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*mut Vec<PV>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut [PV]`
[INFO] [stdout]     --> src/r8vm.rs:1986:30
[INFO] [stdout]      |
[INFO] [stdout] 1986 | ...                   *(*v).get_unchecked_mut(idx) = args[0];
[INFO] [stdout]      |                        ^^^^
[INFO] [stdout] note: method calls to `get_unchecked_mut` require a reference
[INFO] [stdout]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:684:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1986 |                             *(&mut (*v)).get_unchecked_mut(idx) = args[0];
[INFO] [stdout]      |                              +++++     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/r8vm.rs:1996:59
[INFO] [stdout]      |
[INFO] [stdout] 1996 | ...                   String(s) => { Ok((*s).len()) },
[INFO] [stdout]      |                                         ^^-^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this raw pointer has type `*const String`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stdout]     --> src/r8vm.rs:1996:59
[INFO] [stdout]      |
[INFO] [stdout] 1996 | ...                   String(s) => { Ok((*s).len()) },
[INFO] [stdout]      |                                         ^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/string.rs:1860:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1996 |                                         String(s) => { Ok((&(*s)).len()) },
[INFO] [stdout]      |                                                           ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/r8vm.rs:339:35
[INFO] [stdout]     |
[INFO] [stdout] 339 |                     Ok(Cow::from(&(*s)[..]))
[INFO] [stdout]     |                                   ^^-^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this raw pointer has type `*const String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stdout]    --> src/r8vm.rs:339:35
[INFO] [stdout]     |
[INFO] [stdout] 339 |                     Ok(Cow::from(&(*s)[..]))
[INFO] [stdout]     |                                   ^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 339 |                     Ok(Cow::from(&(&(*s))[..]))
[INFO] [stdout]     |                                   ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:110:19
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub fn binary(&self) -> Option<(M2, (&Source, &Source))> {
[INFO] [stdout]     |                   ^^^^^             ^^   ^^^^^^^  ^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                   |                 |    |
[INFO] [stdout]     |                   |                 |    the same lifetime is elided here
[INFO] [stdout]     |                   |                 the same lifetime is hidden here
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub fn binary(&self) -> Option<(M2<'_>, (&Source, &Source))> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tok.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn inner_str(&self) -> Option<Token> {
[INFO] [stdout]    |                      ^^^^^            ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn inner_str(&self) -> Option<Token<'_>> {
[INFO] [stdout]    |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.45s
[INFO] running `Command { std: "docker" "inspect" "5f443bde0fbf3fad2a0d55fc5d17ce1ce9523e896c6a5da96afa21d2f2e25044", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f443bde0fbf3fad2a0d55fc5d17ce1ce9523e896c6a5da96afa21d2f2e25044", kill_on_drop: false }`
[INFO] [stdout] 5f443bde0fbf3fad2a0d55fc5d17ce1ce9523e896c6a5da96afa21d2f2e25044
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8848b32ba5b8c07d3b3f0f5aa2bcfd38376d766c2cbdb7616844aa745dd80dcb
[INFO] running `Command { std: "docker" "start" "-a" "8848b32ba5b8c07d3b3f0f5aa2bcfd38376d766c2cbdb7616844aa745dd80dcb", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.55
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling aho-corasick v0.7.20
[INFO] [stderr]    Compiling termcolor v1.2.0
[INFO] [stderr]    Compiling rustyline v6.3.0
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling syn v2.0.13
[INFO] [stderr]    Compiling iai_macro v0.1.1
[INFO] [stderr]    Compiling iai v0.1.1
[INFO] [stderr]    Compiling regex v1.7.3
[INFO] [stderr]    Compiling serde_derive v1.0.159
[INFO] [stderr]    Compiling env_logger v0.7.1
[INFO] [stderr]    Compiling pretty_env_logger v0.4.0
[INFO] [stderr]    Compiling phf_macros v0.11.1
[INFO] [stderr]    Compiling strum_macros v0.23.1
[INFO] [stderr]    Compiling spaik-proc-macros v0.1.0
[INFO] [stderr]    Compiling phf v0.11.1
[INFO] [stderr]    Compiling serde v1.0.159
[INFO] [stderr]    Compiling comfy-table v5.0.1
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling glam v0.21.3
[INFO] [stderr]    Compiling spaik v0.3.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/nuke.rs:1327:13
[INFO] [stdout]      |
[INFO] [stdout] 1327 |         let mut cur = align_mut(self.free as *mut NkAtom,
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SymTypeOf` is never used
[INFO] [stdout]   --> src/nkgc.rs:64:11
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub trait SymTypeOf {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Stream` is never constructed
[INFO] [stdout]     --> src/nkgc.rs:1091:12
[INFO] [stdout]      |
[INFO] [stdout] 1091 | pub struct Stream {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ILambda` is never constructed
[INFO] [stdout]     --> src/nkgc.rs:1108:12
[INFO] [stdout]      |
[INFO] [stdout] 1108 | pub struct ILambda {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SizeOf` is never used
[INFO] [stdout]     --> src/nkgc.rs:1115:11
[INFO] [stdout]      |
[INFO] [stdout] 1115 | pub trait SizeOf {
[INFO] [stdout]      |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TailCall` is never constructed
[INFO] [stdout]   --> src/ast.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum M {
[INFO] [stdout]    |          - variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 58 |     TailCall(Progn),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `M` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |     Div(&'a M, &'a M),
[INFO] [stdout]    |     --- ^^^^^  ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `M2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 97 -     Div(&'a M, &'a M),
[INFO] [stdout] 97 +     Div((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     Mul(&'a M, &'a M),
[INFO] [stdout]    |     --- ^^^^^  ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `M2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 98 -     Mul(&'a M, &'a M),
[INFO] [stdout] 98 +     Mul((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrinterVisitor` is never constructed
[INFO] [stdout]    --> src/ast.rs:861:12
[INFO] [stdout]     |
[INFO] [stdout] 861 | pub struct PrinterVisitor;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FindLoopBreak` is never constructed
[INFO] [stdout]    --> src/opt.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | struct FindLoopBreak<F: FnMut(&mut AST2) -> crate::Result<()>>(F);
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TCOptomat` is never constructed
[INFO] [stdout]    --> src/opt.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub struct TCOptomat {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Hexable` is never used
[INFO] [stdout]    --> src/builtins.rs:138:11
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub trait Hexable {
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hex` is never constructed
[INFO] [stdout]    --> src/builtins.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | struct Hex<T>(pub T) where T: LowerHex;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 803 | |     (PV, Builtin::Ref, crate::nkgc::PV),
[INFO] [stdout]     | |      -- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 805 | |     (Vec4, Builtin::Vec4, glam::Vec4),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 806 | |     (Mat2, Builtin::Mat2, glam::Mat2),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 807 | |     (Mat3, Builtin::Mat3, glam::Mat3),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 808 | |     (Mat4, Builtin::Mat4, glam::Mat4),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawDebugStr` is never constructed
[INFO] [stdout]     --> src/nuke.rs:1432:8
[INFO] [stdout]      |
[INFO] [stdout] 1432 | struct RawDebugStr<'a>(&'a str);
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DebugHexBytes` is never constructed
[INFO] [stdout]     --> src/nuke.rs:1440:8
[INFO] [stdout]      |
[INFO] [stdout] 1440 | struct DebugHexBytes<'a>(&'a [u8]);
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModuleMeta` is never constructed
[INFO] [stdout]   --> src/module.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct ModuleMeta {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `style_asm_var` is never used
[INFO] [stdout]   --> src/stylize.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout]  7 |         pub trait Stylize: OwoColorize {
[INFO] [stdout]    |                   ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 32 |     style_asm_var { style().cyan().bold() }
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `def_styles` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/nkgc.rs:357:13
[INFO] [stdout]     |
[INFO] [stdout] 357 |             (*fastcast::<Vec<PV>>(self.vec)).get(idx).copied()
[INFO] [stdout]     |             ^^-----------------------------^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this raw pointer has type `*const Vec<PV>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[PV]`
[INFO] [stdout]    --> src/nkgc.rs:357:13
[INFO] [stdout]     |
[INFO] [stdout] 357 |             (*fastcast::<Vec<PV>>(self.vec)).get(idx).copied()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: method calls to `get` require a reference
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:572:4
[INFO] [stdout]     = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 357 |             (&(*fastcast::<Vec<PV>>(self.vec))).get(idx).copied()
[INFO] [stdout]     |             ++                                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/nkgc.rs:383:16
[INFO] [stdout]     |
[INFO] [stdout] 383 |     pub fn str(&self) -> Cow<str> {
[INFO] [stdout]     |                ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 383 |     pub fn str(&self) -> Cow<'_, str> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/nkgc.rs:385:31
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Ok(Cow::Borrowed(&(*s)[..]))
[INFO] [stdout]     |                               ^^-^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this raw pointer has type `*const String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stdout]    --> src/nkgc.rs:385:31
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Ok(Cow::Borrowed(&(*s)[..]))
[INFO] [stdout]     |                               ^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Ok(Cow::Borrowed(&(&(*s))[..]))
[INFO] [stdout]     |                               ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/chasm.rs:264:51
[INFO] [stdout]     |
[INFO] [stdout] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/r8vm.rs:27:1
[INFO] [stdout]     |
[INFO] [stdout]  27 | / chasm_def! {
[INFO] [stdout]  28 | |     r8c:
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |     MUL()
[INFO] [stdout] 113 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout] 264 +                         $name::Op::$en($(unsafe { u32::from_ne_bytes($arg) }),*)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/chasm.rs:264:51
[INFO] [stdout]     |
[INFO] [stdout] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/r8vm.rs:27:1
[INFO] [stdout]     |
[INFO] [stdout]  27 | / chasm_def! {
[INFO] [stdout]  28 | |     r8c:
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |     MUL()
[INFO] [stdout] 113 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout] 264 +                         $name::Op::$en($(unsafe { u16::from_ne_bytes($arg) }),*)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/chasm.rs:264:51
[INFO] [stdout]     |
[INFO] [stdout] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/r8vm.rs:27:1
[INFO] [stdout]     |
[INFO] [stdout]  27 | / chasm_def! {
[INFO] [stdout]  28 | |     r8c:
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |     MUL()
[INFO] [stdout] 113 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout] 264 +                         $name::Op::$en($(unsafe { i32::from_ne_bytes($arg) }),*)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/chasm.rs:264:51
[INFO] [stdout]     |
[INFO] [stdout] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/r8vm.rs:27:1
[INFO] [stdout]     |
[INFO] [stdout]  27 | / chasm_def! {
[INFO] [stdout]  28 | |     r8c:
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |     MUL()
[INFO] [stdout] 113 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout] 264 +                         $name::Op::$en($(unsafe { u8::from_ne_bytes($arg) }),*)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/r8vm.rs:1197:58
[INFO] [stdout]      |
[INFO] [stdout] 1197 |             path.push_str(with_ref!(p, String(s) => {Ok(&(*s)[..])})
[INFO] [stdout]      |                                                          ^^-^^^^^
[INFO] [stdout]      |                                                            |
[INFO] [stdout]      |                                                            this raw pointer has type `*const String`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stdout]     --> src/r8vm.rs:1197:58
[INFO] [stdout]      |
[INFO] [stdout] 1197 |             path.push_str(with_ref!(p, String(s) => {Ok(&(*s)[..])})
[INFO] [stdout]      |                                                          ^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1197 |             path.push_str(with_ref!(p, String(s) => {Ok(&(&(*s))[..])})
[INFO] [stdout]      |                                                          ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/r8vm.rs:1967:25
[INFO] [stdout]      |
[INFO] [stdout] 1967 |                         (*v).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stdout]      |                         ^^-^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this raw pointer has type `*const Vec<PV>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[PV]`
[INFO] [stdout]     --> src/r8vm.rs:1967:25
[INFO] [stdout]      |
[INFO] [stdout] 1967 |                         (*v).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stdout]      |                         ^^^^
[INFO] [stdout] note: method calls to `get` require a reference
[INFO] [stdout]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:572:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1967 |                         (&(*v)).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stdout]      |                         ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/r8vm.rs:1986:30
[INFO] [stdout]      |
[INFO] [stdout] 1986 | ...                   *(*v).get_unchecked_mut(idx) = args[0];
[INFO] [stdout]      |                        ^^-^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*mut Vec<PV>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut [PV]`
[INFO] [stdout]     --> src/r8vm.rs:1986:30
[INFO] [stdout]      |
[INFO] [stdout] 1986 | ...                   *(*v).get_unchecked_mut(idx) = args[0];
[INFO] [stdout]      |                        ^^^^
[INFO] [stdout] note: method calls to `get_unchecked_mut` require a reference
[INFO] [stdout]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:684:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1986 |                             *(&mut (*v)).get_unchecked_mut(idx) = args[0];
[INFO] [stdout]      |                              +++++     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/r8vm.rs:1996:59
[INFO] [stdout]      |
[INFO] [stdout] 1996 | ...                   String(s) => { Ok((*s).len()) },
[INFO] [stdout]      |                                         ^^-^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this raw pointer has type `*const String`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stdout]     --> src/r8vm.rs:1996:59
[INFO] [stdout]      |
[INFO] [stdout] 1996 | ...                   String(s) => { Ok((*s).len()) },
[INFO] [stdout]      |                                         ^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/string.rs:1860:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1996 |                                         String(s) => { Ok((&(*s)).len()) },
[INFO] [stdout]      |                                                           ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/r8vm.rs:339:35
[INFO] [stdout]     |
[INFO] [stdout] 339 |                     Ok(Cow::from(&(*s)[..]))
[INFO] [stdout]     |                                   ^^-^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this raw pointer has type `*const String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stdout]    --> src/r8vm.rs:339:35
[INFO] [stdout]     |
[INFO] [stdout] 339 |                     Ok(Cow::from(&(*s)[..]))
[INFO] [stdout]     |                                   ^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 339 |                     Ok(Cow::from(&(&(*s))[..]))
[INFO] [stdout]     |                                   ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:110:19
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub fn binary(&self) -> Option<(M2, (&Source, &Source))> {
[INFO] [stdout]     |                   ^^^^^             ^^   ^^^^^^^  ^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                   |                 |    |
[INFO] [stdout]     |                   |                 |    the same lifetime is elided here
[INFO] [stdout]     |                   |                 the same lifetime is hidden here
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub fn binary(&self) -> Option<(M2<'_>, (&Source, &Source))> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tok.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn inner_str(&self) -> Option<Token> {
[INFO] [stdout]    |                      ^^^^^            ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn inner_str(&self) -> Option<Token<'_>> {
[INFO] [stdout]    |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/nuke.rs:1327:13
[INFO] [stdout]      |
[INFO] [stdout] 1327 |         let mut cur = align_mut(self.free as *mut NkAtom,
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SymTypeOf` is never used
[INFO] [stdout]   --> src/nkgc.rs:64:11
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub trait SymTypeOf {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Stream` is never constructed
[INFO] [stdout]     --> src/nkgc.rs:1091:12
[INFO] [stdout]      |
[INFO] [stdout] 1091 | pub struct Stream {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ILambda` is never constructed
[INFO] [stdout]     --> src/nkgc.rs:1108:12
[INFO] [stdout]      |
[INFO] [stdout] 1108 | pub struct ILambda {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SizeOf` is never used
[INFO] [stdout]     --> src/nkgc.rs:1115:11
[INFO] [stdout]      |
[INFO] [stdout] 1115 | pub trait SizeOf {
[INFO] [stdout]      |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TailCall` is never constructed
[INFO] [stdout]   --> src/ast.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum M {
[INFO] [stdout]    |          - variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 58 |     TailCall(Progn),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `M` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |     Div(&'a M, &'a M),
[INFO] [stdout]    |     --- ^^^^^  ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `M2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 97 -     Div(&'a M, &'a M),
[INFO] [stdout] 97 +     Div((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     Mul(&'a M, &'a M),
[INFO] [stdout]    |     --- ^^^^^  ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `M2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 98 -     Mul(&'a M, &'a M),
[INFO] [stdout] 98 +     Mul((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrinterVisitor` is never constructed
[INFO] [stdout]    --> src/ast.rs:861:12
[INFO] [stdout]     |
[INFO] [stdout] 861 | pub struct PrinterVisitor;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FindLoopBreak` is never constructed
[INFO] [stdout]    --> src/opt.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | struct FindLoopBreak<F: FnMut(&mut AST2) -> crate::Result<()>>(F);
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TCOptomat` is never constructed
[INFO] [stdout]    --> src/opt.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub struct TCOptomat {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Hexable` is never used
[INFO] [stdout]    --> src/builtins.rs:138:11
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub trait Hexable {
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hex` is never constructed
[INFO] [stdout]    --> src/builtins.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | struct Hex<T>(pub T) where T: LowerHex;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 803 | |     (PV, Builtin::Ref, crate::nkgc::PV),
[INFO] [stdout]     | |      -- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 805 | |     (Vec4, Builtin::Vec4, glam::Vec4),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 806 | |     (Mat2, Builtin::Mat2, glam::Mat2),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 807 | |     (Mat3, Builtin::Mat3, glam::Mat3),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/nuke.rs:97:31
[INFO] [stdout]     |
[INFO] [stdout]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 | / fissile_types! {
[INFO] [stdout] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stdout] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stdout] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stdout] ...   |
[INFO] [stdout] 808 | |     (Mat4, Builtin::Mat4, glam::Mat4),
[INFO] [stdout]     | |      ---- field in this variant
[INFO] [stdout] ...   |
[INFO] [stdout] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stdout] 813 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stdout]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawDebugStr` is never constructed
[INFO] [stdout]     --> src/nuke.rs:1432:8
[INFO] [stdout]      |
[INFO] [stdout] 1432 | struct RawDebugStr<'a>(&'a str);
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DebugHexBytes` is never constructed
[INFO] [stdout]     --> src/nuke.rs:1440:8
[INFO] [stdout]      |
[INFO] [stdout] 1440 | struct DebugHexBytes<'a>(&'a [u8]);
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModuleMeta` is never constructed
[INFO] [stdout]   --> src/module.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct ModuleMeta {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `style_asm_var` is never used
[INFO] [stdout]   --> src/stylize.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout]  7 |         pub trait Stylize: OwoColorize {
[INFO] [stdout]    |                   ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 32 |     style_asm_var { style().cyan().bold() }
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `def_styles` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/nkgc.rs:357:13
[INFO] [stdout]     |
[INFO] [stdout] 357 |             (*fastcast::<Vec<PV>>(self.vec)).get(idx).copied()
[INFO] [stdout]     |             ^^-----------------------------^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this raw pointer has type `*const Vec<nkgc::PV>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[nkgc::PV]`
[INFO] [stdout]    --> src/nkgc.rs:357:13
[INFO] [stdout]     |
[INFO] [stdout] 357 |             (*fastcast::<Vec<PV>>(self.vec)).get(idx).copied()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: method calls to `get` require a reference
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:572:4
[INFO] [stdout]     = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 357 |             (&(*fastcast::<Vec<PV>>(self.vec))).get(idx).copied()
[INFO] [stdout]     |             ++                                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/nkgc.rs:383:16
[INFO] [stdout]     |
[INFO] [stdout] 383 |     pub fn str(&self) -> Cow<str> {
[INFO] [stdout]     |                ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 383 |     pub fn str(&self) -> Cow<'_, str> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/nkgc.rs:385:31
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Ok(Cow::Borrowed(&(*s)[..]))
[INFO] [stdout]     |                               ^^-^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this raw pointer has type `*const String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stdout]    --> src/nkgc.rs:385:31
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Ok(Cow::Borrowed(&(*s)[..]))
[INFO] [stdout]     |                               ^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Ok(Cow::Borrowed(&(&(*s))[..]))
[INFO] [stdout]     |                               ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/chasm.rs:264:51
[INFO] [stdout]     |
[INFO] [stdout] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/r8vm.rs:27:1
[INFO] [stdout]     |
[INFO] [stdout]  27 | / chasm_def! {
[INFO] [stdout]  28 | |     r8c:
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |     MUL()
[INFO] [stdout] 113 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout] 264 +                         $name::Op::$en($(unsafe { u32::from_ne_bytes($arg) }),*)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/chasm.rs:264:51
[INFO] [stdout]     |
[INFO] [stdout] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/r8vm.rs:27:1
[INFO] [stdout]     |
[INFO] [stdout]  27 | / chasm_def! {
[INFO] [stdout]  28 | |     r8c:
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |     MUL()
[INFO] [stdout] 113 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout] 264 +                         $name::Op::$en($(unsafe { u16::from_ne_bytes($arg) }),*)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/chasm.rs:264:51
[INFO] [stdout]     |
[INFO] [stdout] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/r8vm.rs:27:1
[INFO] [stdout]     |
[INFO] [stdout]  27 | / chasm_def! {
[INFO] [stdout]  28 | |     r8c:
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |     MUL()
[INFO] [stdout] 113 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout] 264 +                         $name::Op::$en($(unsafe { i32::from_ne_bytes($arg) }),*)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/chasm.rs:264:51
[INFO] [stdout]     |
[INFO] [stdout] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/r8vm.rs:27:1
[INFO] [stdout]     |
[INFO] [stdout]  27 | / chasm_def! {
[INFO] [stdout]  28 | |     r8c:
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |     MUL()
[INFO] [stdout] 113 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stdout] 264 +                         $name::Op::$en($(unsafe { u8::from_ne_bytes($arg) }),*)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/r8vm.rs:1197:58
[INFO] [stdout]      |
[INFO] [stdout] 1197 |             path.push_str(with_ref!(p, String(s) => {Ok(&(*s)[..])})
[INFO] [stdout]      |                                                          ^^-^^^^^
[INFO] [stdout]      |                                                            |
[INFO] [stdout]      |                                                            this raw pointer has type `*const String`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stdout]     --> src/r8vm.rs:1197:58
[INFO] [stdout]      |
[INFO] [stdout] 1197 |             path.push_str(with_ref!(p, String(s) => {Ok(&(*s)[..])})
[INFO] [stdout]      |                                                          ^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1197 |             path.push_str(with_ref!(p, String(s) => {Ok(&(&(*s))[..])})
[INFO] [stdout]      |                                                          ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/r8vm.rs:1967:25
[INFO] [stdout]      |
[INFO] [stdout] 1967 |                         (*v).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stdout]      |                         ^^-^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this raw pointer has type `*const Vec<nkgc::PV>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[nkgc::PV]`
[INFO] [stdout]     --> src/r8vm.rs:1967:25
[INFO] [stdout]      |
[INFO] [stdout] 1967 |                         (*v).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stdout]      |                         ^^^^
[INFO] [stdout] note: method calls to `get` require a reference
[INFO] [stdout]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:572:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1967 |                         (&(*v)).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stdout]      |                         ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/r8vm.rs:1986:30
[INFO] [stdout]      |
[INFO] [stdout] 1986 | ...                   *(*v).get_unchecked_mut(idx) = args[0];
[INFO] [stdout]      |                        ^^-^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*mut Vec<nkgc::PV>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut [nkgc::PV]`
[INFO] [stdout]     --> src/r8vm.rs:1986:30
[INFO] [stdout]      |
[INFO] [stdout] 1986 | ...                   *(*v).get_unchecked_mut(idx) = args[0];
[INFO] [stdout]      |                        ^^^^
[INFO] [stdout] note: method calls to `get_unchecked_mut` require a reference
[INFO] [stdout]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:684:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1986 |                             *(&mut (*v)).get_unchecked_mut(idx) = args[0];
[INFO] [stdout]      |                              +++++     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/r8vm.rs:1996:59
[INFO] [stdout]      |
[INFO] [stdout] 1996 | ...                   String(s) => { Ok((*s).len()) },
[INFO] [stdout]      |                                         ^^-^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this raw pointer has type `*const String`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stdout]     --> src/r8vm.rs:1996:59
[INFO] [stdout]      |
[INFO] [stdout] 1996 | ...                   String(s) => { Ok((*s).len()) },
[INFO] [stdout]      |                                         ^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/string.rs:1860:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1996 |                                         String(s) => { Ok((&(*s)).len()) },
[INFO] [stdout]      |                                                           ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/r8vm.rs:339:35
[INFO] [stdout]     |
[INFO] [stdout] 339 |                     Ok(Cow::from(&(*s)[..]))
[INFO] [stdout]     |                                   ^^-^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this raw pointer has type `*const String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stdout]    --> src/r8vm.rs:339:35
[INFO] [stdout]     |
[INFO] [stdout] 339 |                     Ok(Cow::from(&(*s)[..]))
[INFO] [stdout]     |                                   ^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 339 |                     Ok(Cow::from(&(&(*s))[..]))
[INFO] [stdout]     |                                   ++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:110:19
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub fn binary(&self) -> Option<(M2, (&Source, &Source))> {
[INFO] [stdout]     |                   ^^^^^             ^^   ^^^^^^^  ^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                   |                 |    |
[INFO] [stdout]     |                   |                 |    the same lifetime is elided here
[INFO] [stdout]     |                   |                 the same lifetime is hidden here
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub fn binary(&self) -> Option<(M2<'_>, (&Source, &Source))> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tok.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn inner_str(&self) -> Option<Token> {
[INFO] [stdout]    |                      ^^^^^            ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn inner_str(&self) -> Option<Token<'_>> {
[INFO] [stdout]    |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 28.72s
[INFO] running `Command { std: "docker" "inspect" "8848b32ba5b8c07d3b3f0f5aa2bcfd38376d766c2cbdb7616844aa745dd80dcb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8848b32ba5b8c07d3b3f0f5aa2bcfd38376d766c2cbdb7616844aa745dd80dcb", kill_on_drop: false }`
[INFO] [stdout] 8848b32ba5b8c07d3b3f0f5aa2bcfd38376d766c2cbdb7616844aa745dd80dcb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 1ad9a700ee3f54989d93d7f101aa962626e7405e3f1e2ad52e497f99f2ca5b6b
[INFO] running `Command { std: "docker" "start" "-a" "1ad9a700ee3f54989d93d7f101aa962626e7405e3f1e2ad52e497f99f2ca5b6b", kill_on_drop: false }`
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/nuke.rs:1327:13
[INFO] [stderr]      |
[INFO] [stderr] 1327 |         let mut cur = align_mut(self.free as *mut NkAtom,
[INFO] [stderr]      |             ----^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `SymTypeOf` is never used
[INFO] [stderr]   --> src/nkgc.rs:64:11
[INFO] [stderr]    |
[INFO] [stderr] 64 | pub trait SymTypeOf {
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Stream` is never constructed
[INFO] [stderr]     --> src/nkgc.rs:1091:12
[INFO] [stderr]      |
[INFO] [stderr] 1091 | pub struct Stream {
[INFO] [stderr]      |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ILambda` is never constructed
[INFO] [stderr]     --> src/nkgc.rs:1108:12
[INFO] [stderr]      |
[INFO] [stderr] 1108 | pub struct ILambda {
[INFO] [stderr]      |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `SizeOf` is never used
[INFO] [stderr]     --> src/nkgc.rs:1115:11
[INFO] [stderr]      |
[INFO] [stderr] 1115 | pub trait SizeOf {
[INFO] [stderr]      |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `TailCall` is never constructed
[INFO] [stderr]   --> src/ast.rs:58:5
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub enum M {
[INFO] [stderr]    |          - variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 58 |     TailCall(Progn),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `M` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:97:9
[INFO] [stderr]    |
[INFO] [stderr] 97 |     Div(&'a M, &'a M),
[INFO] [stderr]    |     --- ^^^^^  ^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `M2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 97 -     Div(&'a M, &'a M),
[INFO] [stderr] 97 +     Div((), ()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:98:9
[INFO] [stderr]    |
[INFO] [stderr] 98 |     Mul(&'a M, &'a M),
[INFO] [stderr]    |     --- ^^^^^  ^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `M2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 98 -     Mul(&'a M, &'a M),
[INFO] [stderr] 98 +     Mul((), ()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PrinterVisitor` is never constructed
[INFO] [stderr]    --> src/ast.rs:861:12
[INFO] [stderr]     |
[INFO] [stderr] 861 | pub struct PrinterVisitor;
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FindLoopBreak` is never constructed
[INFO] [stderr]    --> src/opt.rs:152:8
[INFO] [stderr]     |
[INFO] [stderr] 152 | struct FindLoopBreak<F: FnMut(&mut AST2) -> crate::Result<()>>(F);
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TCOptomat` is never constructed
[INFO] [stderr]    --> src/opt.rs:168:12
[INFO] [stderr]     |
[INFO] [stderr] 168 | pub struct TCOptomat {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Hexable` is never used
[INFO] [stderr]    --> src/builtins.rs:138:11
[INFO] [stderr]     |
[INFO] [stderr] 138 | pub trait Hexable {
[INFO] [stderr]     |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Hex` is never constructed
[INFO] [stderr]    --> src/builtins.rs:142:8
[INFO] [stderr]     |
[INFO] [stderr] 142 | struct Hex<T>(pub T) where T: LowerHex;
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/nuke.rs:97:31
[INFO] [stderr]     |
[INFO] [stderr]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]     |                                 ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 797 | / fissile_types! {
[INFO] [stderr] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stderr]     | |      ---- field in this variant
[INFO] [stderr] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stderr] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stderr] ...   |
[INFO] [stderr] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stderr] 813 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/nuke.rs:97:31
[INFO] [stderr]     |
[INFO] [stderr]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]     |                                 ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 797 | / fissile_types! {
[INFO] [stderr] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stderr] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stderr] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stderr]     | |      ---- field in this variant
[INFO] [stderr] ...   |
[INFO] [stderr] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stderr] 813 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/nuke.rs:97:31
[INFO] [stderr]     |
[INFO] [stderr]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]     |                                 ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 797 | / fissile_types! {
[INFO] [stderr] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stderr] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stderr] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stderr] ...   |
[INFO] [stderr] 803 | |     (PV, Builtin::Ref, crate::nkgc::PV),
[INFO] [stderr]     | |      -- field in this variant
[INFO] [stderr] ...   |
[INFO] [stderr] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stderr] 813 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/nuke.rs:97:31
[INFO] [stderr]     |
[INFO] [stderr]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]     |                                 ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 797 | / fissile_types! {
[INFO] [stderr] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stderr] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stderr] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stderr] ...   |
[INFO] [stderr] 805 | |     (Vec4, Builtin::Vec4, glam::Vec4),
[INFO] [stderr]     | |      ---- field in this variant
[INFO] [stderr] ...   |
[INFO] [stderr] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stderr] 813 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/nuke.rs:97:31
[INFO] [stderr]     |
[INFO] [stderr]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]     |                                 ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 797 | / fissile_types! {
[INFO] [stderr] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stderr] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stderr] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stderr] ...   |
[INFO] [stderr] 806 | |     (Mat2, Builtin::Mat2, glam::Mat2),
[INFO] [stderr]     | |      ---- field in this variant
[INFO] [stderr] ...   |
[INFO] [stderr] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stderr] 813 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/nuke.rs:97:31
[INFO] [stderr]     |
[INFO] [stderr]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]     |                                 ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 797 | / fissile_types! {
[INFO] [stderr] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stderr] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stderr] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stderr] ...   |
[INFO] [stderr] 807 | |     (Mat3, Builtin::Mat3, glam::Mat3),
[INFO] [stderr]     | |      ---- field in this variant
[INFO] [stderr] ...   |
[INFO] [stderr] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stderr] 813 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/nuke.rs:97:31
[INFO] [stderr]     |
[INFO] [stderr]  97 |           pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]     |                                 ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 797 | / fissile_types! {
[INFO] [stderr] 798 | |     (Void, Builtin::Void, Void),
[INFO] [stderr] 799 | |     (Cons, Builtin::Cons, crate::nkgc::Cons),
[INFO] [stderr] 800 | |     (Intr, Builtin::Intr, crate::nuke::Intr),
[INFO] [stderr] ...   |
[INFO] [stderr] 808 | |     (Mat4, Builtin::Mat4, glam::Mat4),
[INFO] [stderr]     | |      ---- field in this variant
[INFO] [stderr] ...   |
[INFO] [stderr] 812 | |     (Subroutine, Builtin::Subr, Box<dyn crate::subrs::Subr>)
[INFO] [stderr] 813 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `NkMut` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]     = note: this warning originates in the macro `fissile_types` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr]  97 -         pub enum NkMut { $($t(*mut $path)),+ }
[INFO] [stderr]  97 +         pub enum NkMut { $($t(())),+ }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RawDebugStr` is never constructed
[INFO] [stderr]     --> src/nuke.rs:1432:8
[INFO] [stderr]      |
[INFO] [stderr] 1432 | struct RawDebugStr<'a>(&'a str);
[INFO] [stderr]      |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DebugHexBytes` is never constructed
[INFO] [stderr]     --> src/nuke.rs:1440:8
[INFO] [stderr]      |
[INFO] [stderr] 1440 | struct DebugHexBytes<'a>(&'a [u8]);
[INFO] [stderr]      |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ModuleMeta` is never constructed
[INFO] [stderr]   --> src/module.rs:28:12
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct ModuleMeta {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `style_asm_var` is never used
[INFO] [stderr]   --> src/stylize.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr]  7 |         pub trait Stylize: OwoColorize {
[INFO] [stderr]    |                   ------- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 32 |     style_asm_var { style().cyan().bold() }
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `def_styles` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]    --> src/nkgc.rs:357:13
[INFO] [stderr]     |
[INFO] [stderr] 357 |             (*fastcast::<Vec<PV>>(self.vec)).get(idx).copied()
[INFO] [stderr]     |             ^^-----------------------------^^^^^^^^^^
[INFO] [stderr]     |               |
[INFO] [stderr]     |               this raw pointer has type `*const Vec<PV>`
[INFO] [stderr]     |
[INFO] [stderr]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[PV]`
[INFO] [stderr]    --> src/nkgc.rs:357:13
[INFO] [stderr]     |
[INFO] [stderr] 357 |             (*fastcast::<Vec<PV>>(self.vec)).get(idx).copied()
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] note: method calls to `get` require a reference
[INFO] [stderr]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:572:4
[INFO] [stderr]     = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]     |
[INFO] [stderr] 357 |             (&(*fastcast::<Vec<PV>>(self.vec))).get(idx).copied()
[INFO] [stderr]     |             ++                                +
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/nkgc.rs:383:16
[INFO] [stderr]     |
[INFO] [stderr] 383 |     pub fn str(&self) -> Cow<str> {
[INFO] [stderr]     |                ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                |
[INFO] [stderr]     |                the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 383 |     pub fn str(&self) -> Cow<'_, str> {
[INFO] [stderr]     |                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]    --> src/nkgc.rs:385:31
[INFO] [stderr]     |
[INFO] [stderr] 385 |             Ok(Cow::Borrowed(&(*s)[..]))
[INFO] [stderr]     |                               ^^-^^^^^
[INFO] [stderr]     |                                 |
[INFO] [stderr]     |                                 this raw pointer has type `*const String`
[INFO] [stderr]     |
[INFO] [stderr]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stderr]    --> src/nkgc.rs:385:31
[INFO] [stderr]     |
[INFO] [stderr] 385 |             Ok(Cow::Borrowed(&(*s)[..]))
[INFO] [stderr]     |                               ^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]     |
[INFO] [stderr] 385 |             Ok(Cow::Borrowed(&(&(*s))[..]))
[INFO] [stderr]     |                               ++    +
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/chasm.rs:264:51
[INFO] [stderr]     |
[INFO] [stderr] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stderr]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/r8vm.rs:27:1
[INFO] [stderr]     |
[INFO] [stderr]  27 | / chasm_def! {
[INFO] [stderr]  28 | |     r8c:
[INFO] [stderr] ...   |
[INFO] [stderr] 112 | |     MUL()
[INFO] [stderr] 113 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stderr]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stderr] 264 +                         $name::Op::$en($(unsafe { u32::from_ne_bytes($arg) }),*)
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/chasm.rs:264:51
[INFO] [stderr]     |
[INFO] [stderr] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stderr]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/r8vm.rs:27:1
[INFO] [stderr]     |
[INFO] [stderr]  27 | / chasm_def! {
[INFO] [stderr]  28 | |     r8c:
[INFO] [stderr] ...   |
[INFO] [stderr] 112 | |     MUL()
[INFO] [stderr] 113 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stderr]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stderr] 264 +                         $name::Op::$en($(unsafe { u16::from_ne_bytes($arg) }),*)
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/chasm.rs:264:51
[INFO] [stderr]     |
[INFO] [stderr] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stderr]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/r8vm.rs:27:1
[INFO] [stderr]     |
[INFO] [stderr]  27 | / chasm_def! {
[INFO] [stderr]  28 | |     r8c:
[INFO] [stderr] ...   |
[INFO] [stderr] 112 | |     MUL()
[INFO] [stderr] 113 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stderr]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stderr] 264 +                         $name::Op::$en($(unsafe { i32::from_ne_bytes($arg) }),*)
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/chasm.rs:264:51
[INFO] [stderr]     |
[INFO] [stderr] 264 |                           $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stderr]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/r8vm.rs:27:1
[INFO] [stderr]     |
[INFO] [stderr]  27 | / chasm_def! {
[INFO] [stderr]  28 | |     r8c:
[INFO] [stderr] ...   |
[INFO] [stderr] 112 | |     MUL()
[INFO] [stderr] 113 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stderr]     = note: this warning originates in the macro `chasm_def` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 264 -                         $name::Op::$en($(unsafe { std::mem::transmute($arg) }),*)
[INFO] [stderr] 264 +                         $name::Op::$en($(unsafe { u8::from_ne_bytes($arg) }),*)
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/r8vm.rs:1197:58
[INFO] [stderr]      |
[INFO] [stderr] 1197 |             path.push_str(with_ref!(p, String(s) => {Ok(&(*s)[..])})
[INFO] [stderr]      |                                                          ^^-^^^^^
[INFO] [stderr]      |                                                            |
[INFO] [stderr]      |                                                            this raw pointer has type `*const String`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stderr]     --> src/r8vm.rs:1197:58
[INFO] [stderr]      |
[INFO] [stderr] 1197 |             path.push_str(with_ref!(p, String(s) => {Ok(&(*s)[..])})
[INFO] [stderr]      |                                                          ^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1197 |             path.push_str(with_ref!(p, String(s) => {Ok(&(&(*s))[..])})
[INFO] [stderr]      |                                                          ++    +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/r8vm.rs:1967:25
[INFO] [stderr]      |
[INFO] [stderr] 1967 |                         (*v).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stderr]      |                         ^^-^^^^^^^^^^
[INFO] [stderr]      |                           |
[INFO] [stderr]      |                           this raw pointer has type `*const Vec<PV>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[PV]`
[INFO] [stderr]     --> src/r8vm.rs:1967:25
[INFO] [stderr]      |
[INFO] [stderr] 1967 |                         (*v).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stderr]      |                         ^^^^
[INFO] [stderr] note: method calls to `get` require a reference
[INFO] [stderr]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:572:4
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1967 |                         (&(*v)).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stderr]      |                         ++    +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/r8vm.rs:1986:30
[INFO] [stderr]      |
[INFO] [stderr] 1986 | ...                   *(*v).get_unchecked_mut(idx) = args[0];
[INFO] [stderr]      |                        ^^-^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |                          |
[INFO] [stderr]      |                          this raw pointer has type `*mut Vec<PV>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&mut [PV]`
[INFO] [stderr]     --> src/r8vm.rs:1986:30
[INFO] [stderr]      |
[INFO] [stderr] 1986 | ...                   *(*v).get_unchecked_mut(idx) = args[0];
[INFO] [stderr]      |                        ^^^^
[INFO] [stderr] note: method calls to `get_unchecked_mut` require a reference
[INFO] [stderr]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:684:4
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1986 |                             *(&mut (*v)).get_unchecked_mut(idx) = args[0];
[INFO] [stderr]      |                              +++++     +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/r8vm.rs:1996:59
[INFO] [stderr]      |
[INFO] [stderr] 1996 | ...                   String(s) => { Ok((*s).len()) },
[INFO] [stderr]      |                                         ^^-^^^^^^^
[INFO] [stderr]      |                                           |
[INFO] [stderr]      |                                           this raw pointer has type `*const String`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stderr]     --> src/r8vm.rs:1996:59
[INFO] [stderr]      |
[INFO] [stderr] 1996 | ...                   String(s) => { Ok((*s).len()) },
[INFO] [stderr]      |                                         ^^^^
[INFO] [stderr] note: method calls to `len` require a reference
[INFO] [stderr]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/string.rs:1860:4
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1996 |                                         String(s) => { Ok((&(*s)).len()) },
[INFO] [stderr]      |                                                           ++    +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]    --> src/r8vm.rs:339:35
[INFO] [stderr]     |
[INFO] [stderr] 339 |                     Ok(Cow::from(&(*s)[..]))
[INFO] [stderr]     |                                   ^^-^^^^^
[INFO] [stderr]     |                                     |
[INFO] [stderr]     |                                     this raw pointer has type `*const String`
[INFO] [stderr]     |
[INFO] [stderr]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&String`
[INFO] [stderr]    --> src/r8vm.rs:339:35
[INFO] [stderr]     |
[INFO] [stderr] 339 |                     Ok(Cow::from(&(*s)[..]))
[INFO] [stderr]     |                                   ^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]     |
[INFO] [stderr] 339 |                     Ok(Cow::from(&(&(*s))[..]))
[INFO] [stderr]     |                                   ++    +
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/ast.rs:110:19
[INFO] [stderr]     |
[INFO] [stderr] 110 |     pub fn binary(&self) -> Option<(M2, (&Source, &Source))> {
[INFO] [stderr]     |                   ^^^^^             ^^   ^^^^^^^  ^^^^^^^ the same lifetime is elided here
[INFO] [stderr]     |                   |                 |    |
[INFO] [stderr]     |                   |                 |    the same lifetime is elided here
[INFO] [stderr]     |                   |                 the same lifetime is hidden here
[INFO] [stderr]     |                   the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 110 |     pub fn binary(&self) -> Option<(M2<'_>, (&Source, &Source))> {
[INFO] [stderr]     |                                       ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/tok.rs:29:22
[INFO] [stderr]    |
[INFO] [stderr] 29 |     pub fn inner_str(&self) -> Option<Token> {
[INFO] [stderr]    |                      ^^^^^            ^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                      |
[INFO] [stderr]    |                      the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 29 |     pub fn inner_str(&self) -> Option<Token<'_>> {
[INFO] [stderr]    |                                            ++++
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]    --> src/nkgc.rs:357:13
[INFO] [stderr]     |
[INFO] [stderr] 357 |             (*fastcast::<Vec<PV>>(self.vec)).get(idx).copied()
[INFO] [stderr]     |             ^^-----------------------------^^^^^^^^^^
[INFO] [stderr]     |               |
[INFO] [stderr]     |               this raw pointer has type `*const Vec<nkgc::PV>`
[INFO] [stderr]     |
[INFO] [stderr]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[nkgc::PV]`
[INFO] [stderr]    --> src/nkgc.rs:357:13
[INFO] [stderr]     |
[INFO] [stderr] 357 |             (*fastcast::<Vec<PV>>(self.vec)).get(idx).copied()
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] note: method calls to `get` require a reference
[INFO] [stderr]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:572:4
[INFO] [stderr]     = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]     |
[INFO] [stderr] 357 |             (&(*fastcast::<Vec<PV>>(self.vec))).get(idx).copied()
[INFO] [stderr]     |             ++                                +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/r8vm.rs:1967:25
[INFO] [stderr]      |
[INFO] [stderr] 1967 |                         (*v).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stderr]      |                         ^^-^^^^^^^^^^
[INFO] [stderr]      |                           |
[INFO] [stderr]      |                           this raw pointer has type `*const Vec<nkgc::PV>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[nkgc::PV]`
[INFO] [stderr]     --> src/r8vm.rs:1967:25
[INFO] [stderr]      |
[INFO] [stderr] 1967 |                         (*v).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stderr]      |                         ^^^^
[INFO] [stderr] note: method calls to `get` require a reference
[INFO] [stderr]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:572:4
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1967 |                         (&(*v)).get(idx).ok_or(error!(IndexError, idx))
[INFO] [stderr]      |                         ++    +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/r8vm.rs:1986:30
[INFO] [stderr]      |
[INFO] [stderr] 1986 | ...                   *(*v).get_unchecked_mut(idx) = args[0];
[INFO] [stderr]      |                        ^^-^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |                          |
[INFO] [stderr]      |                          this raw pointer has type `*mut Vec<nkgc::PV>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&mut [nkgc::PV]`
[INFO] [stderr]     --> src/r8vm.rs:1986:30
[INFO] [stderr]      |
[INFO] [stderr] 1986 | ...                   *(*v).get_unchecked_mut(idx) = args[0];
[INFO] [stderr]      |                        ^^^^
[INFO] [stderr] note: method calls to `get_unchecked_mut` require a reference
[INFO] [stderr]     --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/mod.rs:684:4
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1986 |                             *(&mut (*v)).get_unchecked_mut(idx) = args[0];
[INFO] [stderr]      |                              +++++     +
[INFO] [stderr] 
[INFO] [stderr] warning: `spaik` (lib) generated 38 warnings (run `cargo fix --lib -p spaik` to apply 8 suggestions)
[INFO] [stderr] warning: `spaik` (lib test) generated 38 warnings (35 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/spaik-abb58b83ae00afa9)
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test chasm::tests::read_read_op ... ok
[INFO] [stdout] test deserialize::tests::test_enum_type ... ok
[INFO] [stdout] test nuke::tests::simplify_types_test ... ok
[INFO] [stdout] test chasm::tests::primitive_type_conversions ... ok
[INFO] [stdout] test nkgc::tests::virtual_destructors ... ok
[INFO] [stdout] test swym::tests::go_for_a_swym ... ok
[INFO] [stdout] test swym::tests::hopefully_dont_take_a_hike ... ok
[INFO] [stdout] test swym::tests::go_for_a_swym_and_clone_myself_into_a_hashset ... ok
[INFO] [stdout] test swym::tests::go_for_a_swym_and_jump_right_into_a_hashset ... ok
[INFO] [stdout] test tests::spaik_fork_send_from_rust_to_lisp ... ok
[INFO] [stdout] test tests::enum_call_test ... ok
[INFO] [stdout] test nkgc::tests::spv ... ok
[INFO] [stdout] test tests::test_illegal_fork - should panic ... ok
[INFO] [stdout] test chasm::tests::read_write_asm ... ok
[INFO] [stdout] test tests::api_eval_add_numbers ... ok
[INFO] [stdout] test tests::register_fn_mutate_struct ... ok
[INFO] [stdout] test deserialize::tests::deser_basic_types ... ok
[INFO] [stdout] test tests::spaik_fork_send_from_lisp_to_rust ... ok
[INFO] [stdout] test tests::register_fn ... ok
[INFO] [stdout] test tests::test_yield ... ok
[INFO] [stdout] test tests::api_func_call ... ok
[INFO] [stdout] test tests::test_yield_type_err ... ok
[INFO] [stdout] test tests::test_load_path_illegal_value - should panic ... ok
[INFO] [stdout] test stack_gymnastics::tests::eval_macroexpand_eval ... ok
[INFO] [stdout] test tests::test_load_path ... ok
[INFO] [stdout] test [37;1moptional-args[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mdec[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mlambda-capture-call[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mevaaal[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mand[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mstatic-variables[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mmacros[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mrest-args[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1melem?[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mapply[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mvector[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mall?[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mlambda-empty-call[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mquasi-quoting[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mcontinuations[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mfilter[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mself[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1meval[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mmath[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mor[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mdead-code[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mgensym[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mlet-bindings[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mloops[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mrest-and-optional-args[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1many?[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1minc[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mhtml[0m ... [[32;1m✓[0m]
[INFO] [stdout] test [37;1mreverse[0m ... [[32;1m✓[0m]
[INFO] [stdout] test lisp_test::tests::lisp_tests ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.27s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/run-lisp-tests.rs (/opt/rustwide/target/debug/deps/lisp_test-6bd91490352f337d)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/main-9b7e1bdebebb3bf9)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/minify.rs (/opt/rustwide/target/debug/deps/minify-9e7d7f3e62cdb6eb)
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests src/bin/readline-repl.rs (/opt/rustwide/target/debug/deps/repl-3d175e47fdebe159)
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/scratch.rs (/opt/rustwide/target/debug/deps/scratch-613292cec981da2e)
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]    Doc-tests spaik
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test src/utils.rs - utils::invalid (line 16) ... ignored
[INFO] [stdout] test src/lib.rs - Spaik::objref (line 227) ... ok
[INFO] [stdout] test src/subrs.rs - subrs::Ignore (line 112) ... ok
[INFO] [stdout] test src/lib.rs - Spaik::objref_mut (line 267) ... ok
[INFO] [stdout] test src/lib.rs - (line 18) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.87s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "1ad9a700ee3f54989d93d7f101aa962626e7405e3f1e2ad52e497f99f2ca5b6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ad9a700ee3f54989d93d7f101aa962626e7405e3f1e2ad52e497f99f2ca5b6b", kill_on_drop: false }`
[INFO] [stdout] 1ad9a700ee3f54989d93d7f101aa962626e7405e3f1e2ad52e497f99f2ca5b6b
