[INFO] cloning repository https://github.com/Bangboom030518/M-Compiler
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Bangboom030518/M-Compiler" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBangboom030518%2FM-Compiler", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBangboom030518%2FM-Compiler'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 72dae4122b8803d2d5175b3f7e36e93923429740
[INFO] checking Bangboom030518/M-Compiler against master#a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb for pr-151109
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBangboom030518%2FM-Compiler" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Bangboom030518/M-Compiler
[INFO] finished tweaking git repo https://github.com/Bangboom030518/M-Compiler
[INFO] tweaked toml for git repo https://github.com/Bangboom030518/M-Compiler written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Bangboom030518/M-Compiler on toolchain a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Bangboom030518/M-Compiler 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" "+a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: /workspace/builds/worker-0-tc1/source/Cargo.toml: unused manifest key: workspace.default-run
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded thiserror-impl v1.0.51
[INFO] [stderr]   Downloaded cranelift-control v0.111.0
[INFO] [stderr]   Downloaded cranelift-module v0.111.0
[INFO] [stderr]   Downloaded thiserror v1.0.51
[INFO] [stderr]   Downloaded cranelift v0.111.0
[INFO] [stderr]   Downloaded wasmtime-jit-icache-coherence v24.0.0
[INFO] [stderr]   Downloaded cranelift-bitset v0.111.0
[INFO] [stderr]   Downloaded miette-derive v7.6.0
[INFO] [stderr]   Downloaded cranelift-native v0.111.0
[INFO] [stderr]   Downloaded cranelift-jit v0.111.0
[INFO] [stderr]   Downloaded cranelift-frontend v0.111.0
[INFO] [stderr]   Downloaded cranelift-isle v0.111.0
[INFO] [stderr]   Downloaded regalloc2 v0.9.3
[INFO] [stderr]   Downloaded ariadne v0.6.0
[INFO] [stderr]   Downloaded cranelift-bforest v0.111.0
[INFO] [stderr]   Downloaded cranelift-codegen-meta v0.111.0
[INFO] [stderr]   Downloaded cranelift-entity v0.111.0
[INFO] [stderr]   Downloaded miette v7.6.0
[INFO] [stderr]   Downloaded cranelift-codegen-shared v0.111.0
[INFO] [stderr]   Downloaded cranelift-codegen v0.111.0
[INFO] [stderr]   Downloaded cranelift-reader v0.111.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6a22b756057fbed5a68b42ad341e35e238ba43fde8881d16ca68829d52ea3f2b
[INFO] running `Command { std: "docker" "start" "-a" "6a22b756057fbed5a68b42ad341e35e238ba43fde8881d16ca68829d52ea3f2b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6a22b756057fbed5a68b42ad341e35e238ba43fde8881d16ca68829d52ea3f2b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a22b756057fbed5a68b42ad341e35e238ba43fde8881d16ca68829d52ea3f2b", kill_on_drop: false }`
[INFO] [stdout] 6a22b756057fbed5a68b42ad341e35e238ba43fde8881d16ca68829d52ea3f2b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3c5c9ca1a085fc9d6bc295ebf0d68e35be08e390d18aa713372eb68f2e2ecc1e
[INFO] running `Command { std: "docker" "start" "-a" "3c5c9ca1a085fc9d6bc295ebf0d68e35be08e390d18aa713372eb68f2e2ecc1e", kill_on_drop: false }`
[INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: unused manifest key: workspace.default-run
[INFO] [stderr]    Compiling libc v0.2.148
[INFO] [stderr]     Checking once_cell v1.18.0
[INFO] [stderr]    Compiling cranelift-isle v0.111.0
[INFO] [stderr]    Compiling cranelift-codegen-shared v0.111.0
[INFO] [stderr]     Checking cranelift-bitset v0.111.0
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]     Checking hashbrown v0.14.1
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking arbitrary v1.3.2
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling anyhow v1.0.72
[INFO] [stderr]    Compiling cranelift-codegen-meta v0.111.0
[INFO] [stderr]     Checking cranelift-entity v0.111.0
[INFO] [stderr]     Checking yansi v1.0.1
[INFO] [stderr]    Compiling thiserror v1.0.51
[INFO] [stderr]     Checking unicode-ident v1.0.12
[INFO] [stderr]     Checking heck v0.5.0
[INFO] [stderr]     Checking cranelift-bforest v0.111.0
[INFO] [stderr]     Checking ariadne v0.6.0
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]     Checking cranelift-control v0.111.0
[INFO] [stderr]     Checking indexmap v2.0.2
[INFO] [stderr]    Compiling getrandom v0.2.10
[INFO] [stderr]     Checking region v2.2.0
[INFO] [stderr]     Checking wasmtime-jit-icache-coherence v24.0.0
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking gimli v0.29.0
[INFO] [stderr]     Checking regalloc2 v0.9.3
[INFO] [stderr]    Compiling cranelift-codegen v0.111.0
[INFO] [stderr]     Checking bitfields v0.1.0 (/opt/rustwide/workdir/bitfields)
[INFO] [stderr]    Compiling thiserror-impl v1.0.51
[INFO] [stderr]    Compiling miette-derive v7.6.0
[INFO] [stderr]     Checking tokenizer v0.1.0 (/opt/rustwide/workdir/tokenizer)
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> tokenizer/src/lib.rs:255:14
[INFO] [stdout]     |
[INFO] [stdout] 255 |             .intersperse_with(|| ", ".to_string())
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]     = help: call with fully qualified syntax `itertools::Itertools::intersperse_with(...)` to keep using the current method
[INFO] [stdout]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse_with`
[INFO] [stdout]     |
[INFO] [stdout]   2 + #![feature(iter_intersperse)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> tokenizer/src/lib.rs:255:14
[INFO] [stdout]     |
[INFO] [stdout] 255 |             .intersperse_with(|| ", ".to_string())
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]     = help: call with fully qualified syntax `itertools::Itertools::intersperse_with(...)` to keep using the current method
[INFO] [stdout]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse_with`
[INFO] [stdout]     |
[INFO] [stdout]   2 + #![feature(iter_intersperse)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking miette v7.6.0
[INFO] [stderr]     Checking cranelift-frontend v0.111.0
[INFO] [stderr]     Checking cranelift-module v0.111.0
[INFO] [stderr]     Checking cranelift-native v0.111.0
[INFO] [stderr]     Checking cranelift-reader v0.111.0
[INFO] [stderr]     Checking cranelift-jit v0.111.0
[INFO] [stderr]     Checking cranelift v0.111.0
[INFO] [stderr]     Checking parser v0.1.0 (/opt/rustwide/workdir/parser)
[INFO] [stdout] warning: unexpected `cfg` condition name: `ignore`
[INFO] [stdout]    --> parser/src/top_level.rs:510:7
[INFO] [stdout]     |
[INFO] [stdout] 510 | #[cfg(ignore)]
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: expected names are: `docsrs`, `feature`, and `test` and 31 more
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(ignore)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(ignore)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `ignore`
[INFO] [stdout]    --> parser/src/top_level.rs:510:7
[INFO] [stdout]     |
[INFO] [stdout] 510 | #[cfg(ignore)]
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: expected names are: `docsrs`, `feature`, and `test` and 31 more
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(ignore)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(ignore)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `top_level::Declaration::name`: put common fields on `Declaration` struct instead
[INFO] [stdout]   --> parser/src/lib.rs:63:55
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 declarations.insert(declaration.value.name().to_string(), declaration.value);
[INFO] [stdout]    |                                                       ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `top_level::Declaration::name`: put common fields on `Declaration` struct instead
[INFO] [stdout]   --> parser/src/lib.rs:63:55
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 declarations.insert(declaration.value.name().to_string(), declaration.value);
[INFO] [stdout]    |                                                       ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `position` is never read
[INFO] [stdout]   --> parser/src/parser.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     position: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `kind` is never read
[INFO] [stdout]   --> parser/src/parser.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     kind: Kind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `recoverable` is never read
[INFO] [stdout]   --> parser/src/parser.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     recoverable: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `position` is never read
[INFO] [stdout]   --> parser/src/parser.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     position: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `kind` is never read
[INFO] [stdout]   --> parser/src/parser.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     kind: Kind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `recoverable` is never read
[INFO] [stdout]   --> parser/src/parser.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     recoverable: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking compiler v0.1.0 (/opt/rustwide/workdir/compiler)
[INFO] [stdout] error[E0425]: cannot find type `Spanned` in this scope
[INFO] [stdout]   --> compiler/src/layout.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub length: Spanned<declarations::Id>,
[INFO] [stdout]    |                 ^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout]  1 + use tokenizer::Spanned;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Spanned` in this scope
[INFO] [stdout]   --> compiler/src/layout.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub length: Spanned<declarations::Id>,
[INFO] [stdout]    |                 ^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout]  1 + use tokenizer::Spanned;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hir::Typed`
[INFO] [stdout]  --> compiler/src/translate.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::hir::Typed;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hir::Typed`
[INFO] [stdout]  --> compiler/src/translate.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::hir::Typed;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokenizer::Span`
[INFO] [stdout]   --> compiler/src/translate.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tokenizer::Span;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokenizer::Span`
[INFO] [stdout]   --> compiler/src/translate.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tokenizer::Span;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:100:50
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let reference = declarations.resolve(&reference);
[INFO] [stdout]     |                                          ------- ^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:100:50
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let reference = declarations.resolve(&reference);
[INFO] [stdout]     |                                          ------- ^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ReferenceChain: std::cmp::Eq` is not satisfied
[INFO] [stdout]    --> compiler/src/declarations.rs:101:21
[INFO] [stdout]     |
[INFO] [stdout] 101 |             new_map.insert(reference, value);
[INFO] [stdout]     |                     ^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `std::cmp::Eq` is not implemented for `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:331:1
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub struct ReferenceChain {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `HashMap::<K, V, S, A>::insert`
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/map.rs:1295:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ReferenceChain: Hash` is not satisfied
[INFO] [stdout]    --> compiler/src/declarations.rs:101:21
[INFO] [stdout]     |
[INFO] [stdout] 101 |             new_map.insert(reference, value);
[INFO] [stdout]     |                     ^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Hash` is not implemented for `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:331:1
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub struct ReferenceChain {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `HashMap::<K, V, S, A>::insert`
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/map.rs:1295:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ReferenceChain: std::cmp::Eq` is not satisfied
[INFO] [stdout]    --> compiler/src/declarations.rs:101:21
[INFO] [stdout]     |
[INFO] [stdout] 101 |             new_map.insert(reference, value);
[INFO] [stdout]     |                     ^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `std::cmp::Eq` is not implemented for `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:331:1
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub struct ReferenceChain {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `HashMap::<K, V, S, A>::insert`
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/map.rs:1295:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ReferenceChain: Hash` is not satisfied
[INFO] [stdout]    --> compiler/src/declarations.rs:101:21
[INFO] [stdout]     |
[INFO] [stdout] 101 |             new_map.insert(reference, value);
[INFO] [stdout]     |                     ^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Hash` is not implemented for `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:331:1
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub struct ReferenceChain {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `HashMap::<K, V, S, A>::insert`
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/map.rs:1295:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:103:20
[INFO] [stdout]     |
[INFO] [stdout] 101 |             new_map.insert(reference, value);
[INFO] [stdout]     |             -------        --------- this argument has type `ReferenceChain`...
[INFO] [stdout]     |             |
[INFO] [stdout]     |             ... which causes `new_map` to have type `HashMap<ReferenceChain, V>`
[INFO] [stdout] 102 |         }
[INFO] [stdout] 103 |         self.map = new_map;
[INFO] [stdout]     |         --------   ^^^^^^^ expected `HashMap<Reference, V>`, found `HashMap<ReferenceChain, V>`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         expected due to the type of this binding
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `HashMap<declarations::Reference, _>`
[INFO] [stdout]                found struct `HashMap<ReferenceChain, _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:103:20
[INFO] [stdout]     |
[INFO] [stdout] 101 |             new_map.insert(reference, value);
[INFO] [stdout]     |             -------        --------- this argument has type `ReferenceChain`...
[INFO] [stdout]     |             |
[INFO] [stdout]     |             ... which causes `new_map` to have type `HashMap<ReferenceChain, V>`
[INFO] [stdout] 102 |         }
[INFO] [stdout] 103 |         self.map = new_map;
[INFO] [stdout]     |         --------   ^^^^^^^ expected `HashMap<Reference, V>`, found `HashMap<ReferenceChain, V>`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         expected due to the type of this binding
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `HashMap<declarations::Reference, _>`
[INFO] [stdout]                found struct `HashMap<ReferenceChain, _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:108:46
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let reference = declarations.resolve(reference);
[INFO] [stdout]     |                                      ------- ^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:108:46
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let reference = declarations.resolve(reference);
[INFO] [stdout]     |                                      ------- ^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:109:25
[INFO] [stdout]     |
[INFO] [stdout] 109 |         self.map.insert(reference, value);
[INFO] [stdout]     |                  ------ ^^^^^^^^^ expected `Reference`, found `ReferenceChain`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/map.rs:1295:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:109:25
[INFO] [stdout]     |
[INFO] [stdout] 109 |         self.map.insert(reference, value);
[INFO] [stdout]     |                  ------ ^^^^^^^^^ expected `Reference`, found `ReferenceChain`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/map.rs:1295:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:114:46
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let reference = declarations.resolve(reference);
[INFO] [stdout]     |                                      ------- ^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:114:46
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let reference = declarations.resolve(reference);
[INFO] [stdout]     |                                      ------- ^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:115:22
[INFO] [stdout]     |
[INFO] [stdout] 115 |         self.map.get(&reference)
[INFO] [stdout]     |                  --- ^^^^^^^^^^ expected `&Reference`, found `&ReferenceChain`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&ReferenceChain`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/map.rs:997:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:115:22
[INFO] [stdout]     |
[INFO] [stdout] 115 |         self.map.get(&reference)
[INFO] [stdout]     |                  --- ^^^^^^^^^^ expected `&Reference`, found `&ReferenceChain`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&ReferenceChain`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/map.rs:997:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/declarations.rs:217:23
[INFO] [stdout]     |
[INFO] [stdout] 216 |                   span: todo!("span for lengths"),
[INFO] [stdout]     |                         ------------------------- any code following this expression is unreachable
[INFO] [stdout] 217 |                   kind: errors::Kind::DeclarationConstraintViolation {
[INFO] [stdout]     |  _______________________^
[INFO] [stdout] 218 | |                     constraint: errors::DeclarationConstraint::Length,
[INFO] [stdout] 219 | |                     found: SpannedReference::from_id(id, todo!("span for lengths")),
[INFO] [stdout] 220 | |                 },
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/declarations.rs:217:23
[INFO] [stdout]     |
[INFO] [stdout] 216 |                   span: todo!("span for lengths"),
[INFO] [stdout]     |                         ------------------------- any code following this expression is unreachable
[INFO] [stdout] 217 |                   kind: errors::Kind::DeclarationConstraintViolation {
[INFO] [stdout]     |  _______________________^
[INFO] [stdout] 218 | |                     constraint: errors::DeclarationConstraint::Length,
[INFO] [stdout] 219 | |                     found: SpannedReference::from_id(id, todo!("span for lengths")),
[INFO] [stdout] 220 | |                 },
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]    --> compiler/src/declarations.rs:219:28
[INFO] [stdout]     |
[INFO] [stdout] 219 |                     found: SpannedReference::from_id(id, todo!("span for lengths")),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^     ------------------------- any code following this expression is unreachable
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            unreachable call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]    --> compiler/src/declarations.rs:219:28
[INFO] [stdout]     |
[INFO] [stdout] 219 |                     found: SpannedReference::from_id(id, todo!("span for lengths")),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^     ------------------------- any code following this expression is unreachable
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            unreachable call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:223:46
[INFO] [stdout]     |
[INFO] [stdout] 223 |                 let reference = self.resolve(&alias.despan());
[INFO] [stdout]     |                                      ------- ^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:223:46
[INFO] [stdout]     |
[INFO] [stdout] 223 |                 let reference = self.resolve(&alias.despan());
[INFO] [stdout]     |                                      ------- ^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:224:30
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 if reference.generics.is_empty() {
[INFO] [stdout]     |                              ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 if reference.concrete.generics.is_empty() {
[INFO] [stdout]     |                              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:224:30
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 if reference.generics.is_empty() {
[INFO] [stdout]     |                              ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 if reference.concrete.generics.is_empty() {
[INFO] [stdout]     |                              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:225:47
[INFO] [stdout]     |
[INFO] [stdout] 225 |                     self.get_length(reference.id)
[INFO] [stdout]     |                                               ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 225 |                     self.get_length(reference.concrete.id)
[INFO] [stdout]     |                                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:225:47
[INFO] [stdout]     |
[INFO] [stdout] 225 |                     self.get_length(reference.id)
[INFO] [stdout]     |                                               ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 225 |                     self.get_length(reference.concrete.id)
[INFO] [stdout]     |                                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:230:50
[INFO] [stdout]     |
[INFO] [stdout] 230 | ...                   arguments: reference.generics.len(),
[INFO] [stdout]     |                                            ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 230 |                             arguments: reference.concrete.generics.len(),
[INFO] [stdout]     |                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:230:50
[INFO] [stdout]     |
[INFO] [stdout] 230 | ...                   arguments: reference.generics.len(),
[INFO] [stdout]     |                                            ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 230 |                             arguments: reference.concrete.generics.len(),
[INFO] [stdout]     |                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/declarations.rs:229:31
[INFO] [stdout]     |
[INFO] [stdout] 229 |                           kind: errors::Kind::MismatchedGenericArguments {
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 230 | |                             arguments: reference.generics.len(),
[INFO] [stdout] 231 | |                             parameters: 0,
[INFO] [stdout] 232 | |                             declaration: todo!("find generic parameters span"),
[INFO] [stdout]     | |                                          ------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 233 | |                         },
[INFO] [stdout]     | |_________________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/declarations.rs:229:31
[INFO] [stdout]     |
[INFO] [stdout] 229 |                           kind: errors::Kind::MismatchedGenericArguments {
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 230 | |                             arguments: reference.generics.len(),
[INFO] [stdout] 231 | |                             parameters: 0,
[INFO] [stdout] 232 | |                             declaration: todo!("find generic parameters span"),
[INFO] [stdout]     | |                                          ------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 233 | |                         },
[INFO] [stdout]     | |_________________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:243:22
[INFO] [stdout]     |
[INFO] [stdout] 243 |               .resolve(&Reference {
[INFO] [stdout]     |  ______________-------_^
[INFO] [stdout]     | |              |
[INFO] [stdout]     | |              arguments to this method are incorrect
[INFO] [stdout] 244 | |                 id: found.value,
[INFO] [stdout] 245 | |                 generics: Vec::new(),
[INFO] [stdout] 246 | |             })
[INFO] [stdout]     | |_____________^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:243:22
[INFO] [stdout]     |
[INFO] [stdout] 243 |               .resolve(&Reference {
[INFO] [stdout]     |  ______________-------_^
[INFO] [stdout]     | |              |
[INFO] [stdout]     | |              arguments to this method are incorrect
[INFO] [stdout] 244 | |                 id: found.value,
[INFO] [stdout] 245 | |                 generics: Vec::new(),
[INFO] [stdout] 246 | |             })
[INFO] [stdout]     | |_____________^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:247:14
[INFO] [stdout]     |
[INFO] [stdout] 247 |             .id;
[INFO] [stdout]     |              ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 247 |             .concrete.id;
[INFO] [stdout]     |              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:247:14
[INFO] [stdout]     |
[INFO] [stdout] 247 |             .id;
[INFO] [stdout]     |              ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 247 |             .concrete.id;
[INFO] [stdout]     |              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/declarations.rs:547:27
[INFO] [stdout]     |
[INFO] [stdout] 546 |                       span: todo!(),
[INFO] [stdout]     |                             ------- any code following this expression is unreachable
[INFO] [stdout] 547 |                       kind: errors::Kind::DeclarationConstraintViolation {
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 548 | |                         constraint: errors::DeclarationConstraint::Type,
[INFO] [stdout] 549 | |                         found: reference.clone(),
[INFO] [stdout] 550 | |                     },
[INFO] [stdout]     | |_____________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/declarations.rs:547:27
[INFO] [stdout]     |
[INFO] [stdout] 546 |                       span: todo!(),
[INFO] [stdout]     |                             ------- any code following this expression is unreachable
[INFO] [stdout] 547 |                       kind: errors::Kind::DeclarationConstraintViolation {
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 548 | |                         constraint: errors::DeclarationConstraint::Type,
[INFO] [stdout] 549 | |                         found: reference.clone(),
[INFO] [stdout] 550 | |                     },
[INFO] [stdout]     | |_____________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:593:49
[INFO] [stdout]     |
[INFO] [stdout] 593 |         let reference = self.unresolved.resolve(&reference.despan());
[INFO] [stdout]     |                                         ------- ^^^^^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:593:49
[INFO] [stdout]     |
[INFO] [stdout] 593 |         let reference = self.unresolved.resolve(&reference.despan());
[INFO] [stdout]     |                                         ------- ^^^^^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:595:30
[INFO] [stdout]     |
[INFO] [stdout] 595 |         if self.get_function(&reference).is_some() {
[INFO] [stdout]     |                 ------------ ^^^^^^^^^^ expected `&Reference`, found `&ReferenceChain`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&ReferenceChain`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:560:12
[INFO] [stdout]     |
[INFO] [stdout] 560 |     pub fn get_function(&mut self, reference: &Reference) -> Option<&Arc<Function>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^            ---------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:595:30
[INFO] [stdout]     |
[INFO] [stdout] 595 |         if self.get_function(&reference).is_some() {
[INFO] [stdout]     |                 ------------ ^^^^^^^^^^ expected `&Reference`, found `&ReferenceChain`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&ReferenceChain`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:560:12
[INFO] [stdout]     |
[INFO] [stdout] 560 |     pub fn get_function(&mut self, reference: &Reference) -> Option<&Arc<Function>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^            ---------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:601:28
[INFO] [stdout]     |
[INFO] [stdout] 601 |             .get(reference.id)
[INFO] [stdout]     |                            ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 601 |             .get(reference.concrete.id)
[INFO] [stdout]     |                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:601:28
[INFO] [stdout]     |
[INFO] [stdout] 601 |             .get(reference.id)
[INFO] [stdout]     |                            ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 601 |             .get(reference.concrete.id)
[INFO] [stdout]     |                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:623:33
[INFO] [stdout]     |
[INFO] [stdout] 623 |                 dbg!(&reference.generics);
[INFO] [stdout]     |                                 ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 623 |                 dbg!(&reference.concrete.generics);
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:623:33
[INFO] [stdout]     |
[INFO] [stdout] 623 |                 dbg!(&reference.generics);
[INFO] [stdout]     |                                 ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 623 |                 dbg!(&reference.concrete.generics);
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:628:31
[INFO] [stdout]     |
[INFO] [stdout] 628 |                     reference.generics.clone(),
[INFO] [stdout]     |                               ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 628 |                     reference.concrete.generics.clone(),
[INFO] [stdout]     |                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:628:31
[INFO] [stdout]     |
[INFO] [stdout] 628 |                     reference.generics.clone(),
[INFO] [stdout]     |                               ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 628 |                     reference.concrete.generics.clone(),
[INFO] [stdout]     |                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:643:21
[INFO] [stdout]     |
[INFO] [stdout] 643 |             .insert(&reference, Arc::new(function), &self.unresolved);
[INFO] [stdout]     |              ------ ^^^^^^^^^^ expected `&Reference`, found `&ReferenceChain`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&ReferenceChain`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn insert(&mut self, reference: &Reference, value: V, declarations: &UnresolvedDeclarations) {
[INFO] [stdout]     |        ^^^^^^            ---------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:643:21
[INFO] [stdout]     |
[INFO] [stdout] 643 |             .insert(&reference, Arc::new(function), &self.unresolved);
[INFO] [stdout]     |              ------ ^^^^^^^^^^ expected `&Reference`, found `&ReferenceChain`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&ReferenceChain`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn insert(&mut self, reference: &Reference, value: V, declarations: &UnresolvedDeclarations) {
[INFO] [stdout]     |        ^^^^^^            ---------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:690:48
[INFO] [stdout]     |
[INFO] [stdout] 690 |         let expected = self.unresolved.resolve(&expected.despan());
[INFO] [stdout]     |                                        ------- ^^^^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:690:48
[INFO] [stdout]     |
[INFO] [stdout] 690 |         let expected = self.unresolved.resolve(&expected.despan());
[INFO] [stdout]     |                                        ------- ^^^^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:691:45
[INFO] [stdout]     |
[INFO] [stdout] 691 |         let found = self.unresolved.resolve(&found.despan());
[INFO] [stdout]     |                                     ------- ^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:693:44
[INFO] [stdout]     |
[INFO] [stdout] 693 |         dbg!(&self.unresolved.get(expected.id));
[INFO] [stdout]     |                                            ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 693 |         dbg!(&self.unresolved.get(expected.concrete.id));
[INFO] [stdout]     |                                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:694:41
[INFO] [stdout]     |
[INFO] [stdout] 694 |         dbg!(&self.unresolved.get(found.id));
[INFO] [stdout]     |                                         ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 694 |         dbg!(&self.unresolved.get(found.concrete.id));
[INFO] [stdout]     |                                         +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:696:21
[INFO] [stdout]     |
[INFO] [stdout] 696 |         if expected.id == found.id {
[INFO] [stdout]     |                     ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 696 |         if expected.concrete.id == found.id {
[INFO] [stdout]     |                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/declarations.rs:691:45
[INFO] [stdout]     |
[INFO] [stdout] 691 |         let found = self.unresolved.resolve(&found.despan());
[INFO] [stdout]     |                                     ------- ^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:696:33
[INFO] [stdout]     |
[INFO] [stdout] 696 |         if expected.id == found.id {
[INFO] [stdout]     |                                 ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 696 |         if expected.id == found.concrete.id {
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:697:25
[INFO] [stdout]     |
[INFO] [stdout] 697 |             if expected.generics.len() != found.generics.len() {
[INFO] [stdout]     |                         ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 697 |             if expected.concrete.generics.len() != found.generics.len() {
[INFO] [stdout]     |                         +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:693:44
[INFO] [stdout]     |
[INFO] [stdout] 693 |         dbg!(&self.unresolved.get(expected.id));
[INFO] [stdout]     |                                            ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 693 |         dbg!(&self.unresolved.get(expected.concrete.id));
[INFO] [stdout]     |                                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:697:49
[INFO] [stdout]     |
[INFO] [stdout] 697 |             if expected.generics.len() != found.generics.len() {
[INFO] [stdout]     |                                                 ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 697 |             if expected.generics.len() != found.concrete.generics.len() {
[INFO] [stdout]     |                                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/declarations.rs:700:27
[INFO] [stdout]     |
[INFO] [stdout] 699 |                       span: todo!(),
[INFO] [stdout]     |                             ------- any code following this expression is unreachable
[INFO] [stdout] 700 |                       kind: errors::Kind::MismatchedGenericArguments {
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 701 | |                         arguments: found.generics.len(),
[INFO] [stdout] 702 | |                         parameters: expected.generics.len(),
[INFO] [stdout] 703 | |                         declaration: todo!("is this error internal"),
[INFO] [stdout] 704 | |                     },
[INFO] [stdout]     | |_____________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:694:41
[INFO] [stdout]     |
[INFO] [stdout] 694 |         dbg!(&self.unresolved.get(found.id));
[INFO] [stdout]     |                                         ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 694 |         dbg!(&self.unresolved.get(found.concrete.id));
[INFO] [stdout]     |                                         +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:701:42
[INFO] [stdout]     |
[INFO] [stdout] 701 |                         arguments: found.generics.len(),
[INFO] [stdout]     |                                          ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 701 |                         arguments: found.concrete.generics.len(),
[INFO] [stdout]     |                                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:702:46
[INFO] [stdout]     |
[INFO] [stdout] 702 |                         parameters: expected.generics.len(),
[INFO] [stdout]     |                                              ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 702 |                         parameters: expected.concrete.generics.len(),
[INFO] [stdout]     |                                              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:696:21
[INFO] [stdout]     |
[INFO] [stdout] 696 |         if expected.id == found.id {
[INFO] [stdout]     |                     ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 696 |         if expected.concrete.id == found.id {
[INFO] [stdout]     |                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/declarations.rs:700:27
[INFO] [stdout]     |
[INFO] [stdout] 700 |                       kind: errors::Kind::MismatchedGenericArguments {
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 701 | |                         arguments: found.generics.len(),
[INFO] [stdout] 702 | |                         parameters: expected.generics.len(),
[INFO] [stdout] 703 | |                         declaration: todo!("is this error internal"),
[INFO] [stdout]     | |                                      ------------------------------- any code following this expression is unreachable
[INFO] [stdout] 704 | |                     },
[INFO] [stdout]     | |_____________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:696:33
[INFO] [stdout]     |
[INFO] [stdout] 696 |         if expected.id == found.id {
[INFO] [stdout]     |                                 ^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 696 |         if expected.id == found.concrete.id {
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:708:58
[INFO] [stdout]     |
[INFO] [stdout] 708 |             for (expected, found) in iter::zip(&expected.generics, &found.generics) {
[INFO] [stdout]     |                                                          ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 708 |             for (expected, found) in iter::zip(&expected.concrete.generics, &found.generics) {
[INFO] [stdout]     |                                                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:708:75
[INFO] [stdout]     |
[INFO] [stdout] 708 |             for (expected, found) in iter::zip(&expected.generics, &found.generics) {
[INFO] [stdout]     |                                                                           ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 708 |             for (expected, found) in iter::zip(&expected.generics, &found.concrete.generics) {
[INFO] [stdout]     |                                                                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:697:25
[INFO] [stdout]     |
[INFO] [stdout] 697 |             if expected.generics.len() != found.generics.len() {
[INFO] [stdout]     |                         ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 697 |             if expected.concrete.generics.len() != found.generics.len() {
[INFO] [stdout]     |                         +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:697:49
[INFO] [stdout]     |
[INFO] [stdout] 697 |             if expected.generics.len() != found.generics.len() {
[INFO] [stdout]     |                                                 ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 697 |             if expected.generics.len() != found.concrete.generics.len() {
[INFO] [stdout]     |                                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/declarations.rs:700:27
[INFO] [stdout]     |
[INFO] [stdout] 699 |                       span: todo!(),
[INFO] [stdout]     |                             ------- any code following this expression is unreachable
[INFO] [stdout] 700 |                       kind: errors::Kind::MismatchedGenericArguments {
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 701 | |                         arguments: found.generics.len(),
[INFO] [stdout] 702 | |                         parameters: expected.generics.len(),
[INFO] [stdout] 703 | |                         declaration: todo!("is this error internal"),
[INFO] [stdout] 704 | |                     },
[INFO] [stdout]     | |_____________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:701:42
[INFO] [stdout]     |
[INFO] [stdout] 701 |                         arguments: found.generics.len(),
[INFO] [stdout]     |                                          ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 701 |                         arguments: found.concrete.generics.len(),
[INFO] [stdout]     |                                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:702:46
[INFO] [stdout]     |
[INFO] [stdout] 702 |                         parameters: expected.generics.len(),
[INFO] [stdout]     |                                              ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 702 |                         parameters: expected.concrete.generics.len(),
[INFO] [stdout]     |                                              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/declarations.rs:700:27
[INFO] [stdout]     |
[INFO] [stdout] 700 |                       kind: errors::Kind::MismatchedGenericArguments {
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 701 | |                         arguments: found.generics.len(),
[INFO] [stdout] 702 | |                         parameters: expected.generics.len(),
[INFO] [stdout] 703 | |                         declaration: todo!("is this error internal"),
[INFO] [stdout]     | |                                      ------------------------------- any code following this expression is unreachable
[INFO] [stdout] 704 | |                     },
[INFO] [stdout]     | |_____________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:708:58
[INFO] [stdout]     |
[INFO] [stdout] 708 |             for (expected, found) in iter::zip(&expected.generics, &found.generics) {
[INFO] [stdout]     |                                                          ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 708 |             for (expected, found) in iter::zip(&expected.concrete.generics, &found.generics) {
[INFO] [stdout]     |                                                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `generics` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:708:75
[INFO] [stdout]     |
[INFO] [stdout] 708 |             for (expected, found) in iter::zip(&expected.generics, &found.generics) {
[INFO] [stdout]     |                                                                           ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 708 |             for (expected, found) in iter::zip(&expected.generics, &found.concrete.generics) {
[INFO] [stdout]     |                                                                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `clone` found for struct `ReferenceChain` in the current scope
[INFO] [stdout]    --> compiler/src/declarations.rs:717:36
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub struct ReferenceChain {
[INFO] [stdout]     | ------------------------- method `clone` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 717 |                 expected: expected.clone(),
[INFO] [stdout]     |                                    ^^^^^ method not found in `ReferenceChain`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following trait defines an item `clone`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `Clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `clone` found for struct `ReferenceChain` in the current scope
[INFO] [stdout]    --> compiler/src/declarations.rs:717:36
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub struct ReferenceChain {
[INFO] [stdout]     | ------------------------- method `clone` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 717 |                 expected: expected.clone(),
[INFO] [stdout]     |                                    ^^^^^ method not found in `ReferenceChain`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following trait defines an item `clone`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `Clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `clone` found for struct `ReferenceChain` in the current scope
[INFO] [stdout]    --> compiler/src/declarations.rs:718:30
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub struct ReferenceChain {
[INFO] [stdout]     | ------------------------- method `clone` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 718 |                 found: found.clone(),
[INFO] [stdout]     |                              ^^^^^ method not found in `ReferenceChain`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following trait defines an item `clone`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `Clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:720:25
[INFO] [stdout]     |
[INFO] [stdout] 720 |             span: found.span,
[INFO] [stdout]     |                         ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 720 |             span: found.concrete.generics.span,
[INFO] [stdout]     |                         ++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `clone` found for struct `ReferenceChain` in the current scope
[INFO] [stdout]    --> compiler/src/declarations.rs:718:30
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub struct ReferenceChain {
[INFO] [stdout]     | ------------------------- method `clone` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 718 |                 found: found.clone(),
[INFO] [stdout]     |                              ^^^^^ method not found in `ReferenceChain`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following trait defines an item `clone`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `Clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `ReferenceChain`
[INFO] [stdout]    --> compiler/src/declarations.rs:720:25
[INFO] [stdout]     |
[INFO] [stdout] 720 |             span: found.span,
[INFO] [stdout]     |                         ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 720 |             span: found.concrete.generics.span,
[INFO] [stdout]     |                         ++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/function.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |         let scope = declarations.unresolved.create_generic_scope(
[INFO] [stdout]     |                                             -------------------- arguments to this method are incorrect
[INFO] [stdout] 167 |             function.generic_parameters,
[INFO] [stdout] 168 |             generic_arguments,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ expected `Spanned<Vec<SpannedReference>>`, found `Vec<Reference>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Spanned<Vec<SpannedReference>>`
[INFO] [stdout]                found struct `Vec<declarations::Reference>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 269 |     pub fn create_generic_scope(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |         arguments: Spanned<Vec<SpannedReference>>,
[INFO] [stdout]     |         -----------------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/function.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |         let scope = declarations.unresolved.create_generic_scope(
[INFO] [stdout]     |                                             -------------------- arguments to this method are incorrect
[INFO] [stdout] 167 |             function.generic_parameters,
[INFO] [stdout] 168 |             generic_arguments,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ expected `Spanned<Vec<SpannedReference>>`, found `Vec<Reference>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Spanned<Vec<SpannedReference>>`
[INFO] [stdout]                found struct `Vec<declarations::Reference>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 269 |     pub fn create_generic_scope(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |         arguments: Spanned<Vec<SpannedReference>>,
[INFO] [stdout]     |         -----------------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `Vec<(Spanned<parser::Ident>, cranelift::prelude::Variable, declarations::Reference)>` cannot be built from an iterator over elements of type `(Spanned<parser::Ident>, cranelift::prelude::Variable, SpannedReference)`
[INFO] [stdout]    --> compiler/src/function.rs:312:24
[INFO] [stdout]     |
[INFO] [stdout] 312 |             .collect::<Result<_, Error>>()?;
[INFO] [stdout]     |              -------   ^^^^^^^^^^^^^^^^ value of type `Vec<(Spanned<parser::Ident>, cranelift::prelude::Variable, declarations::Reference)>` cannot be built from `std::iter::Iterator<Item=(Spanned<parser::Ident>, cranelift::prelude::Variable, SpannedReference)>`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `FromIterator<(Spanned<_>, cranelift::prelude::Variable, SpannedReference)>` is not implemented for `Vec<(Spanned<parser::Ident>, cranelift::prelude::Variable, declarations::Reference)>`
[INFO] [stdout]       but trait `FromIterator<(Spanned<_>, cranelift::prelude::Variable, declarations::Reference)>` is implemented for it
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/alloc/src/vec/mod.rs:3798:0
[INFO] [stdout]     = help: for that trait implementation, expected `declarations::Reference`, found `SpannedReference`
[INFO] [stdout]     = note: required for `Result<Vec<(Spanned<Ident>, Variable, Reference)>, Error>` to implement `FromIterator<Result<(Spanned<Ident>, Variable, ...), ...>>`
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/core/src/iter/traits/iterator.rs:2022:4
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/compiler-fa705eb599f27af7.long-type-10755184612709842630.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `Vec<(Spanned<parser::Ident>, cranelift::prelude::Variable, declarations::Reference)>` cannot be built from an iterator over elements of type `(Spanned<parser::Ident>, cranelift::prelude::Variable, SpannedReference)`
[INFO] [stdout]    --> compiler/src/function.rs:312:24
[INFO] [stdout]     |
[INFO] [stdout] 312 |             .collect::<Result<_, Error>>()?;
[INFO] [stdout]     |              -------   ^^^^^^^^^^^^^^^^ value of type `Vec<(Spanned<parser::Ident>, cranelift::prelude::Variable, declarations::Reference)>` cannot be built from `std::iter::Iterator<Item=(Spanned<parser::Ident>, cranelift::prelude::Variable, SpannedReference)>`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `FromIterator<(Spanned<_>, cranelift::prelude::Variable, SpannedReference)>` is not implemented for `Vec<(Spanned<parser::Ident>, cranelift::prelude::Variable, declarations::Reference)>`
[INFO] [stdout]       but trait `FromIterator<(Spanned<_>, cranelift::prelude::Variable, declarations::Reference)>` is implemented for it
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/alloc/src/vec/mod.rs:3798:0
[INFO] [stdout]     = help: for that trait implementation, expected `declarations::Reference`, found `SpannedReference`
[INFO] [stdout]     = note: required for `Result<Vec<(Spanned<Ident>, Variable, Reference)>, Error>` to implement `FromIterator<Result<(Spanned<Ident>, Variable, ...), ...>>`
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/core/src/iter/traits/iterator.rs:2022:4
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/compiler-cabae247242f5642.long-type-15467536363163183230.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:53:62
[INFO] [stdout]     |
[INFO] [stdout]  53 |                 let struct_type = declarations.insert_layout(struct_type_ref)?;
[INFO] [stdout]     |                                                ------------- ^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:458:12
[INFO] [stdout]     |
[INFO] [stdout] 458 |     pub fn insert_layout(&mut self, reference: &SpannedReference) -> Result<Option<Layout>, Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^            ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> compiler/src/hir/builder.rs:61:44
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...                   parent_struct: struct_type_ref.clone(),
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^ expected `SpannedReference`, found `Reference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]   --> compiler/src/hir/builder.rs:74:39
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 let span = array_type.span.clone();
[INFO] [stdout]    |                                       ^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:53:62
[INFO] [stdout]     |
[INFO] [stdout]  53 |                 let struct_type = declarations.insert_layout(struct_type_ref)?;
[INFO] [stdout]     |                                                ------------- ^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:458:12
[INFO] [stdout]     |
[INFO] [stdout] 458 |     pub fn insert_layout(&mut self, reference: &SpannedReference) -> Result<Option<Layout>, Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^            ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> compiler/src/hir/builder.rs:61:44
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...                   parent_struct: struct_type_ref.clone(),
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^ expected `SpannedReference`, found `Reference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]   --> compiler/src/hir/builder.rs:74:39
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 let span = array_type.span.clone();
[INFO] [stdout]    |                                       ^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:75:61
[INFO] [stdout]     |
[INFO] [stdout]  75 |                 let array_type = declarations.insert_layout(array_type)?;
[INFO] [stdout]     |                                               ------------- ^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:458:12
[INFO] [stdout]     |
[INFO] [stdout] 458 |     pub fn insert_layout(&mut self, reference: &SpannedReference) -> Result<Option<Layout>, Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^            ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:123:26
[INFO] [stdout]     |
[INFO] [stdout] 123 |             return_type: function.signature.return_type.clone(),
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:75:61
[INFO] [stdout]     |
[INFO] [stdout]  75 |                 let array_type = declarations.insert_layout(array_type)?;
[INFO] [stdout]     |                                               ------------- ^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:458:12
[INFO] [stdout]     |
[INFO] [stdout] 458 |     pub fn insert_layout(&mut self, reference: &SpannedReference) -> Result<Option<Layout>, Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^            ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:123:26
[INFO] [stdout]     |
[INFO] [stdout] 123 |             return_type: function.signature.return_type.clone(),
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:186:56
[INFO] [stdout]     |
[INFO] [stdout] 186 |                 self.variables.insert(variable.into(), type_ref);
[INFO] [stdout]     |                                ------                  ^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] help: the return type of this call is `SpannedReference` due to the type of the argument passed
[INFO] [stdout]    --> compiler/src/hir/builder.rs:186:17
[INFO] [stdout]     |
[INFO] [stdout] 186 |                 self.variables.insert(variable.into(), type_ref);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------^
[INFO] [stdout]     |                                                        |
[INFO] [stdout]     |                                                        this argument influences the return type of `insert`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/map.rs:1295:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:207:17
[INFO] [stdout]     |
[INFO] [stdout] 205 |             return Ok(Typed::new(
[INFO] [stdout]     |                       ---------- arguments to this function are incorrect
[INFO] [stdout] 206 |                 Expression::LocalAccess(variable),
[INFO] [stdout] 207 |                 type_ref.clone(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ expected `SpannedReference`, found `Reference`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> compiler/src/hir.rs:114:18
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub const fn new(value: T, type_ref: SpannedReference) -> Self {
[INFO] [stdout]     |                  ^^^           --------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:186:56
[INFO] [stdout]     |
[INFO] [stdout] 186 |                 self.variables.insert(variable.into(), type_ref);
[INFO] [stdout]     |                                ------                  ^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] help: the return type of this call is `SpannedReference` due to the type of the argument passed
[INFO] [stdout]    --> compiler/src/hir/builder.rs:186:17
[INFO] [stdout]     |
[INFO] [stdout] 186 |                 self.variables.insert(variable.into(), type_ref);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------^
[INFO] [stdout]     |                                                        |
[INFO] [stdout]     |                                                        this argument influences the return type of `insert`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/map.rs:1295:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:261:34
[INFO] [stdout]     |
[INFO] [stdout] 261 |                     struct_type: struct_type.clone(),
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:207:17
[INFO] [stdout]     |
[INFO] [stdout] 205 |             return Ok(Typed::new(
[INFO] [stdout]     |                       ---------- arguments to this function are incorrect
[INFO] [stdout] 206 |                 Expression::LocalAccess(variable),
[INFO] [stdout] 207 |                 type_ref.clone(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ expected `SpannedReference`, found `Reference`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> compiler/src/hir.rs:114:18
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub const fn new(value: T, type_ref: SpannedReference) -> Self {
[INFO] [stdout]     |                  ^^^           --------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:261:34
[INFO] [stdout]     |
[INFO] [stdout] 261 |                     struct_type: struct_type.clone(),
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:328:39
[INFO] [stdout]     |
[INFO] [stdout] 328 |                 Ok(Expression::SizeOf(reference).typed(self.declarations, span))
[INFO] [stdout]     |                    ------------------ ^^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> compiler/src/hir.rs:94:5
[INFO] [stdout]     |
[INFO] [stdout]  94 |     SizeOf(Reference),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:328:39
[INFO] [stdout]     |
[INFO] [stdout] 328 |                 Ok(Expression::SizeOf(reference).typed(self.declarations, span))
[INFO] [stdout]     |                    ------------------ ^^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> compiler/src/hir.rs:94:5
[INFO] [stdout]     |
[INFO] [stdout]  94 |     SizeOf(Reference),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:360:31
[INFO] [stdout]     |
[INFO] [stdout] 360 |                     generics: generics.clone(),
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^ expected `Vec<Reference>`, found `Vec<SpannedReference>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<declarations::Reference>`
[INFO] [stdout]                found struct `Vec<SpannedReference>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:368:17
[INFO] [stdout]     |
[INFO] [stdout] 354 |           let (declaration, generics) = match callable.value {
[INFO] [stdout]     |  _______________________________________-
[INFO] [stdout] 355 | |             hir::Expression::GlobalAccess(declaration) => {
[INFO] [stdout] 356 | |                 let generics = self.declarations.make_generic_arguments(declaration);
[INFO] [stdout] 357 | |                 let inner = callable.clone();
[INFO] [stdout] ...   |
[INFO] [stdout] 362 | |                 (declaration, generics)
[INFO] [stdout]     | |                 ----------------------- this is found to be of type `(Id, Vec<SpannedReference>)`
[INFO] [stdout] ...   |
[INFO] [stdout] 368 | |                 (declaration, generixed.generics.clone())
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(Id, Vec<SpannedReference>)`, found `(Id, Vec<Reference>)`
[INFO] [stdout] 369 | |             }
[INFO] [stdout] 370 | |             _ => todo!("func ref"),
[INFO] [stdout] 371 | |         };
[INFO] [stdout]     | |_________- `match` arms have incompatible types
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(Id, Vec<SpannedReference>)`
[INFO] [stdout]                found tuple `(Id, Vec<declarations::Reference>)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `declarations::Reference` has no field named `span`
[INFO] [stdout]    --> compiler/src/hir/builder.rs:383:13
[INFO] [stdout]     |
[INFO] [stdout] 383 |             span: callable_span,
[INFO] [stdout]     |             ^^^^ `declarations::Reference` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:360:31
[INFO] [stdout]     |
[INFO] [stdout] 360 |                     generics: generics.clone(),
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^ expected `Vec<Reference>`, found `Vec<SpannedReference>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<declarations::Reference>`
[INFO] [stdout]                found struct `Vec<SpannedReference>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:368:17
[INFO] [stdout]     |
[INFO] [stdout] 354 |           let (declaration, generics) = match callable.value {
[INFO] [stdout]     |  _______________________________________-
[INFO] [stdout] 355 | |             hir::Expression::GlobalAccess(declaration) => {
[INFO] [stdout] 356 | |                 let generics = self.declarations.make_generic_arguments(declaration);
[INFO] [stdout] 357 | |                 let inner = callable.clone();
[INFO] [stdout] ...   |
[INFO] [stdout] 362 | |                 (declaration, generics)
[INFO] [stdout]     | |                 ----------------------- this is found to be of type `(Id, Vec<SpannedReference>)`
[INFO] [stdout] ...   |
[INFO] [stdout] 368 | |                 (declaration, generixed.generics.clone())
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(Id, Vec<SpannedReference>)`, found `(Id, Vec<Reference>)`
[INFO] [stdout] 369 | |             }
[INFO] [stdout] 370 | |             _ => todo!("func ref"),
[INFO] [stdout] 371 | |         };
[INFO] [stdout]     | |_________- `match` arms have incompatible types
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(Id, Vec<SpannedReference>)`
[INFO] [stdout]                found tuple `(Id, Vec<declarations::Reference>)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `declarations::Reference` has no field named `span`
[INFO] [stdout]    --> compiler/src/hir/builder.rs:383:13
[INFO] [stdout]     |
[INFO] [stdout] 383 |             span: callable_span,
[INFO] [stdout]     |             ^^^^ `declarations::Reference` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:386:43
[INFO] [stdout]     |
[INFO] [stdout] 386 |         self.declarations.insert_function(&func_reference)?;
[INFO] [stdout]     |                           --------------- ^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:591:12
[INFO] [stdout]     |
[INFO] [stdout] 591 |     pub fn insert_function(&mut self, reference: &SpannedReference) -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^            ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/hir/builder.rs:397:23
[INFO] [stdout]     |
[INFO] [stdout] 396 |                   span: todo!(),
[INFO] [stdout]     |                         ------- any code following this expression is unreachable
[INFO] [stdout] 397 |                   kind: errors::Kind::MismatchedArguments {
[INFO] [stdout]     |  _______________________^
[INFO] [stdout] 398 | |                     arguments: call.arguments.len(),
[INFO] [stdout] 399 | |                     parameters: signature.parameters.len(),
[INFO] [stdout] 400 | |                     declaration: todo!(),
[INFO] [stdout] 401 | |                 },
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/hir/builder.rs:397:23
[INFO] [stdout]     |
[INFO] [stdout] 397 |                   kind: errors::Kind::MismatchedArguments {
[INFO] [stdout]     |  _______________________^
[INFO] [stdout] 398 | |                     arguments: call.arguments.len(),
[INFO] [stdout] 399 | |                     parameters: signature.parameters.len(),
[INFO] [stdout] 400 | |                     declaration: todo!(),
[INFO] [stdout]     | |                                  ------- any code following this expression is unreachable
[INFO] [stdout] 401 | |                 },
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:386:43
[INFO] [stdout]     |
[INFO] [stdout] 386 |         self.declarations.insert_function(&func_reference)?;
[INFO] [stdout]     |                           --------------- ^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:591:12
[INFO] [stdout]     |
[INFO] [stdout] 591 |     pub fn insert_function(&mut self, reference: &SpannedReference) -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^            ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/hir/builder.rs:397:23
[INFO] [stdout]     |
[INFO] [stdout] 396 |                   span: todo!(),
[INFO] [stdout]     |                         ------- any code following this expression is unreachable
[INFO] [stdout] 397 |                   kind: errors::Kind::MismatchedArguments {
[INFO] [stdout]     |  _______________________^
[INFO] [stdout] 398 | |                     arguments: call.arguments.len(),
[INFO] [stdout] 399 | |                     parameters: signature.parameters.len(),
[INFO] [stdout] 400 | |                     declaration: todo!(),
[INFO] [stdout] 401 | |                 },
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:431:37
[INFO] [stdout]     |
[INFO] [stdout] 431 |                         array_type: expression.type_ref.clone(),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/hir/builder.rs:397:23
[INFO] [stdout]     |
[INFO] [stdout] 397 |                   kind: errors::Kind::MismatchedArguments {
[INFO] [stdout]     |  _______________________^
[INFO] [stdout] 398 | |                     arguments: call.arguments.len(),
[INFO] [stdout] 399 | |                     parameters: signature.parameters.len(),
[INFO] [stdout] 400 | |                     declaration: todo!(),
[INFO] [stdout]     | |                                  ------- any code following this expression is unreachable
[INFO] [stdout] 401 | |                 },
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:431:37
[INFO] [stdout]     |
[INFO] [stdout] 431 |                         array_type: expression.type_ref.clone(),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:443:52
[INFO] [stdout]     |
[INFO] [stdout] 443 |                     .check_expression_type(&inner, &self.return_type)?;
[INFO] [stdout]     |                      ---------------------         ^^^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:724:12
[INFO] [stdout]     |
[INFO] [stdout] 724 |     pub fn check_expression_type(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 727 |         expected: &SpannedReference,
[INFO] [stdout]     |         ---------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:443:52
[INFO] [stdout]     |
[INFO] [stdout] 443 |                     .check_expression_type(&inner, &self.return_type)?;
[INFO] [stdout]     |                      ---------------------         ^^^^^^^^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:724:12
[INFO] [stdout]     |
[INFO] [stdout] 724 |     pub fn check_expression_type(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 727 |         expected: &SpannedReference,
[INFO] [stdout]     |         ---------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:500:34
[INFO] [stdout]     |
[INFO] [stdout] 500 |                     struct_type: struct_expression.type_ref,
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:500:34
[INFO] [stdout]     |
[INFO] [stdout] 500 |                     struct_type: struct_expression.type_ref,
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:512:41
[INFO] [stdout]     |
[INFO] [stdout] 512 |                         .build_generics(&generixed.generics.value.0, self.scope)?,
[INFO] [stdout]     |                          -------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&Spanned<GenericArguments>`, found `&Vec<Spanned<GenericArgument>>`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Spanned<GenericArguments>`
[INFO] [stdout]                found reference `&Vec<Spanned<GenericArgument>>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn build_generics(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 132 |         &mut self,
[INFO] [stdout] 133 |         generics: &Spanned<parser::GenericArguments>,
[INFO] [stdout]     |         --------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:512:41
[INFO] [stdout]     |
[INFO] [stdout] 512 |                         .build_generics(&generixed.generics.value.0, self.scope)?,
[INFO] [stdout]     |                          -------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&Spanned<GenericArguments>`, found `&Vec<Spanned<GenericArgument>>`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Spanned<GenericArguments>`
[INFO] [stdout]                found reference `&Vec<Spanned<GenericArgument>>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn build_generics(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 132 |         &mut self,
[INFO] [stdout] 133 |         generics: &Spanned<parser::GenericArguments>,
[INFO] [stdout]     |         --------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `?` operator has incompatible types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:509:31
[INFO] [stdout]     |
[INFO] [stdout] 509 |                       generics: self
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 510 | |                         .declarations
[INFO] [stdout] 511 | |                         .unresolved
[INFO] [stdout] 512 | |                         .build_generics(&generixed.generics.value.0, self.scope)?,
[INFO] [stdout]     | |_________________________________________________________________________________^ expected `Vec<Reference>`, found `Spanned<Vec<SpannedReference>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `?` operator cannot convert from `Spanned<Vec<SpannedReference>>` to `Vec<declarations::Reference>`
[INFO] [stdout]     = note: expected struct `Vec<declarations::Reference>`
[INFO] [stdout]                found struct `Spanned<Vec<SpannedReference>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `?` operator has incompatible types
[INFO] [stdout]    --> compiler/src/hir/builder.rs:509:31
[INFO] [stdout]     |
[INFO] [stdout] 509 |                       generics: self
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 510 | |                         .declarations
[INFO] [stdout] 511 | |                         .unresolved
[INFO] [stdout] 512 | |                         .build_generics(&generixed.generics.value.0, self.scope)?,
[INFO] [stdout]     | |_________________________________________________________________________________^ expected `Vec<Reference>`, found `Spanned<Vec<SpannedReference>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `?` operator cannot convert from `Spanned<Vec<SpannedReference>>` to `Vec<declarations::Reference>`
[INFO] [stdout]     = note: expected struct `Vec<declarations::Reference>`
[INFO] [stdout]                found struct `Spanned<Vec<SpannedReference>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> compiler/src/layout.rs:84:23
[INFO] [stdout]    |
[INFO] [stdout] 83 |                   span: todo!(),
[INFO] [stdout]    |                         ------- any code following this expression is unreachable
[INFO] [stdout] 84 |                   kind: errors::Kind::TypeConstraintViolation {
[INFO] [stdout]    |  _______________________^
[INFO] [stdout] 85 | |                     constraint: errors::TypeConstraint::Struct,
[INFO] [stdout] 86 | |                     found: todo!(),
[INFO] [stdout] 87 | |                 },
[INFO] [stdout]    | |_________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> compiler/src/layout.rs:84:23
[INFO] [stdout]    |
[INFO] [stdout] 84 |                   kind: errors::Kind::TypeConstraintViolation {
[INFO] [stdout]    |  _______________________^
[INFO] [stdout] 85 | |                     constraint: errors::TypeConstraint::Struct,
[INFO] [stdout] 86 | |                     found: todo!(),
[INFO] [stdout]    | |                            ------- any code following this expression is unreachable
[INFO] [stdout] 87 | |                 },
[INFO] [stdout]    | |_________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/layout.rs:97:23
[INFO] [stdout]     |
[INFO] [stdout]  96 |                   span: todo!(),
[INFO] [stdout]     |                         ------- any code following this expression is unreachable
[INFO] [stdout]  97 |                   kind: errors::Kind::TypeConstraintViolation {
[INFO] [stdout]     |  _______________________^
[INFO] [stdout]  98 | |                     constraint: errors::TypeConstraint::Array,
[INFO] [stdout]  99 | |                     found: todo!(),
[INFO] [stdout] 100 | |                 },
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/layout.rs:97:23
[INFO] [stdout]     |
[INFO] [stdout]  97 |                   kind: errors::Kind::TypeConstraintViolation {
[INFO] [stdout]     |  _______________________^
[INFO] [stdout]  98 | |                     constraint: errors::TypeConstraint::Array,
[INFO] [stdout]  99 | |                     found: todo!(),
[INFO] [stdout]     | |                            ------- any code following this expression is unreachable
[INFO] [stdout] 100 | |                 },
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> compiler/src/layout.rs:84:23
[INFO] [stdout]    |
[INFO] [stdout] 83 |                   span: todo!(),
[INFO] [stdout]    |                         ------- any code following this expression is unreachable
[INFO] [stdout] 84 |                   kind: errors::Kind::TypeConstraintViolation {
[INFO] [stdout]    |  _______________________^
[INFO] [stdout] 85 | |                     constraint: errors::TypeConstraint::Struct,
[INFO] [stdout] 86 | |                     found: todo!(),
[INFO] [stdout] 87 | |                 },
[INFO] [stdout]    | |_________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> compiler/src/layout.rs:84:23
[INFO] [stdout]    |
[INFO] [stdout] 84 |                   kind: errors::Kind::TypeConstraintViolation {
[INFO] [stdout]    |  _______________________^
[INFO] [stdout] 85 | |                     constraint: errors::TypeConstraint::Struct,
[INFO] [stdout] 86 | |                     found: todo!(),
[INFO] [stdout]    | |                            ------- any code following this expression is unreachable
[INFO] [stdout] 87 | |                 },
[INFO] [stdout]    | |_________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/layout.rs:97:23
[INFO] [stdout]     |
[INFO] [stdout]  96 |                   span: todo!(),
[INFO] [stdout]     |                         ------- any code following this expression is unreachable
[INFO] [stdout]  97 |                   kind: errors::Kind::TypeConstraintViolation {
[INFO] [stdout]     |  _______________________^
[INFO] [stdout]  98 | |                     constraint: errors::TypeConstraint::Array,
[INFO] [stdout]  99 | |                     found: todo!(),
[INFO] [stdout] 100 | |                 },
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/layout.rs:97:23
[INFO] [stdout]     |
[INFO] [stdout]  97 |                   kind: errors::Kind::TypeConstraintViolation {
[INFO] [stdout]     |  _______________________^
[INFO] [stdout]  98 | |                     constraint: errors::TypeConstraint::Array,
[INFO] [stdout]  99 | |                     found: todo!(),
[INFO] [stdout]     | |                            ------- any code following this expression is unreachable
[INFO] [stdout] 100 | |                 },
[INFO] [stdout]     | |_________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/translate.rs:317:27
[INFO] [stdout]     |
[INFO] [stdout] 316 |                       span: todo!("argument span"),
[INFO] [stdout]     |                             ---------------------- any code following this expression is unreachable
[INFO] [stdout] 317 |                       kind: errors::Kind::TypeConstraintViolation {
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 318 | |                         constraint: errors::TypeConstraint::Number,
[INFO] [stdout] 319 | |                         found: input_type_ref,
[INFO] [stdout] 320 | |                     },
[INFO] [stdout]     | |_____________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> compiler/src/translate.rs:317:27
[INFO] [stdout]     |
[INFO] [stdout] 316 |                       span: todo!("argument span"),
[INFO] [stdout]     |                             ---------------------- any code following this expression is unreachable
[INFO] [stdout] 317 |                       kind: errors::Kind::TypeConstraintViolation {
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 318 | |                         constraint: errors::TypeConstraint::Number,
[INFO] [stdout] 319 | |                         found: input_type_ref,
[INFO] [stdout] 320 | |                     },
[INFO] [stdout]     | |_____________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:439:13
[INFO] [stdout]     |
[INFO] [stdout] 439 |             generics,
[INFO] [stdout]     |             ^^^^^^^^ expected `Spanned<Vec<SpannedReference>>`, found `Vec<Reference>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Spanned<Vec<SpannedReference>>`
[INFO] [stdout]                found struct `Vec<declarations::Reference>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:439:13
[INFO] [stdout]     |
[INFO] [stdout] 439 |             generics,
[INFO] [stdout]     |             ^^^^^^^^ expected `Spanned<Vec<SpannedReference>>`, found `Vec<Reference>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Spanned<Vec<SpannedReference>>`
[INFO] [stdout]                found struct `Vec<declarations::Reference>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:446:27
[INFO] [stdout]     |
[INFO] [stdout] 446 |             .get_function(&reference)
[INFO] [stdout]     |              ------------ ^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:560:12
[INFO] [stdout]     |
[INFO] [stdout] 560 |     pub fn get_function(&mut self, reference: &Reference) -> Option<&Arc<Function>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^            ---------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:446:27
[INFO] [stdout]     |
[INFO] [stdout] 446 |             .get_function(&reference)
[INFO] [stdout]     |              ------------ ^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:560:12
[INFO] [stdout]     |
[INFO] [stdout] 560 |     pub fn get_function(&mut self, reference: &Reference) -> Option<&Arc<Function>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^            ---------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:450:37
[INFO] [stdout]     |
[INFO] [stdout] 450 |         self.function_compiler.push(reference.clone());
[INFO] [stdout]     |                                ---- ^^^^^^^^^^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/main.rs:52:8
[INFO] [stdout]     |
[INFO] [stdout]  52 |     fn push(&mut self, func: Reference) {
[INFO] [stdout]     |        ^^^^            ---------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:450:37
[INFO] [stdout]     |
[INFO] [stdout] 450 |         self.function_compiler.push(reference.clone());
[INFO] [stdout]     |                                ---- ^^^^^^^^^^^^^^^^^ expected `Reference`, found `SpannedReference`
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/main.rs:52:8
[INFO] [stdout]     |
[INFO] [stdout]  52 |     fn push(&mut self, func: Reference) {
[INFO] [stdout]     |        ^^^^            ---------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:493:27
[INFO] [stdout]     |
[INFO] [stdout] 493 |             .get_function(&reference)
[INFO] [stdout]     |              ------------ ^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:560:12
[INFO] [stdout]     |
[INFO] [stdout] 560 |     pub fn get_function(&mut self, reference: &Reference) -> Option<&Arc<Function>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^            ---------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:493:27
[INFO] [stdout]     |
[INFO] [stdout] 493 |             .get_function(&reference)
[INFO] [stdout]     |              ------------ ^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:560:12
[INFO] [stdout]     |
[INFO] [stdout] 560 |     pub fn get_function(&mut self, reference: &Reference) -> Option<&Arc<Function>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^            ---------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:629:32
[INFO] [stdout]     |
[INFO] [stdout] 629 |                 span: type_ref.span.clone(),
[INFO] [stdout]     |                                ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:629:32
[INFO] [stdout]     |
[INFO] [stdout] 629 |                 span: type_ref.span.clone(),
[INFO] [stdout]     |                                ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:632:28
[INFO] [stdout]     |
[INFO] [stdout] 632 |                     found: type_ref.clone(),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ expected `SpannedReference`, found `Reference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:632:28
[INFO] [stdout]     |
[INFO] [stdout] 632 |                     found: type_ref.clone(),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ expected `SpannedReference`, found `Reference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:640:61
[INFO] [stdout]     |
[INFO] [stdout] 640 |             .get_initialised_length(array.length, &type_ref.span)?;
[INFO] [stdout]     |                                                             ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:640:61
[INFO] [stdout]     |
[INFO] [stdout] 640 |             .get_initialised_length(array.length, &type_ref.span)?;
[INFO] [stdout]     |                                                             ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:646:32
[INFO] [stdout]     |
[INFO] [stdout] 646 |                 span: type_ref.span.clone(),
[INFO] [stdout]     |                                ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:646:32
[INFO] [stdout]     |
[INFO] [stdout] 646 |                 span: type_ref.span.clone(),
[INFO] [stdout]     |                                ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:655:32
[INFO] [stdout]     |
[INFO] [stdout] 655 |                 span: type_ref.span.clone(),
[INFO] [stdout]     |                                ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:655:32
[INFO] [stdout]     |
[INFO] [stdout] 655 |                 span: type_ref.span.clone(),
[INFO] [stdout]     |                                ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:658:28
[INFO] [stdout]     |
[INFO] [stdout] 658 |                     found: type_ref.clone(),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ expected `SpannedReference`, found `Reference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:658:28
[INFO] [stdout]     |
[INFO] [stdout] 658 |                     found: type_ref.clone(),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ expected `SpannedReference`, found `Reference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:686:32
[INFO] [stdout]     |
[INFO] [stdout] 686 |                 span: type_ref.span.clone(),
[INFO] [stdout]     |                                ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:686:32
[INFO] [stdout]     |
[INFO] [stdout] 686 |                 span: type_ref.span.clone(),
[INFO] [stdout]     |                                ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:689:28
[INFO] [stdout]     |
[INFO] [stdout] 689 |                     found: type_ref.clone(),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ expected `SpannedReference`, found `Reference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:689:28
[INFO] [stdout]     |
[INFO] [stdout] 689 |                     found: type_ref.clone(),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ expected `SpannedReference`, found `Reference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:703:36
[INFO] [stdout]     |
[INFO] [stdout] 703 |                     span: type_ref.span.clone(),
[INFO] [stdout]     |                                    ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:703:36
[INFO] [stdout]     |
[INFO] [stdout] 703 |                     span: type_ref.span.clone(),
[INFO] [stdout]     |                                    ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:706:32
[INFO] [stdout]     |
[INFO] [stdout] 706 |                         found: type_ref.clone(),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^ expected `SpannedReference`, found `Reference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:706:32
[INFO] [stdout]     |
[INFO] [stdout] 706 |                         found: type_ref.clone(),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^ expected `SpannedReference`, found `Reference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:715:73
[INFO] [stdout]     |
[INFO] [stdout] 715 |                 Error::new(errors::Kind::IntegerLiteralTooBig, type_ref.span.clone())
[INFO] [stdout]     |                                                                         ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `span` on type `&declarations::Reference`
[INFO] [stdout]    --> compiler/src/translate.rs:715:73
[INFO] [stdout]     |
[INFO] [stdout] 715 |                 Error::new(errors::Kind::IntegerLiteralTooBig, type_ref.span.clone())
[INFO] [stdout]     |                                                                         ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:736:51
[INFO] [stdout]     |
[INFO] [stdout] 736 |                 self.integer_const(int, &layout?, &expression.type_ref)?
[INFO] [stdout]     |                      -------------                ^^^^^^^^^^^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/translate.rs:678:8
[INFO] [stdout]     |
[INFO] [stdout] 678 |     fn integer_const(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 682 |         type_ref: &Reference,
[INFO] [stdout]     |         --------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `compiler` (bin "compiler") due to 82 previous errors; 16 warnings emitted
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:736:51
[INFO] [stdout]     |
[INFO] [stdout] 736 |                 self.integer_const(int, &layout?, &expression.type_ref)?
[INFO] [stdout]     |                      -------------                ^^^^^^^^^^^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/translate.rs:678:8
[INFO] [stdout]     |
[INFO] [stdout] 678 |     fn integer_const(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 682 |         type_ref: &Reference,
[INFO] [stdout]     |         --------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:778:50
[INFO] [stdout]     |
[INFO] [stdout] 778 |                 .string_const(&string, &layout?, &expression.type_ref)?
[INFO] [stdout]     |                  ------------                    ^^^^^^^^^^^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/translate.rs:616:8
[INFO] [stdout]     |
[INFO] [stdout] 616 |     fn string_const(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 620 |         type_ref: &Reference,
[INFO] [stdout]     |         --------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `compiler` (bin "compiler" test) due to 82 previous errors; 16 warnings emitted
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:778:50
[INFO] [stdout]     |
[INFO] [stdout] 778 |                 .string_const(&string, &layout?, &expression.type_ref)?
[INFO] [stdout]     |                  ------------                    ^^^^^^^^^^^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/translate.rs:616:8
[INFO] [stdout]     |
[INFO] [stdout] 616 |     fn string_const(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 620 |         type_ref: &Reference,
[INFO] [stdout]     |         --------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:818:52
[INFO] [stdout]     |
[INFO] [stdout] 818 |                 self.translate_if(*r#if, &layout?, &expression.type_ref)?
[INFO] [stdout]     |                      ------------                  ^^^^^^^^^^^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/translate.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn translate_if(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |         found: &Reference,
[INFO] [stdout]     |         -----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:818:52
[INFO] [stdout]     |
[INFO] [stdout] 818 |                 self.translate_if(*r#if, &layout?, &expression.type_ref)?
[INFO] [stdout]     |                      ------------                  ^^^^^^^^^^^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/translate.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn translate_if(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |         found: &Reference,
[INFO] [stdout]     |         -----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:875:61
[INFO] [stdout]     |
[INFO] [stdout] 875 |                 self.integer_const(length.into(), &layout?, &expression.type_ref)?
[INFO] [stdout]     |                      -------------                          ^^^^^^^^^^^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/translate.rs:678:8
[INFO] [stdout]     |
[INFO] [stdout] 678 |     fn integer_const(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 682 |         type_ref: &Reference,
[INFO] [stdout]     |         --------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:875:61
[INFO] [stdout]     |
[INFO] [stdout] 875 |                 self.integer_const(length.into(), &layout?, &expression.type_ref)?
[INFO] [stdout]     |                      -------------                          ^^^^^^^^^^^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/translate.rs:678:8
[INFO] [stdout]     |
[INFO] [stdout] 678 |     fn integer_const(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 682 |         type_ref: &Reference,
[INFO] [stdout]     |         --------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:880:48
[INFO] [stdout]     |
[INFO] [stdout] 880 |                     .insert_layout_initialised(&reference)?
[INFO] [stdout]     |                      ------------------------- ^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:446:12
[INFO] [stdout]     |
[INFO] [stdout] 446 |     pub fn insert_layout_initialised(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 447 |         &mut self,
[INFO] [stdout] 448 |         type_reference: &SpannedReference,
[INFO] [stdout]     |         ---------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:880:48
[INFO] [stdout]     |
[INFO] [stdout] 880 |                     .insert_layout_initialised(&reference)?
[INFO] [stdout]     |                      ------------------------- ^^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:446:12
[INFO] [stdout]     |
[INFO] [stdout] 446 |     pub fn insert_layout_initialised(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 447 |         &mut self,
[INFO] [stdout] 448 |         type_reference: &SpannedReference,
[INFO] [stdout]     |         ---------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:884:59
[INFO] [stdout]     |
[INFO] [stdout] 884 |                 self.integer_const(size.into(), &layout?, &expression.type_ref)?
[INFO] [stdout]     |                      -------------                        ^^^^^^^^^^^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/translate.rs:678:8
[INFO] [stdout]     |
[INFO] [stdout] 678 |     fn integer_const(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 682 |         type_ref: &Reference,
[INFO] [stdout]     |         --------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/translate.rs:884:59
[INFO] [stdout]     |
[INFO] [stdout] 884 |                 self.integer_const(size.into(), &layout?, &expression.type_ref)?
[INFO] [stdout]     |                      -------------                        ^^^^^^^^^^^^^^^^^^^^ expected `&Reference`, found `&SpannedReference`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&SpannedReference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/translate.rs:678:8
[INFO] [stdout]     |
[INFO] [stdout] 678 |     fn integer_const(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 682 |         type_ref: &Reference,
[INFO] [stdout]     |         --------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/main.rs:66:60
[INFO] [stdout]     |
[INFO] [stdout]  66 |             let func_ref = declarations.unresolved.resolve(&func_ref);
[INFO] [stdout]     |                                                    ------- ^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/main.rs:66:60
[INFO] [stdout]     |
[INFO] [stdout]  66 |             let func_ref = declarations.unresolved.resolve(&func_ref);
[INFO] [stdout]     |                                                    ------- ^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 |     pub fn resolve(&self, reference: &SpannedReference) -> ReferenceChain {
[INFO] [stdout]     |            ^^^^^^^        ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> compiler/src/main.rs:67:39
[INFO] [stdout]    |
[INFO] [stdout] 67 |             if self.compiled.contains(&func_ref) {
[INFO] [stdout]    |                              -------- ^^^^^^^^^ expected `&Reference`, found `&ReferenceChain`
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&declarations::Reference`
[INFO] [stdout]               found reference `&ReferenceChain`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/set.rs:767:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> compiler/src/main.rs:67:39
[INFO] [stdout]    |
[INFO] [stdout] 67 |             if self.compiled.contains(&func_ref) {
[INFO] [stdout]    |                              -------- ^^^^^^^^^ expected `&Reference`, found `&ReferenceChain`
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&declarations::Reference`
[INFO] [stdout]               found reference `&ReferenceChain`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/set.rs:767:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/main.rs:72:31
[INFO] [stdout]     |
[INFO] [stdout]  72 |                 .get_function(&func_ref)
[INFO] [stdout]     |                  ------------ ^^^^^^^^^ expected `&Reference`, found `&ReferenceChain`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&ReferenceChain`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:560:12
[INFO] [stdout]     |
[INFO] [stdout] 560 |     pub fn get_function(&mut self, reference: &Reference) -> Option<&Arc<Function>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^            ---------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/main.rs:72:31
[INFO] [stdout]     |
[INFO] [stdout]  72 |                 .get_function(&func_ref)
[INFO] [stdout]     |                  ------------ ^^^^^^^^^ expected `&Reference`, found `&ReferenceChain`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&declarations::Reference`
[INFO] [stdout]                found reference `&ReferenceChain`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:560:12
[INFO] [stdout]     |
[INFO] [stdout] 560 |     pub fn get_function(&mut self, reference: &Reference) -> Option<&Arc<Function>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^            ---------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> compiler/src/main.rs:83:34
[INFO] [stdout]    |
[INFO] [stdout] 83 |             self.compiled.insert(func_ref);
[INFO] [stdout]    |                           ------ ^^^^^^^^ expected `Reference`, found `ReferenceChain`
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/set.rs:995:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> compiler/src/main.rs:83:34
[INFO] [stdout]    |
[INFO] [stdout] 83 |             self.compiled.insert(func_ref);
[INFO] [stdout]    |                           ------ ^^^^^^^^ expected `Reference`, found `ReferenceChain`
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/a6acf0f07f0ed1c12e26dc0db3b9bf1d0504a0bb/library/std/src/collections/hash/set.rs:995:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/main.rs:188:26
[INFO] [stdout]     |
[INFO] [stdout] 188 |         .insert_function(&main_ref)
[INFO] [stdout]     |          --------------- ^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |          |
[INFO] [stdout]     |          arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:591:12
[INFO] [stdout]     |
[INFO] [stdout] 591 |     pub fn insert_function(&mut self, reference: &SpannedReference) -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^            ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> compiler/src/main.rs:188:26
[INFO] [stdout]     |
[INFO] [stdout] 188 |         .insert_function(&main_ref)
[INFO] [stdout]     |          --------------- ^^^^^^^^^ expected `&SpannedReference`, found `&Reference`
[INFO] [stdout]     |          |
[INFO] [stdout]     |          arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&SpannedReference`
[INFO] [stdout]                found reference `&declarations::Reference`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> compiler/src/declarations.rs:591:12
[INFO] [stdout]     |
[INFO] [stdout] 591 |     pub fn insert_function(&mut self, reference: &SpannedReference) -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^            ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `found`
[INFO] [stdout]    --> compiler/src/translate.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |         found: &Reference,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_found`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `found`
[INFO] [stdout]    --> compiler/src/translate.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |         found: &Reference,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_found`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0425, E0560, E0599, E0609.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0425, E0560, E0599, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3c5c9ca1a085fc9d6bc295ebf0d68e35be08e390d18aa713372eb68f2e2ecc1e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3c5c9ca1a085fc9d6bc295ebf0d68e35be08e390d18aa713372eb68f2e2ecc1e", kill_on_drop: false }`
[INFO] [stdout] 3c5c9ca1a085fc9d6bc295ebf0d68e35be08e390d18aa713372eb68f2e2ecc1e
