[INFO] cloning repository https://github.com/shadowcatzero/lang [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shadowcatzero/lang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshadowcatzero%2Flang", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshadowcatzero%2Flang'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 11ab9285f1f70dbf45139292cc81576f5384d04e [INFO] checking shadowcatzero/lang against master#e9182f195b8505c87c4bd055b9f6e114ccda0981 for pr-144098 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshadowcatzero%2Flang" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/shadowcatzero/lang [INFO] finished tweaking git repo https://github.com/shadowcatzero/lang [INFO] tweaked toml for git repo https://github.com/shadowcatzero/lang written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/shadowcatzero/lang on toolchain e9182f195b8505c87c4bd055b9f6e114ccda0981 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e9182f195b8505c87c4bd055b9f6e114ccda0981" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/shadowcatzero/lang 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" "+e9182f195b8505c87c4bd055b9f6e114ccda0981" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+e9182f195b8505c87c4bd055b9f6e114ccda0981" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ea01567781863fc87fcd0aadcfa458f9d9f3b1f54054a8f30c98883dff67e9ff [INFO] running `Command { std: "docker" "start" "-a" "ea01567781863fc87fcd0aadcfa458f9d9f3b1f54054a8f30c98883dff67e9ff", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ea01567781863fc87fcd0aadcfa458f9d9f3b1f54054a8f30c98883dff67e9ff", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ea01567781863fc87fcd0aadcfa458f9d9f3b1f54054a8f30c98883dff67e9ff", kill_on_drop: false }` [INFO] [stdout] ea01567781863fc87fcd0aadcfa458f9d9f3b1f54054a8f30c98883dff67e9ff [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+e9182f195b8505c87c4bd055b9f6e114ccda0981" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8cfa78f3522d26d6f2a3ae8f730d3f4e13f49670d0cc134045fbd5dd6d8b634e [INFO] running `Command { std: "docker" "start" "-a" "8cfa78f3522d26d6f2a3ae8f730d3f4e13f49670d0cc134045fbd5dd6d8b634e", kill_on_drop: false }` [INFO] [stderr] Checking lang v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: let chains are only allowed in Rust 2024 or later [INFO] [stdout] --> src/compiler/program.rs:119:23 [INFO] [stdout] | [INFO] [stdout] 119 | while let Some(c) = cur [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: let chains are only allowed in Rust 2024 or later [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:33:16 [INFO] [stdout] | [INFO] [stdout] 33 | if let Some(ty) = self.res_ty(f.ret) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0583]: file not found for module `error` [INFO] [stdout] --> src/ir/upper/mod.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | mod error; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: to create the module `error`, create file "src/ir/upper/error.rs" or "src/ir/upper/error/mod.rs" [INFO] [stdout] = note: if there is a `mod error` elsewhere in the crate already, import it with `use crate::...` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: let chains are only allowed in Rust 2024 or later [INFO] [stdout] --> src/parser/v3/nodes/block.rs:91:20 [INFO] [stdout] | [INFO] [stdout] 91 | && let Some(s) = self.statements.last() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: let chains are only allowed in Rust 2024 or later [INFO] [stdout] --> src/compiler/program.rs:119:23 [INFO] [stdout] | [INFO] [stdout] 119 | while let Some(c) = cur [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: let chains are only allowed in Rust 2024 or later [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:33:16 [INFO] [stdout] | [INFO] [stdout] 33 | if let Some(ty) = self.res_ty(f.ret) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0583]: file not found for module `error` [INFO] [stdout] --> src/ir/upper/mod.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | mod error; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: to create the module `error`, create file "src/ir/upper/error.rs" or "src/ir/upper/error/mod.rs" [INFO] [stdout] = note: if there is a `mod error` elsewhere in the crate already, import it with `use crate::...` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: let chains are only allowed in Rust 2024 or later [INFO] [stdout] --> src/parser/v3/nodes/block.rs:91:20 [INFO] [stdout] | [INFO] [stdout] 91 | && let Some(s) = self.statements.last() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `crate::ir::MemberPath` [INFO] [stdout] --> src/parser/v3/lower/func.rs:6:76 [INFO] [stdout] | [INFO] [stdout] 6 | FnID, IdentID, IdentStatus, MemRes, Member, MemberID, MemberIdent, MemberPath, MemberTy, [INFO] [stdout] | ^^^^^^^^^^ no `MemberPath` in `ir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `crate::ir::MemberPath` [INFO] [stdout] --> src/parser/v3/lower/ty.rs:2:34 [INFO] [stdout] | [INFO] [stdout] 2 | ir::{GenericID, MemberIdent, MemberPath, Type, TypeID, UGeneric, UProgram}, [INFO] [stdout] | ^^^^^^^^^^ no `MemberPath` in `ir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `crate::ir::MemberPath` [INFO] [stdout] --> src/parser/v3/lower/func.rs:6:76 [INFO] [stdout] | [INFO] [stdout] 6 | FnID, IdentID, IdentStatus, MemRes, Member, MemberID, MemberIdent, MemberPath, MemberTy, [INFO] [stdout] | ^^^^^^^^^^ no `MemberPath` in `ir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `crate::ir::MemberPath` [INFO] [stdout] --> src/parser/v3/lower/ty.rs:2:34 [INFO] [stdout] | [INFO] [stdout] 2 | ir::{GenericID, MemberIdent, MemberPath, Type, TypeID, UGeneric, UProgram}, [INFO] [stdout] | ^^^^^^^^^^ no `MemberPath` in `ir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:89:55 [INFO] [stdout] | [INFO] [stdout] 89 | let (dstty, dstid) = data.res_var_ty(dst, ctx)?; [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | res |= data.match_types(dstty, srcty, dst); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:51 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:106:47 [INFO] [stdout] | [INFO] [stdout] 106 | let si = data.res::(dst, ctx)?; [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:21 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:135:53 [INFO] [stdout] | [INFO] [stdout] 135 | if let Some(ty) = data.res_var_ty(cond, ctx) { [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:146:30 [INFO] [stdout] | [INFO] [stdout] 146 | ret: ctx.ret, [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:147:36 [INFO] [stdout] | [INFO] [stdout] 147 | breakable: ctx.breakable, [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:158:30 [INFO] [stdout] | [INFO] [stdout] 158 | ret: ctx.ret, [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:166:17 [INFO] [stdout] | [INFO] [stdout] 166 | if !ctx.breakable { [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:169:29 [INFO] [stdout] | [INFO] [stdout] 169 | origin: ctx.i.origin, [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:174:17 [INFO] [stdout] | [INFO] [stdout] 174 | if !ctx.breakable { [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:177:29 [INFO] [stdout] | [INFO] [stdout] 177 | origin: ctx.i.origin, [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected value, found enum `MemberID` [INFO] [stdout] --> src/parser/v3/lower/expr.rs:185:41 [INFO] [stdout] | [INFO] [stdout] 185 | ... id: MemberID [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the enum is defined here [INFO] [stdout] --> src/ir/upper/kind.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | / pub enum MemberID { [INFO] [stdout] 97 | | Fn(FnID), [INFO] [stdout] 98 | | Struct(StructID), [INFO] [stdout] 99 | | Var(VarID), [INFO] [stdout] 100 | | Module(ModID), [INFO] [stdout] 101 | | Type(TypeDef), [INFO] [stdout] 102 | | } [INFO] [stdout] | |_^ [INFO] [stdout] help: the following enum variants are available [INFO] [stdout] | [INFO] [stdout] 185 - id: MemberID [INFO] [stdout] 185 + id: (parser::v3::lower::func::MemberID::Fn(/* fields */)) [INFO] [stdout] | [INFO] [stdout] 185 - id: MemberID [INFO] [stdout] 185 + id: (parser::v3::lower::func::MemberID::Module(/* fields */)) [INFO] [stdout] | [INFO] [stdout] 185 - id: MemberID [INFO] [stdout] 185 + id: (parser::v3::lower::func::MemberID::Struct(/* fields */)) [INFO] [stdout] | [INFO] [stdout] 185 - id: MemberID [INFO] [stdout] 185 + id: (parser::v3::lower::func::MemberID::Type(/* fields */)) [INFO] [stdout] | [INFO] [stdout] = and 1 other candidate [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error::*` [INFO] [stdout] --> src/ir/upper/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use error::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ir::arch::riscv64::RegRef` [INFO] [stdout] --> src/ir/lower/func.rs:2:41 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::{compiler::arch::riscv::Reg, ir::arch::riscv64::RegRef}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UIdent` [INFO] [stdout] --> src/parser/v3/lower/block.rs:2:25 [INFO] [stdout] | [INFO] [stdout] 2 | ir::{IdentID, Type, UIdent, UInstruction, UVar}, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Keyword`, `Node`, `PAsmBlock`, `PIdent`, `PType`, `PVarDef`, `Parsable`, `ParseResult`, `ParserCtx`, `Symbol`, and `util::parse_list` [INFO] [stdout] --> src/parser/v3/nodes/asm_fn.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | util::parse_list, PAsmBlock, PIdent, Keyword, Node, Parsable, ParseResult, ParserCtx, Symbol, PType, PVarDef, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^ ^^^^^^^ ^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CompilerMsg` and `Token` [INFO] [stdout] --> src/parser/v3/nodes/def.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | CompilerMsg, Node, PExpr, PIdent, PType, Parsable, ParseResult, ParserCtx, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 5 | Symbol, Token, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `asm_fn::*` [INFO] [stdout] --> src/parser/v3/nodes/mod.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub use asm_fn::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `trai::*` [INFO] [stdout] --> src/parser/v3/nodes/mod.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub use trai::*; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:89:55 [INFO] [stdout] | [INFO] [stdout] 89 | let (dstty, dstid) = data.res_var_ty(dst, ctx)?; [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | res |= data.match_types(dstty, srcty, dst); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `let_chains` has been stable since 1.88.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | #![feature(let_chains)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:51 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:106:47 [INFO] [stdout] | [INFO] [stdout] 106 | let si = data.res::(dst, ctx)?; [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `res` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:21 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:135:53 [INFO] [stdout] | [INFO] [stdout] 135 | if let Some(ty) = data.res_var_ty(cond, ctx) { [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:146:30 [INFO] [stdout] | [INFO] [stdout] 146 | ret: ctx.ret, [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:147:36 [INFO] [stdout] | [INFO] [stdout] 147 | breakable: ctx.breakable, [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:158:30 [INFO] [stdout] | [INFO] [stdout] 158 | ret: ctx.ret, [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:166:17 [INFO] [stdout] | [INFO] [stdout] 166 | if !ctx.breakable { [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:169:29 [INFO] [stdout] | [INFO] [stdout] 169 | origin: ctx.i.origin, [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:174:17 [INFO] [stdout] | [INFO] [stdout] 174 | if !ctx.breakable { [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:177:29 [INFO] [stdout] | [INFO] [stdout] 177 | origin: ctx.i.origin, [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected value, found enum `MemberID` [INFO] [stdout] --> src/parser/v3/lower/expr.rs:185:41 [INFO] [stdout] | [INFO] [stdout] 185 | ... id: MemberID [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the enum is defined here [INFO] [stdout] --> src/ir/upper/kind.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | / pub enum MemberID { [INFO] [stdout] 97 | | Fn(FnID), [INFO] [stdout] 98 | | Struct(StructID), [INFO] [stdout] 99 | | Var(VarID), [INFO] [stdout] 100 | | Module(ModID), [INFO] [stdout] 101 | | Type(TypeDef), [INFO] [stdout] 102 | | } [INFO] [stdout] | |_^ [INFO] [stdout] help: the following enum variants are available [INFO] [stdout] | [INFO] [stdout] 185 - id: MemberID [INFO] [stdout] 185 + id: (parser::v3::lower::func::MemberID::Fn(/* fields */)) [INFO] [stdout] | [INFO] [stdout] 185 - id: MemberID [INFO] [stdout] 185 + id: (parser::v3::lower::func::MemberID::Module(/* fields */)) [INFO] [stdout] | [INFO] [stdout] 185 - id: MemberID [INFO] [stdout] 185 + id: (parser::v3::lower::func::MemberID::Struct(/* fields */)) [INFO] [stdout] | [INFO] [stdout] 185 - id: MemberID [INFO] [stdout] 185 + id: (parser::v3::lower::func::MemberID::Type(/* fields */)) [INFO] [stdout] | [INFO] [stdout] = and 1 other candidate [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error::*` [INFO] [stdout] --> src/ir/upper/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use error::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ir::arch::riscv64::RegRef` [INFO] [stdout] --> src/ir/lower/func.rs:2:41 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::{compiler::arch::riscv::Reg, ir::arch::riscv64::RegRef}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UIdent` [INFO] [stdout] --> src/parser/v3/lower/block.rs:2:25 [INFO] [stdout] | [INFO] [stdout] 2 | ir::{IdentID, Type, UIdent, UInstruction, UVar}, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Keyword`, `Node`, `PAsmBlock`, `PIdent`, `PType`, `PVarDef`, `Parsable`, `ParseResult`, `ParserCtx`, `Symbol`, and `util::parse_list` [INFO] [stdout] --> src/parser/v3/nodes/asm_fn.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | util::parse_list, PAsmBlock, PIdent, Keyword, Node, Parsable, ParseResult, ParserCtx, Symbol, PType, PVarDef, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^ ^^^^^^^ ^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CompilerMsg` and `Token` [INFO] [stdout] --> src/parser/v3/nodes/def.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | CompilerMsg, Node, PExpr, PIdent, PType, Parsable, ParseResult, ParserCtx, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 5 | Symbol, Token, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `asm_fn::*` [INFO] [stdout] --> src/parser/v3/nodes/mod.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub use asm_fn::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `trai::*` [INFO] [stdout] --> src/parser/v3/nodes/mod.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub use trai::*; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `let_chains` has been stable since 1.88.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | #![feature(let_chains)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/program.rs:87:41 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn res_ty(&self, i: IdentID) -> Option { [INFO] [stdout] | ------ ^^^^^^^^^^^^^^ expected `Option>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0271]: expected `{closure@program.rs:104:73}` to return `ID`, but it returns `URes>` [INFO] [stdout] --> src/ir/upper/program.rs:104:77 [INFO] [stdout] | [INFO] [stdout] 104 | &self.type_list_str(self.fns[ty.id].args.iter().map(|v| self.vars[v].ty)), [INFO] [stdout] | ------------- --- ^^^^^^^^^^^^^^^ expected `ID`, found `URes>` [INFO] [stdout] | | | [INFO] [stdout] | | this closure [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found enum `URes>` [INFO] [stdout] = note: required for `Map>, {closure@program.rs:104:73}>` to implement `Iterator` [INFO] [stdout] note: required by a bound in `upper::program::UProgram::type_list_str` [INFO] [stdout] --> src/ir/upper/program.rs:121:57 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn type_list_str(&self, mut args: impl Iterator) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ required by this bound in `UProgram::type_list_str` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/lang-7cf4bf3001996c24.long-type-2004493694424215009.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `URes>: upper::program::Typed` is not satisfied [INFO] [stdout] --> src/ir/upper/program.rs:105:37 [INFO] [stdout] | [INFO] [stdout] 105 | &self.type_name(self.fns[ty.id].ret) [INFO] [stdout] | --------- ^^^^^^^^^^^^^^^^^^^ the trait `upper::program::Typed` is not implemented for `URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `upper::program::Typed`: [INFO] [stdout] &Box [INFO] [stdout] &id::ID [INFO] [stdout] &upper::ty::Type [INFO] [stdout] id::ID [INFO] [stdout] note: required by a bound in `upper::program::UProgram::type_name` [INFO] [stdout] --> src/ir/upper/program.rs:91:38 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn type_name(&self, ty: impl Typed) -> String { [INFO] [stdout] | ^^^^^ required by this bound in `UProgram::type_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `ty` found for reference `&kind::UVar` in the current scope [INFO] [stdout] --> src/ir/upper/resolve/error.rs:119:31 [INFO] [stdout] | [INFO] [stdout] 119 | if let Some(ty) = var.ty() { [INFO] [stdout] | ^^-- help: remove the arguments [INFO] [stdout] | | [INFO] [stdout] | field, not a method [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 traits define an item `ty`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `Typable` [INFO] [stdout] candidate #2: `resolve::ResKind` [INFO] [stdout] candidate #3: `upper::program::Typed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instantiate.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 19 | ty: VarTy::Res(ty), [INFO] [stdout] | ^^^^^^^^^^^^^^ expected `URes>`, found `VarTy` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found enum `kind::VarTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instantiate.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | ty: VarTy::Res(ty), [INFO] [stdout] | ^^^^^^^^^^^^^^ expected `URes>`, found `VarTy` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found enum `kind::VarTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:50:17 [INFO] [stdout] | [INFO] [stdout] 50 | for &a in args { [INFO] [stdout] | ^^ ---- this is an iterator with items of type `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | types differ in mutability [INFO] [stdout] | [INFO] [stdout] = note: expected mutable reference `&mut URes>` [INFO] [stdout] found reference `&_` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:53:30 [INFO] [stdout] | [INFO] [stdout] 53 | data.res::(dst); [INFO] [stdout] | ----------- ^^^ expected `ID`, found `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn res(&mut self, i: IdentID) -> Result { [INFO] [stdout] | ^^^ ---------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `constraints` on type `resolve::Sources<'a>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:58:32 [INFO] [stdout] | [INFO] [stdout] 58 | data.s.constraints.push(UResEvent::AssignVVI { dst, src }); [INFO] [stdout] | ^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `idents`, `vars`, `fns`, `structs`, `generics` ... and 2 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant named `AssignVVI` found for enum `UResEvent` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:58:60 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum UResEvent { [INFO] [stdout] | ------------------ variant `AssignVVI` not found here [INFO] [stdout] ... [INFO] [stdout] 58 | data.s.constraints.push(UResEvent::AssignVVI { dst, src }); [INFO] [stdout] | ^^^^^^^^^ variant not found in `UResEvent` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:25 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ^^^^^^^^^^^-------------- help: remove the unnecessary generics [INFO] [stdout] | | [INFO] [stdout] | expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: method defined here, with 0 generic parameters [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `impl Trait` cannot be explicitly specified as a generic argument [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `kind::UVar: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:39 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `kind::UVar` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `kind::UVar` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&mut URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:61 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:25 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: expected `UVar`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:51 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: expected `UVar`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:56 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:65:42 [INFO] [stdout] | [INFO] [stdout] 65 | UInstruction::Mv { dst, src } => { [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 66 | | res |= data.match_types::(dst, src, src); [INFO] [stdout] 67 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:69:53 [INFO] [stdout] | [INFO] [stdout] 69 | let dstty = &data.types[data.res_var_ty(dst)?]; [INFO] [stdout] | ---------- ^^^ expected `ID`, found `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn res_var_ty(&mut self, i: IdentID) -> Result { [INFO] [stdout] | ^^^^^^^^^^ ---------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:25 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ^^^^^^^^^^^-------------- help: remove the unnecessary generics [INFO] [stdout] | | [INFO] [stdout] | expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: method defined here, with 0 generic parameters [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `impl Trait` cannot be explicitly specified as a generic argument [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `upper::ty::Type: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:39 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `upper::ty::Type` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `upper::ty::Type` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `kind::UVar: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:45 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `kind::UVar` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `kind::UVar` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&mut URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:65 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:25 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: expected `Type`, found `ID` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:51 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] = note: expected enum `upper::ty::Type` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] note: expected `UVar`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:60 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] help: try wrapping the expression in a variant of `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(ir::upper::ty::Type::Ref(dest_ty), src, src); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] 73 | res |= data.match_types::(ir::upper::ty::Type::Slice(dest_ty), src, src); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] 73 | res |= data.match_types::(ir::upper::ty::Type::Deref(dest_ty), src, src); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] 73 | res |= data.match_types::(ir::upper::ty::Type::Ptr(dest_ty), src, src); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:68:43 [INFO] [stdout] | [INFO] [stdout] 68 | UInstruction::Ref { dst, src } => { [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 69 | | let dstty = &data.types[data.res_var_ty(dst)?]; [INFO] [stdout] 70 | | let &Type::Ref(dest_ty) = dstty else { [INFO] [stdout] 71 | | compiler_error() [INFO] [stdout] 72 | | }; [INFO] [stdout] 73 | | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] 74 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:76:41 [INFO] [stdout] | [INFO] [stdout] 76 | let srcid = data.res_var_ty(src)?; [INFO] [stdout] | ---------- ^^^ expected `ID`, found `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn res_var_ty(&mut self, i: IdentID) -> Result { [INFO] [stdout] | ^^^^^^^^^^ ---------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | let &Type::Ref(src_ty) = data.types[srcid] else { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ----------------- this expression has type `upper::ty::Type` [INFO] [stdout] | | [INFO] [stdout] | expected `Type`, found `&_` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `upper::ty::Type` [INFO] [stdout] found reference `&_` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `origin` found for mutable reference `&mut URes>` in the current scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:78:34 [INFO] [stdout] | [INFO] [stdout] 78 | let origin = src.origin(data); [INFO] [stdout] | ^^^^^^ method not found in `&mut URes>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `resolve::HasOrigin` defines an item `origin`, perhaps you need to implement it [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:285:1 [INFO] [stdout] | [INFO] [stdout] 285 | trait HasOrigin { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:80:24 [INFO] [stdout] | [INFO] [stdout] 45 | ) -> ResolveRes { [INFO] [stdout] | ---------- expected `resolve::ResolveRes` because of return type [INFO] [stdout] ... [INFO] [stdout] 80 | return None; [INFO] [stdout] | ^^^^ expected `ResolveRes`, found `Option<_>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `resolve::ResolveRes` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:25 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ^^^^^^^^^^^-------------- help: remove the unnecessary generics [INFO] [stdout] | | [INFO] [stdout] | expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: method defined here, with 0 generic parameters [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `impl Trait` cannot be explicitly specified as a generic argument [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `kind::UVar: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:39 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `kind::UVar` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `kind::UVar` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `upper::ty::Type: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:45 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `upper::ty::Type` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `upper::ty::Type` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&mut URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:64 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:25 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: expected `UVar`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:51 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: expected `Type`, found `ID` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:56 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = note: expected enum `upper::ty::Type` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] help: try wrapping the expression in a variant of `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, ir::upper::ty::Type::Ref(src_ty), src); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] 82 | res |= data.match_types::(dst, ir::upper::ty::Type::Slice(src_ty), src); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] 82 | res |= data.match_types::(dst, ir::upper::ty::Type::Deref(src_ty), src); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] 82 | res |= data.match_types::(dst, ir::upper::ty::Type::Ptr(src_ty), src); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:75:45 [INFO] [stdout] | [INFO] [stdout] 75 | UInstruction::Deref { dst, src } => { [INFO] [stdout] | _____________________________________________^ [INFO] [stdout] 76 | | let srcid = data.res_var_ty(src)?; [INFO] [stdout] 77 | | let &Type::Ref(src_ty) = data.types[srcid] else { [INFO] [stdout] 78 | | let origin = src.origin(data); [INFO] [stdout] ... | [INFO] [stdout] 82 | | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] 83 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:25 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ^^^^^^^^^^^-------------- help: remove the unnecessary generics [INFO] [stdout] | | [INFO] [stdout] | expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: method defined here, with 0 generic parameters [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `impl Trait` cannot be explicitly specified as a generic argument [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/program.rs:87:41 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn res_ty(&self, i: IdentID) -> Option { [INFO] [stdout] | ------ ^^^^^^^^^^^^^^ expected `Option>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0271]: expected `{closure@program.rs:104:73}` to return `ID`, but it returns `URes>` [INFO] [stdout] --> src/ir/upper/program.rs:104:77 [INFO] [stdout] | [INFO] [stdout] 104 | &self.type_list_str(self.fns[ty.id].args.iter().map(|v| self.vars[v].ty)), [INFO] [stdout] | ------------- --- ^^^^^^^^^^^^^^^ expected `ID`, found `URes>` [INFO] [stdout] | | | [INFO] [stdout] | | this closure [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found enum `URes>` [INFO] [stdout] = note: required for `Map>, {closure@program.rs:104:73}>` to implement `Iterator` [INFO] [stdout] note: required by a bound in `upper::program::UProgram::type_list_str` [INFO] [stdout] --> src/ir/upper/program.rs:121:57 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn type_list_str(&self, mut args: impl Iterator) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ required by this bound in `UProgram::type_list_str` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/lang-d0e25101f2143346.long-type-15431638820322492742.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `URes>: upper::program::Typed` is not satisfied [INFO] [stdout] --> src/ir/upper/program.rs:105:37 [INFO] [stdout] | [INFO] [stdout] 105 | &self.type_name(self.fns[ty.id].ret) [INFO] [stdout] | --------- ^^^^^^^^^^^^^^^^^^^ the trait `upper::program::Typed` is not implemented for `URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `upper::program::Typed`: [INFO] [stdout] &Box [INFO] [stdout] &id::ID [INFO] [stdout] &upper::ty::Type [INFO] [stdout] id::ID [INFO] [stdout] note: required by a bound in `upper::program::UProgram::type_name` [INFO] [stdout] --> src/ir/upper/program.rs:91:38 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn type_name(&self, ty: impl Typed) -> String { [INFO] [stdout] | ^^^^^ required by this bound in `UProgram::type_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `kind::UVar: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:39 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `kind::UVar` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `kind::UVar` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `upper::ty::Type: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:45 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `upper::ty::Type` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `upper::ty::Type` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&mut URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:25 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: expected `UVar`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:51 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: expected `Type`, found `ID` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:56 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: expected enum `upper::ty::Type` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] help: try wrapping the expression in a variant of `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, ir::upper::ty::Type::Ref(srcid), dst); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] 86 | res |= data.match_types::(dst, ir::upper::ty::Type::Slice(srcid), dst); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] 86 | res |= data.match_types::(dst, ir::upper::ty::Type::Deref(srcid), dst); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] 86 | res |= data.match_types::(dst, ir::upper::ty::Type::Ptr(srcid), dst); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:84:48 [INFO] [stdout] | [INFO] [stdout] 84 | UInstruction::LoadData { dst, src } => { [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 85 | | let srcid = src.type_id(&data.s); [INFO] [stdout] 86 | | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] 87 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:89:39 [INFO] [stdout] | [INFO] [stdout] 89 | let (dstty, dstid) = data.res_var_ty(dst, ctx)?; [INFO] [stdout] | ^^^^^^^^^^ --- unexpected argument #2 [INFO] [stdout] | [INFO] [stdout] note: expected `ID`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:89:50 [INFO] [stdout] | [INFO] [stdout] 89 | let (dstty, dstid) = data.res_var_ty(dst, ctx)?; [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn res_var_ty(&mut self, i: IdentID) -> Result { [INFO] [stdout] | ^^^^^^^^^^ ---------- [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 89 - let (dstty, dstid) = data.res_var_ty(dst, ctx)?; [INFO] [stdout] 89 + let (dstty, dstid) = data.res_var_ty(/* id::ID */)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:89:17 [INFO] [stdout] | [INFO] [stdout] 89 | let (dstty, dstid) = data.res_var_ty(dst, ctx)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ -------------------------- this expression has type `id::ID` [INFO] [stdout] | | [INFO] [stdout] | expected `ID`, found `(_, _)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found tuple `(_, _)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&mut URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:97:51 [INFO] [stdout] | [INFO] [stdout] 97 | res |= data.match_types(dstty, srcty, dst); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:88:49 [INFO] [stdout] | [INFO] [stdout] 88 | UInstruction::LoadSlice { dst, src } => { [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 89 | | let (dstty, dstid) = data.res_var_ty(dst, ctx)?; [INFO] [stdout] 90 | | let &Type::Slice(dstty) = dstty else { [INFO] [stdout] 91 | | compiler_error() [INFO] [stdout] ... | [INFO] [stdout] 97 | | res |= data.match_types(dstty, srcty, dst); [INFO] [stdout] 98 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:99:58 [INFO] [stdout] | [INFO] [stdout] 99 | UInstruction::AsmBlock { instructions, args } => { [INFO] [stdout] | __________________________________________________________^ [INFO] [stdout] 100 | | // TODO [INFO] [stdout] 101 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:25 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ^^^^^^^^^^^-------------- help: remove the unnecessary generics [INFO] [stdout] | | [INFO] [stdout] | expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: method defined here, with 0 generic parameters [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `impl Trait` cannot be explicitly specified as a generic argument [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `upper::ty::Type: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:39 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `upper::ty::Type` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `upper::ty::Type` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `kind::UVar: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:45 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `kind::UVar` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `kind::UVar` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&mut URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:65 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:60 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ------------------------- ^^^ expected `UVar`, found `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:102:38 [INFO] [stdout] | [INFO] [stdout] 102 | UInstruction::Ret { src } => { [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 103 | | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] 104 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:106:27 [INFO] [stdout] | [INFO] [stdout] 106 | let si = data.res::(dst, ctx)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ --- unexpected argument #2 [INFO] [stdout] | [INFO] [stdout] note: expected `ID`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:106:42 [INFO] [stdout] | [INFO] [stdout] 106 | let si = data.res::(dst, ctx)?; [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn res(&mut self, i: IdentID) -> Result { [INFO] [stdout] | ^^^ ---------- [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 106 - let si = data.res::(dst, ctx)?; [INFO] [stdout] 106 + let si = data.res::(/* id::ID */)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:33 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ^^^^^^^^^^^-------------- help: remove the unnecessary generics [INFO] [stdout] | | [INFO] [stdout] | expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: method defined here, with 0 generic parameters [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `impl Trait` cannot be explicitly specified as a generic argument [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `upper::ty::Type: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:47 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `upper::ty::Type` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `upper::ty::Type` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `kind::UVar: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:53 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `kind::UVar` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `kind::UVar` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:74 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `ty` found for reference `&kind::UVar` in the current scope [INFO] [stdout] --> src/ir/upper/resolve/error.rs:119:31 [INFO] [stdout] | [INFO] [stdout] 119 | if let Some(ty) = var.ty() { [INFO] [stdout] | ^^-- help: remove the arguments [INFO] [stdout] | | [INFO] [stdout] | field, not a method [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 traits define an item `ty`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `Typable` [INFO] [stdout] candidate #2: `resolve::ResKind` [INFO] [stdout] candidate #3: `upper::program::Typed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:33 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: expected `Type`, found `URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:59 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: expected enum `upper::ty::Type` [INFO] [stdout] found enum `URes>` [INFO] [stdout] note: expected `UVar`, found `&URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:69 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found reference `&URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `origin` found for mutable reference `&mut URes>` in the current scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:115:38 [INFO] [stdout] | [INFO] [stdout] 115 | let origin = dst.origin(data); [INFO] [stdout] | ^^^^^^ method not found in `&mut URes>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `resolve::HasOrigin` defines an item `origin`, perhaps you need to implement it [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:285:1 [INFO] [stdout] | [INFO] [stdout] 285 | trait HasOrigin { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instantiate.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 19 | ty: VarTy::Res(ty), [INFO] [stdout] | ^^^^^^^^^^^^^^ expected `URes>`, found `VarTy` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found enum `kind::VarTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `origin` found for mutable reference `&mut URes>` in the current scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:125:38 [INFO] [stdout] | [INFO] [stdout] 125 | let origin = dst.origin(data); [INFO] [stdout] | ^^^^^^ method not found in `&mut URes>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `resolve::HasOrigin` defines an item `origin`, perhaps you need to implement it [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:285:1 [INFO] [stdout] | [INFO] [stdout] 285 | trait HasOrigin { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 45 | ) -> ResolveRes { [INFO] [stdout] | ---------- expected `resolve::ResolveRes` because of return type [INFO] [stdout] ... [INFO] [stdout] 123 | / for (name, _) in fields { [INFO] [stdout] 124 | | if !used.contains(name) { [INFO] [stdout] 125 | | let origin = dst.origin(data); [INFO] [stdout] 126 | | data.errs.push(ResErr::UnknownStructField { [INFO] [stdout] ... | [INFO] [stdout] 132 | | } [INFO] [stdout] | |_____________^ expected `ResolveRes`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: `for` loops evaluate to unit type `()` [INFO] [stdout] help: consider returning a value here [INFO] [stdout] | [INFO] [stdout] 132 ~ } [INFO] [stdout] 133 + /* `resolve::ResolveRes` value */ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instantiate.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | ty: VarTy::Res(ty), [INFO] [stdout] | ^^^^^^^^^^^^^^ expected `URes>`, found `VarTy` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found enum `kind::VarTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:135:36 [INFO] [stdout] | [INFO] [stdout] 135 | if let Some(ty) = data.res_var_ty(cond, ctx) { [INFO] [stdout] | ^^^^^^^^^^ --- unexpected argument #2 [INFO] [stdout] | [INFO] [stdout] note: expected `ID`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:135:47 [INFO] [stdout] | [INFO] [stdout] 135 | if let Some(ty) = data.res_var_ty(cond, ctx) { [INFO] [stdout] | ^^^^ [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn res_var_ty(&mut self, i: IdentID) -> Result { [INFO] [stdout] | ^^^^^^^^^^ ---------- [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 135 - if let Some(ty) = data.res_var_ty(cond, ctx) { [INFO] [stdout] 135 + if let Some(ty) = data.res_var_ty(/* id::ID */) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:135:20 [INFO] [stdout] | [INFO] [stdout] 135 | if let Some(ty) = data.res_var_ty(cond, ctx) { [INFO] [stdout] | ^^^^^^^^ -------------------------- this expression has type `Result, resolve::ResolveRes>` [INFO] [stdout] | | [INFO] [stdout] | expected `Result, ResolveRes>`, found `Option<_>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result, resolve::ResolveRes>` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:50:17 [INFO] [stdout] | [INFO] [stdout] 50 | for &a in args { [INFO] [stdout] | ^^ ---- this is an iterator with items of type `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | types differ in mutability [INFO] [stdout] | [INFO] [stdout] = note: expected mutable reference `&mut URes>` [INFO] [stdout] found reference `&_` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `origin` found for mutable reference `&mut URes>` in the current scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:138:39 [INFO] [stdout] | [INFO] [stdout] 138 | let origin = cond.origin(data); [INFO] [stdout] | ^^^^^^ method not found in `&mut URes>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `resolve::HasOrigin` defines an item `origin`, perhaps you need to implement it [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:285:1 [INFO] [stdout] | [INFO] [stdout] 285 | trait HasOrigin { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:148:25 [INFO] [stdout] | [INFO] [stdout] 148 | i, [INFO] [stdout] | ^ expected `ID`, found `&mut ID` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID<_>` [INFO] [stdout] found mutable reference `&mut id::ID<_>` [INFO] [stdout] help: consider dereferencing the borrow [INFO] [stdout] | [INFO] [stdout] 148 | i: *i, [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:143:17 [INFO] [stdout] | [INFO] [stdout] 143 | resolve_instr( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 144 | / data, [INFO] [stdout] 145 | |/ ResolveCtx { [INFO] [stdout] 146 | || ret: ctx.ret, [INFO] [stdout] 147 | || breakable: ctx.breakable, [INFO] [stdout] 148 | || i, [INFO] [stdout] 149 | || }, [INFO] [stdout] | || - [INFO] [stdout] | ||_____________________| [INFO] [stdout] | |_____________________two arguments of type `(id::ID, id::ID)` and `&mut Vec` are missing [INFO] [stdout] | unexpected argument #2 of type `ResolveCtx` [INFO] [stdout] | [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn resolve_instr<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 42 | (fi, ii): (FnID, InstrID), [INFO] [stdout] | ------------------------- [INFO] [stdout] 43 | instrs: &mut Vec, [INFO] [stdout] | ---------------------------- [INFO] [stdout] help: did you mean [INFO] [stdout] | [INFO] [stdout] 143 - resolve_instr( [INFO] [stdout] 144 - data, [INFO] [stdout] 145 - ResolveCtx { [INFO] [stdout] 146 - ret: ctx.ret, [INFO] [stdout] 147 - breakable: ctx.breakable, [INFO] [stdout] 148 - i, [INFO] [stdout] 149 - }, [INFO] [stdout] 150 - ); [INFO] [stdout] 143 + resolve_instr(/* (id::ID, id::ID) */, /* &mut Vec */, data); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 45 | ) -> ResolveRes { [INFO] [stdout] | ---------- expected `resolve::ResolveRes` because of return type [INFO] [stdout] ... [INFO] [stdout] 142 | / for i in body { [INFO] [stdout] 143 | | resolve_instr( [INFO] [stdout] 144 | | data, [INFO] [stdout] 145 | | ResolveCtx { [INFO] [stdout] ... | [INFO] [stdout] 150 | | ); [INFO] [stdout] 151 | | } [INFO] [stdout] | |_____________^ expected `ResolveRes`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: `for` loops evaluate to unit type `()` [INFO] [stdout] help: consider returning a value here [INFO] [stdout] | [INFO] [stdout] 151 ~ } [INFO] [stdout] 152 + /* `resolve::ResolveRes` value */ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:160:25 [INFO] [stdout] | [INFO] [stdout] 160 | i, [INFO] [stdout] | ^ expected `ID`, found `&mut ID` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID<_>` [INFO] [stdout] found mutable reference `&mut id::ID<_>` [INFO] [stdout] help: consider dereferencing the borrow [INFO] [stdout] | [INFO] [stdout] 160 | i: *i, [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:155:17 [INFO] [stdout] | [INFO] [stdout] 155 | resolve_instr( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 156 | / data, [INFO] [stdout] 157 | |/ ResolveCtx { [INFO] [stdout] 158 | || ret: ctx.ret, [INFO] [stdout] 159 | || breakable: true, [INFO] [stdout] 160 | || i, [INFO] [stdout] 161 | || }, [INFO] [stdout] | || - [INFO] [stdout] | ||_____________________| [INFO] [stdout] | |_____________________two arguments of type `(id::ID, id::ID)` and `&mut Vec` are missing [INFO] [stdout] | unexpected argument #2 of type `ResolveCtx` [INFO] [stdout] | [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn resolve_instr<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 42 | (fi, ii): (FnID, InstrID), [INFO] [stdout] | ------------------------- [INFO] [stdout] 43 | instrs: &mut Vec, [INFO] [stdout] | ---------------------------- [INFO] [stdout] help: did you mean [INFO] [stdout] | [INFO] [stdout] 155 - resolve_instr( [INFO] [stdout] 156 - data, [INFO] [stdout] 157 - ResolveCtx { [INFO] [stdout] 158 - ret: ctx.ret, [INFO] [stdout] 159 - breakable: true, [INFO] [stdout] 160 - i, [INFO] [stdout] 161 - }, [INFO] [stdout] 162 - ); [INFO] [stdout] 155 + resolve_instr(/* (id::ID, id::ID) */, /* &mut Vec */, data); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 45 | ) -> ResolveRes { [INFO] [stdout] | ---------- expected `resolve::ResolveRes` because of return type [INFO] [stdout] ... [INFO] [stdout] 154 | / for i in body { [INFO] [stdout] 155 | | resolve_instr( [INFO] [stdout] 156 | | data, [INFO] [stdout] 157 | | ResolveCtx { [INFO] [stdout] ... | [INFO] [stdout] 162 | | ); [INFO] [stdout] 163 | | } [INFO] [stdout] | |_____________^ expected `ResolveRes`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: `for` loops evaluate to unit type `()` [INFO] [stdout] help: consider returning a value here [INFO] [stdout] | [INFO] [stdout] 163 ~ } [INFO] [stdout] 164 + /* `resolve::ResolveRes` value */ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:166:31 [INFO] [stdout] | [INFO] [stdout] 166 | if !ctx.breakable { [INFO] [stdout] | _______________________________^ [INFO] [stdout] 167 | | data.errs.push(ResErr::BadControlFlow { [INFO] [stdout] 168 | | op: ControlFlowOp::Break, [INFO] [stdout] 169 | | origin: ctx.i.origin, [INFO] [stdout] 170 | | }); [INFO] [stdout] 171 | | } [INFO] [stdout] | |_____________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:174:31 [INFO] [stdout] | [INFO] [stdout] 174 | if !ctx.breakable { [INFO] [stdout] | _______________________________^ [INFO] [stdout] 175 | | data.errs.push(ResErr::BadControlFlow { [INFO] [stdout] 176 | | op: ControlFlowOp::Continue, [INFO] [stdout] 177 | | origin: ctx.i.origin, [INFO] [stdout] 178 | | }); [INFO] [stdout] 179 | | } [INFO] [stdout] | |_____________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:53:30 [INFO] [stdout] | [INFO] [stdout] 53 | data.res::(dst); [INFO] [stdout] | ----------- ^^^ expected `ID`, found `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn res(&mut self, i: IdentID) -> Result { [INFO] [stdout] | ^^^ ---------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 141 | match s.vars[self].ty { [INFO] [stdout] | --------------- this expression has type `URes>` [INFO] [stdout] 142 | VarTy::Ident(id) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `URes>`, found `VarTy` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found enum `kind::VarTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `constraints` on type `resolve::Sources<'a>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:58:32 [INFO] [stdout] | [INFO] [stdout] 58 | data.s.constraints.push(UResEvent::AssignVVI { dst, src }); [INFO] [stdout] | ^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `idents`, `vars`, `fns`, `structs`, `generics` ... and 2 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 141 | match s.vars[self].ty { [INFO] [stdout] | --------------- this expression has type `URes>` [INFO] [stdout] 142 | VarTy::Ident(id) => todo!(), [INFO] [stdout] 143 | VarTy::Res(id) => Ok(id), [INFO] [stdout] | ^^^^^^^^^^^^^^ expected `URes>`, found `VarTy` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found enum `kind::VarTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant named `AssignVVI` found for enum `UResEvent` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:58:60 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum UResEvent { [INFO] [stdout] | ------------------ variant `AssignVVI` not found here [INFO] [stdout] ... [INFO] [stdout] 58 | data.s.constraints.push(UResEvent::AssignVVI { dst, src }); [INFO] [stdout] | ^^^^^^^^^ variant not found in `UResEvent` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: a value of type `Vec<(id::ID, id::ID)>` cannot be built from an iterator over elements of type `id::ID` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:22:78 [INFO] [stdout] | [INFO] [stdout] 22 | self.unres_instrs = (0..self.instrs.len()).map(|i| InstrID::from(i)).collect(); [INFO] [stdout] | ^^^^^^^ value of type `Vec<(id::ID, id::ID)>` cannot be built from `std::iter::Iterator>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromIterator>` is not implemented for `Vec<(id::ID, id::ID)>` [INFO] [stdout] but trait `FromIterator<(id::ID, id::ID)>` is implemented for it [INFO] [stdout] = help: for that trait implementation, expected `(id::ID, id::ID)`, found `id::ID` [INFO] [stdout] note: the method call chain might not have had the expected associated types [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:22:52 [INFO] [stdout] | [INFO] [stdout] 22 | self.unres_instrs = (0..self.instrs.len()).map(|i| InstrID::from(i)).collect(); [INFO] [stdout] | ---------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^ `Iterator::Item` is `ID` here [INFO] [stdout] | | [INFO] [stdout] | this expression has type `Range` [INFO] [stdout] note: required by a bound in `collect` [INFO] [stdout] --> /rustc/e9182f195b8505c87c4bd055b9f6e114ccda0981/library/core/src/iter/traits/iterator.rs:2014:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:25 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ^^^^^^^^^^^-------------- help: remove the unnecessary generics [INFO] [stdout] | | [INFO] [stdout] | expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: method defined here, with 0 generic parameters [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `impl Trait` cannot be explicitly specified as a generic argument [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `kind::UVar: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:39 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `kind::UVar` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `kind::UVar` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&mut URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:61 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:33:43 [INFO] [stdout] | [INFO] [stdout] 33 | if let Some(ty) = self.res_ty(f.ret) [INFO] [stdout] | ------ ^^^^^ expected `ID`, found `URes>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found enum `URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/program.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn res_ty(&self, i: IdentID) -> Option { [INFO] [stdout] | ^^^^^^ ---------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:25 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: expected `UVar`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:51 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: expected `UVar`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:66:56 [INFO] [stdout] | [INFO] [stdout] 66 | res |= data.match_types::(dst, src, src); [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:65:42 [INFO] [stdout] | [INFO] [stdout] 65 | UInstruction::Mv { dst, src } => { [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 66 | | res |= data.match_types::(dst, src, src); [INFO] [stdout] 67 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 80 | let id = match self.s.vars[id].ty { [INFO] [stdout] | ------------------ this expression has type `URes>` [INFO] [stdout] 81 | VarTy::Res(t) => Ok(t), [INFO] [stdout] | ^^^^^^^^^^^^^ expected `URes>`, found `VarTy` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found enum `kind::VarTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 80 | let id = match self.s.vars[id].ty { [INFO] [stdout] | ------------------ this expression has type `URes>` [INFO] [stdout] 81 | VarTy::Res(t) => Ok(t), [INFO] [stdout] 82 | VarTy::Ident(i) => i.res_as::(&mut self.s, self.types), [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected `URes>`, found `VarTy` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found enum `kind::VarTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `id::ID: Resolvable` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:153:34 [INFO] [stdout] | [INFO] [stdout] 153 | Resolvable::::try_res(*self, s, types, errs) [INFO] [stdout] | ------------------------ ^^^^^ the trait `Resolvable` is not implemented for `id::ID` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 153 | Resolvable::::try_res(&*self, s, types, errs) [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `names` on type `&upper::program::UProgram` [INFO] [stdout] --> src/ir/lower/program.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 20 | .names [INFO] [stdout] | ^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `fns`, `structs`, `modules`, `data`, `generics` ... and 7 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:69:53 [INFO] [stdout] | [INFO] [stdout] 69 | let dstty = &data.types[data.res_var_ty(dst)?]; [INFO] [stdout] | ---------- ^^^ expected `ID`, found `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn res_var_ty(&mut self, i: IdentID) -> Result { [INFO] [stdout] | ^^^^^^^^^^ ---------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:25 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ^^^^^^^^^^^-------------- help: remove the unnecessary generics [INFO] [stdout] | | [INFO] [stdout] | expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: method defined here, with 0 generic parameters [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `impl Trait` cannot be explicitly specified as a generic argument [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `upper::ty::Type: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:39 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `upper::ty::Type` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `upper::ty::Type` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `kind::UVar: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:45 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `kind::UVar` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `kind::UVar` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&mut URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:65 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/lower/program.rs:29:39 [INFO] [stdout] | [INFO] [stdout] 29 | fbuilder.insert_instr(i); [INFO] [stdout] | ------------ ^ expected `&UInstrInst`, found `&ID` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&upper::instr::UInstrInst` [INFO] [stdout] found reference `&id::ID` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/lower/program.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn insert_instr(&mut self, i: &UInstrInst) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^ -------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:25 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: expected `Type`, found `ID` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:51 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] = note: expected enum `upper::ty::Type` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] note: expected `UVar`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:73:60 [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] help: try wrapping the expression in a variant of `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] 73 | res |= data.match_types::(ir::upper::ty::Type::Ref(dest_ty), src, src); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] 73 | res |= data.match_types::(ir::upper::ty::Type::Slice(dest_ty), src, src); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] 73 | res |= data.match_types::(ir::upper::ty::Type::Deref(dest_ty), src, src); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] 73 | res |= data.match_types::(ir::upper::ty::Type::Ptr(dest_ty), src, src); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:68:43 [INFO] [stdout] | [INFO] [stdout] 68 | UInstruction::Ref { dst, src } => { [INFO] [stdout] | ___________________________________________^ [INFO] [stdout] 69 | | let dstty = &data.types[data.res_var_ty(dst)?]; [INFO] [stdout] 70 | | let &Type::Ref(dest_ty) = dstty else { [INFO] [stdout] 71 | | compiler_error() [INFO] [stdout] 72 | | }; [INFO] [stdout] 73 | | res |= data.match_types::(dest_ty, src, src); [INFO] [stdout] 74 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:76:41 [INFO] [stdout] | [INFO] [stdout] 76 | let srcid = data.res_var_ty(src)?; [INFO] [stdout] | ---------- ^^^ expected `ID`, found `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn res_var_ty(&mut self, i: IdentID) -> Result { [INFO] [stdout] | ^^^^^^^^^^ ---------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/lower/program.rs:290:39 [INFO] [stdout] | [INFO] [stdout] 290 | self.insert_instr(&i); [INFO] [stdout] | ------------ ^^ expected `&UInstrInst`, found `&ID` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&upper::instr::UInstrInst` [INFO] [stdout] found reference `&id::ID` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/lower/program.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn insert_instr(&mut self, i: &UInstrInst) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^ -------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | let &Type::Ref(src_ty) = data.types[srcid] else { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ----------------- this expression has type `upper::ty::Type` [INFO] [stdout] | | [INFO] [stdout] | expected `Type`, found `&_` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `upper::ty::Type` [INFO] [stdout] found reference `&_` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `origin` found for mutable reference `&mut URes>` in the current scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:78:34 [INFO] [stdout] | [INFO] [stdout] 78 | let origin = src.origin(data); [INFO] [stdout] | ^^^^^^ method not found in `&mut URes>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `resolve::HasOrigin` defines an item `origin`, perhaps you need to implement it [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:285:1 [INFO] [stdout] | [INFO] [stdout] 285 | trait HasOrigin { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:80:24 [INFO] [stdout] | [INFO] [stdout] 45 | ) -> ResolveRes { [INFO] [stdout] | ---------- expected `resolve::ResolveRes` because of return type [INFO] [stdout] ... [INFO] [stdout] 80 | return None; [INFO] [stdout] | ^^^^ expected `ResolveRes`, found `Option<_>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `resolve::ResolveRes` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:25 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ^^^^^^^^^^^-------------- help: remove the unnecessary generics [INFO] [stdout] | | [INFO] [stdout] | expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: method defined here, with 0 generic parameters [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `impl Trait` cannot be explicitly specified as a generic argument [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `kind::UVar: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:39 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `kind::UVar` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `kind::UVar` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/lower/program.rs:304:39 [INFO] [stdout] | [INFO] [stdout] 304 | self.insert_instr(i); [INFO] [stdout] | ------------ ^ expected `&UInstrInst`, found `ID` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&upper::instr::UInstrInst` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/lower/program.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn insert_instr(&mut self, i: &UInstrInst) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^ -------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `upper::ty::Type: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:45 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `upper::ty::Type` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `upper::ty::Type` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&mut URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:64 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:25 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: expected `UVar`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:51 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: expected `Type`, found `ID` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:82:56 [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = note: expected enum `upper::ty::Type` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] help: try wrapping the expression in a variant of `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] 82 | res |= data.match_types::(dst, ir::upper::ty::Type::Ref(src_ty), src); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] 82 | res |= data.match_types::(dst, ir::upper::ty::Type::Slice(src_ty), src); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] 82 | res |= data.match_types::(dst, ir::upper::ty::Type::Deref(src_ty), src); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] 82 | res |= data.match_types::(dst, ir::upper::ty::Type::Ptr(src_ty), src); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:75:45 [INFO] [stdout] | [INFO] [stdout] 75 | UInstruction::Deref { dst, src } => { [INFO] [stdout] | _____________________________________________^ [INFO] [stdout] 76 | | let srcid = data.res_var_ty(src)?; [INFO] [stdout] 77 | | let &Type::Ref(src_ty) = data.types[srcid] else { [INFO] [stdout] 78 | | let origin = src.origin(data); [INFO] [stdout] ... | [INFO] [stdout] 82 | | res |= data.match_types::(dst, src_ty, src); [INFO] [stdout] 83 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:25 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ^^^^^^^^^^^-------------- help: remove the unnecessary generics [INFO] [stdout] | | [INFO] [stdout] | expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: method defined here, with 0 generic parameters [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `impl Trait` cannot be explicitly specified as a generic argument [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `kind::UVar: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:39 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `kind::UVar` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `kind::UVar` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `upper::ty::Type: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:45 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `upper::ty::Type` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `upper::ty::Type` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&mut URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/lower/program.rs:340:45 [INFO] [stdout] | [INFO] [stdout] 340 | .size_of_type(self.program, &f.ret) [INFO] [stdout] | ------------ ^^^^^^ expected `&ID`, found `&URes>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&id::ID` [INFO] [stdout] found reference `&URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/lower/program.rs:423:12 [INFO] [stdout] | [INFO] [stdout] 423 | pub fn size_of_type(&mut self, p: &UProgram, ty: &TypeID) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ ----------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:25 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: expected `UVar`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:51 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: expected `Type`, found `ID` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:86:56 [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: expected enum `upper::ty::Type` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] help: try wrapping the expression in a variant of `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] 86 | res |= data.match_types::(dst, ir::upper::ty::Type::Ref(srcid), dst); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] 86 | res |= data.match_types::(dst, ir::upper::ty::Type::Slice(srcid), dst); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] 86 | res |= data.match_types::(dst, ir::upper::ty::Type::Deref(srcid), dst); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] 86 | res |= data.match_types::(dst, ir::upper::ty::Type::Ptr(srcid), dst); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:84:48 [INFO] [stdout] | [INFO] [stdout] 84 | UInstruction::LoadData { dst, src } => { [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 85 | | let srcid = src.type_id(&data.s); [INFO] [stdout] 86 | | res |= data.match_types::(dst, srcid, dst); [INFO] [stdout] 87 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get` found for reference `&upper::program::UProgram` in the current scope [INFO] [stdout] --> src/ir/lower/program.rs:353:44 [INFO] [stdout] | [INFO] [stdout] 353 | while let Type::Field(parent) = &p.get(var)?.ty { [INFO] [stdout] | ^^^ method not found in `&upper::program::UProgram` [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 `get`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `SliceIndex` [INFO] [stdout] help: some of the expressions' fields have a method of the same name [INFO] [stdout] | [INFO] [stdout] 353 | while let Type::Field(parent) = &p.data.get(var)?.ty { [INFO] [stdout] | +++++ [INFO] [stdout] 353 | while let Type::Field(parent) = &p.fns.get(var)?.ty { [INFO] [stdout] | ++++ [INFO] [stdout] 353 | while let Type::Field(parent) = &p.generics.get(var)?.ty { [INFO] [stdout] | +++++++++ [INFO] [stdout] 353 | while let Type::Field(parent) = &p.idents.get(var)?.ty { [INFO] [stdout] | +++++++ [INFO] [stdout] = and 7 other candidates [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:89:39 [INFO] [stdout] | [INFO] [stdout] 89 | let (dstty, dstid) = data.res_var_ty(dst, ctx)?; [INFO] [stdout] | ^^^^^^^^^^ --- unexpected argument #2 [INFO] [stdout] | [INFO] [stdout] note: expected `ID`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:89:50 [INFO] [stdout] | [INFO] [stdout] 89 | let (dstty, dstid) = data.res_var_ty(dst, ctx)?; [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn res_var_ty(&mut self, i: IdentID) -> Result { [INFO] [stdout] | ^^^^^^^^^^ ---------- [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 89 - let (dstty, dstid) = data.res_var_ty(dst, ctx)?; [INFO] [stdout] 89 + let (dstty, dstid) = data.res_var_ty(/* id::ID */)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant or associated item named `Field` found for enum `upper::ty::Type` in the current scope [INFO] [stdout] --> src/ir/lower/program.rs:353:25 [INFO] [stdout] | [INFO] [stdout] 353 | while let Type::Field(parent) = &p.get(var)?.ty { [INFO] [stdout] | ^^^^^ variant or associated item not found in `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] ::: src/ir/upper/ty.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub enum Type { [INFO] [stdout] | ------------- variant or associated item `Field` not found for this enum [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:89:17 [INFO] [stdout] | [INFO] [stdout] 89 | let (dstty, dstid) = data.res_var_ty(dst, ctx)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ -------------------------- this expression has type `id::ID` [INFO] [stdout] | | [INFO] [stdout] | expected `ID`, found `(_, _)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found tuple `(_, _)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&mut URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:97:51 [INFO] [stdout] | [INFO] [stdout] 97 | res |= data.match_types(dstty, srcty, dst); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:88:49 [INFO] [stdout] | [INFO] [stdout] 88 | UInstruction::LoadSlice { dst, src } => { [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 89 | | let (dstty, dstid) = data.res_var_ty(dst, ctx)?; [INFO] [stdout] 90 | | let &Type::Slice(dstty) = dstty else { [INFO] [stdout] 91 | | compiler_error() [INFO] [stdout] ... | [INFO] [stdout] 97 | | res |= data.match_types(dstty, srcty, dst); [INFO] [stdout] 98 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:99:58 [INFO] [stdout] | [INFO] [stdout] 99 | UInstruction::AsmBlock { instructions, args } => { [INFO] [stdout] | __________________________________________________________^ [INFO] [stdout] 100 | | // TODO [INFO] [stdout] 101 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:25 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ^^^^^^^^^^^-------------- help: remove the unnecessary generics [INFO] [stdout] | | [INFO] [stdout] | expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: method defined here, with 0 generic parameters [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `impl Trait` cannot be explicitly specified as a generic argument [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `upper::ty::Type: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:39 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `upper::ty::Type` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `upper::ty::Type` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `kind::UVar: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:45 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `kind::UVar` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `kind::UVar` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&mut URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:65 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get` found for reference `&upper::program::UProgram` in the current scope [INFO] [stdout] --> src/ir/lower/program.rs:357:25 [INFO] [stdout] | [INFO] [stdout] 357 | let mut ty = &p.get(var)?.ty; [INFO] [stdout] | ^^^ method not found in `&upper::program::UProgram` [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 `get`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `SliceIndex` [INFO] [stdout] help: some of the expressions' fields have a method of the same name [INFO] [stdout] | [INFO] [stdout] 357 | let mut ty = &p.data.get(var)?.ty; [INFO] [stdout] | +++++ [INFO] [stdout] 357 | let mut ty = &p.fns.get(var)?.ty; [INFO] [stdout] | ++++ [INFO] [stdout] 357 | let mut ty = &p.generics.get(var)?.ty; [INFO] [stdout] | +++++++++ [INFO] [stdout] 357 | let mut ty = &p.idents.get(var)?.ty; [INFO] [stdout] | +++++++ [INFO] [stdout] = and 7 other candidates [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time [INFO] [stdout] --> src/ir/lower/program.rs:360:17 [INFO] [stdout] | [INFO] [stdout] 360 | let Some(name) = path.pop() else { [INFO] [stdout] | ^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `str` [INFO] [stdout] note: required by a bound in `Some` [INFO] [stdout] --> /rustc/e9182f195b8505c87c4bd055b9f6e114ccda0981/library/core/src/option.rs:600:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:103:60 [INFO] [stdout] | [INFO] [stdout] 103 | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] | ------------------------- ^^^ expected `UVar`, found `&mut URes>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:102:38 [INFO] [stdout] | [INFO] [stdout] 102 | UInstruction::Ret { src } => { [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 103 | | res |= data.match_types::(ctx.ret, src, src); [INFO] [stdout] 104 | | } [INFO] [stdout] | |_________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/lower/program.rs:363:44 [INFO] [stdout] | [INFO] [stdout] 363 | offset += self.field_offset(p, sty, &name)?; [INFO] [stdout] | ------------ ^^^ expected `&StructInst`, found `StructInst` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/lower/program.rs:418:12 [INFO] [stdout] | [INFO] [stdout] 418 | pub fn field_offset(&mut self, p: &UProgram, sty: &StructInst, field: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ ---------------- [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 363 | offset += self.field_offset(p, &sty, &name)?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:106:27 [INFO] [stdout] | [INFO] [stdout] 106 | let si = data.res::(dst, ctx)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ --- unexpected argument #2 [INFO] [stdout] | [INFO] [stdout] note: expected `ID`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:106:42 [INFO] [stdout] | [INFO] [stdout] 106 | let si = data.res::(dst, ctx)?; [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn res(&mut self, i: IdentID) -> Result { [INFO] [stdout] | ^^^ ---------- [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 106 - let si = data.res::(dst, ctx)?; [INFO] [stdout] 106 + let si = data.res::(/* id::ID */)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:33 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ^^^^^^^^^^^-------------- help: remove the unnecessary generics [INFO] [stdout] | | [INFO] [stdout] | expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: method defined here, with 0 generic parameters [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `impl Trait` cannot be explicitly specified as a generic argument [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `upper::ty::Type: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:47 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `upper::ty::Type` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `upper::ty::Type` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `kind::UVar: MaybeTypeID` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:53 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ----------- ^^^^ the trait `resolve::TypeIDed` is not implemented for `kind::UVar` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `resolve::TypeIDed`: [INFO] [stdout] &T [INFO] [stdout] id::ID [INFO] [stdout] id::ID [INFO] [stdout] note: required for `kind::UVar` to implement `MaybeTypeID` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl MaybeTypeID for T { [INFO] [stdout] | -------- ^^^^^^^^^^^ ^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&URes>: resolve::HasOrigin` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:74 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ----------- ^^^ the trait `resolve::HasOrigin` is not implemented for `&URes>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `resolve::HasOrigin` is implemented for `&id::ID` [INFO] [stdout] note: required by a bound in `matc::>::match_types` [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:93:22 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ----------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 93 | origin: impl HasOrigin, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `matc::>::match_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `struct_field_type` found for reference `&upper::program::UProgram` in the current scope [INFO] [stdout] --> src/ir/lower/program.rs:364:20 [INFO] [stdout] | [INFO] [stdout] 364 | ty = p.struct_field_type(sty, name).expect("bad field"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ method not found in `&upper::program::UProgram` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/lower/program.rs:374:17 [INFO] [stdout] | [INFO] [stdout] 374 | let LStructInst { id, args } = ty; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ -- this expression has type `&upper::ty::StructInst` [INFO] [stdout] | | [INFO] [stdout] | expected `StructInst`, found `LStructInst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0026]: struct `LStructInst` does not have fields named `id`, `args` [INFO] [stdout] --> src/ir/lower/program.rs:374:31 [INFO] [stdout] | [INFO] [stdout] 374 | let LStructInst { id, args } = ty; [INFO] [stdout] | ^^ ^^^^ struct `LStructInst` does not have these fields [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0027]: pattern does not mention fields `offsets`, `types`, `order`, `size` [INFO] [stdout] --> src/ir/lower/program.rs:374:17 [INFO] [stdout] | [INFO] [stdout] 374 | let LStructInst { id, args } = ty; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ missing fields `offsets`, `types`, `order`, `size` [INFO] [stdout] | [INFO] [stdout] help: include the missing fields in the pattern [INFO] [stdout] | [INFO] [stdout] 374 | let LStructInst { id, args, offsets, types, order, size } = ty; [INFO] [stdout] | +++++++++++++++++++++++++++++ [INFO] [stdout] help: if you don't care about these missing fields, you can explicitly ignore them [INFO] [stdout] | [INFO] [stdout] 374 | let LStructInst { id, args, offsets: _, types: _, order: _, size: _ } = ty; [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] help: or always ignore missing fields here [INFO] [stdout] | [INFO] [stdout] 374 | let LStructInst { id, args, .. } = ty; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:33 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: expected `Type`, found `URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:59 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: expected enum `upper::ty::Type` [INFO] [stdout] found enum `URes>` [INFO] [stdout] note: expected `UVar`, found `&URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:113:69 [INFO] [stdout] | [INFO] [stdout] 113 | res |= data.match_types::(field.ty, src, src); [INFO] [stdout] | ^^^ [INFO] [stdout] = note: expected struct `kind::UVar` [INFO] [stdout] found reference `&URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn match_types( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 90 | &mut self, [INFO] [stdout] 91 | dst: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] 92 | src: impl MaybeTypeID, [INFO] [stdout] | --------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `expect` found for reference `&upper::program::UProgram` in the current scope [INFO] [stdout] --> src/ir/lower/program.rs:375:27 [INFO] [stdout] | [INFO] [stdout] 375 | let struc = p.expect(*id); [INFO] [stdout] | ^^^^^^ method not found in `&upper::program::UProgram` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0769]: tuple variant `Type::Generic` written as struct variant [INFO] [stdout] --> src/ir/lower/program.rs:381:37 [INFO] [stdout] | [INFO] [stdout] 381 | let ty = if let Type::Generic { id } = &f.ty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use the tuple variant pattern syntax instead [INFO] [stdout] | [INFO] [stdout] 381 - let ty = if let Type::Generic { id } = &f.ty { [INFO] [stdout] 381 + let ty = if let Type::Generic(id) = &f.ty { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `origin` found for mutable reference `&mut URes>` in the current scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:115:38 [INFO] [stdout] | [INFO] [stdout] 115 | let origin = dst.origin(data); [INFO] [stdout] | ^^^^^^ method not found in `&mut URes>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `resolve::HasOrigin` defines an item `origin`, perhaps you need to implement it [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:285:1 [INFO] [stdout] | [INFO] [stdout] 285 | trait HasOrigin { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get` found for reference `&upper::program::UProgram` in the current scope [INFO] [stdout] --> src/ir/lower/program.rs:441:33 [INFO] [stdout] | [INFO] [stdout] 441 | self.size_of_type(p, &p.get(var)?.ty) [INFO] [stdout] | ^^^ method not found in `&upper::program::UProgram` [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 `get`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `SliceIndex` [INFO] [stdout] help: some of the expressions' fields have a method of the same name [INFO] [stdout] | [INFO] [stdout] 441 | self.size_of_type(p, &p.data.get(var)?.ty) [INFO] [stdout] | +++++ [INFO] [stdout] 441 | self.size_of_type(p, &p.fns.get(var)?.ty) [INFO] [stdout] | ++++ [INFO] [stdout] 441 | self.size_of_type(p, &p.generics.get(var)?.ty) [INFO] [stdout] | +++++++++ [INFO] [stdout] 441 | self.size_of_type(p, &p.idents.get(var)?.ty) [INFO] [stdout] | +++++++ [INFO] [stdout] = and 7 other candidates [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `origin` found for mutable reference `&mut URes>` in the current scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:125:38 [INFO] [stdout] | [INFO] [stdout] 125 | let origin = dst.origin(data); [INFO] [stdout] | ^^^^^^ method not found in `&mut URes>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `resolve::HasOrigin` defines an item `origin`, perhaps you need to implement it [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:285:1 [INFO] [stdout] | [INFO] [stdout] 285 | trait HasOrigin { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 45 | ) -> ResolveRes { [INFO] [stdout] | ---------- expected `resolve::ResolveRes` because of return type [INFO] [stdout] ... [INFO] [stdout] 123 | / for (name, _) in fields { [INFO] [stdout] 124 | | if !used.contains(name) { [INFO] [stdout] 125 | | let origin = dst.origin(data); [INFO] [stdout] 126 | | data.errs.push(ResErr::UnknownStructField { [INFO] [stdout] ... | [INFO] [stdout] 132 | | } [INFO] [stdout] | |_____________^ expected `ResolveRes`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: `for` loops evaluate to unit type `()` [INFO] [stdout] help: consider returning a value here [INFO] [stdout] | [INFO] [stdout] 132 ~ } [INFO] [stdout] 133 + /* `resolve::ResolveRes` value */ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:20:26 [INFO] [stdout] | [INFO] [stdout] 20 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:135:36 [INFO] [stdout] | [INFO] [stdout] 135 | if let Some(ty) = data.res_var_ty(cond, ctx) { [INFO] [stdout] | ^^^^^^^^^^ --- unexpected argument #2 [INFO] [stdout] | [INFO] [stdout] note: expected `ID`, found `&mut URes>` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:135:47 [INFO] [stdout] | [INFO] [stdout] 135 | if let Some(ty) = data.res_var_ty(cond, ctx) { [INFO] [stdout] | ^^^^ [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found mutable reference `&mut URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn res_var_ty(&mut self, i: IdentID) -> Result { [INFO] [stdout] | ^^^^^^^^^^ ---------- [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 135 - if let Some(ty) = data.res_var_ty(cond, ctx) { [INFO] [stdout] 135 + if let Some(ty) = data.res_var_ty(/* id::ID */) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:135:20 [INFO] [stdout] | [INFO] [stdout] 135 | if let Some(ty) = data.res_var_ty(cond, ctx) { [INFO] [stdout] | ^^^^^^^^ -------------------------- this expression has type `Result, resolve::ResolveRes>` [INFO] [stdout] | | [INFO] [stdout] | expected `Result, ResolveRes>`, found `Option<_>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result, resolve::ResolveRes>` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:21:26 [INFO] [stdout] | [INFO] [stdout] 21 | src: src.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `origin` found for mutable reference `&mut URes>` in the current scope [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:138:39 [INFO] [stdout] | [INFO] [stdout] 138 | let origin = cond.origin(data); [INFO] [stdout] | ^^^^^^ method not found in `&mut URes>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `resolve::HasOrigin` defines an item `origin`, perhaps you need to implement it [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:285:1 [INFO] [stdout] | [INFO] [stdout] 285 | trait HasOrigin { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:148:25 [INFO] [stdout] | [INFO] [stdout] 148 | i, [INFO] [stdout] | ^ expected `ID`, found `&mut ID` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID<_>` [INFO] [stdout] found mutable reference `&mut id::ID<_>` [INFO] [stdout] help: consider dereferencing the borrow [INFO] [stdout] | [INFO] [stdout] 148 | i: *i, [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:143:17 [INFO] [stdout] | [INFO] [stdout] 143 | resolve_instr( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 144 | / data, [INFO] [stdout] 145 | |/ ResolveCtx { [INFO] [stdout] 146 | || ret: ctx.ret, [INFO] [stdout] 147 | || breakable: ctx.breakable, [INFO] [stdout] 148 | || i, [INFO] [stdout] 149 | || }, [INFO] [stdout] | || - [INFO] [stdout] | ||_____________________| [INFO] [stdout] | |_____________________two arguments of type `(id::ID, id::ID)` and `&mut Vec` are missing [INFO] [stdout] | unexpected argument #2 of type `ResolveCtx` [INFO] [stdout] | [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn resolve_instr<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 42 | (fi, ii): (FnID, InstrID), [INFO] [stdout] | ------------------------- [INFO] [stdout] 43 | instrs: &mut Vec, [INFO] [stdout] | ---------------------------- [INFO] [stdout] help: did you mean [INFO] [stdout] | [INFO] [stdout] 143 - resolve_instr( [INFO] [stdout] 144 - data, [INFO] [stdout] 145 - ResolveCtx { [INFO] [stdout] 146 - ret: ctx.ret, [INFO] [stdout] 147 - breakable: ctx.breakable, [INFO] [stdout] 148 - i, [INFO] [stdout] 149 - }, [INFO] [stdout] 150 - ); [INFO] [stdout] 143 + resolve_instr(/* (id::ID, id::ID) */, /* &mut Vec */, data); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:24:26 [INFO] [stdout] | [INFO] [stdout] 24 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 45 | ) -> ResolveRes { [INFO] [stdout] | ---------- expected `resolve::ResolveRes` because of return type [INFO] [stdout] ... [INFO] [stdout] 142 | / for i in body { [INFO] [stdout] 143 | | resolve_instr( [INFO] [stdout] 144 | | data, [INFO] [stdout] 145 | | ResolveCtx { [INFO] [stdout] ... | [INFO] [stdout] 150 | | ); [INFO] [stdout] 151 | | } [INFO] [stdout] | |_____________^ expected `ResolveRes`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: `for` loops evaluate to unit type `()` [INFO] [stdout] help: consider returning a value here [INFO] [stdout] | [INFO] [stdout] 151 ~ } [INFO] [stdout] 152 + /* `resolve::ResolveRes` value */ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:160:25 [INFO] [stdout] | [INFO] [stdout] 160 | i, [INFO] [stdout] | ^ expected `ID`, found `&mut ID` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID<_>` [INFO] [stdout] found mutable reference `&mut id::ID<_>` [INFO] [stdout] help: consider dereferencing the borrow [INFO] [stdout] | [INFO] [stdout] 160 | i: *i, [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:155:17 [INFO] [stdout] | [INFO] [stdout] 155 | resolve_instr( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 156 | / data, [INFO] [stdout] 157 | |/ ResolveCtx { [INFO] [stdout] 158 | || ret: ctx.ret, [INFO] [stdout] 159 | || breakable: true, [INFO] [stdout] 160 | || i, [INFO] [stdout] 161 | || }, [INFO] [stdout] | || - [INFO] [stdout] | ||_____________________| [INFO] [stdout] | |_____________________two arguments of type `(id::ID, id::ID)` and `&mut Vec` are missing [INFO] [stdout] | unexpected argument #2 of type `ResolveCtx` [INFO] [stdout] | [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn resolve_instr<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 42 | (fi, ii): (FnID, InstrID), [INFO] [stdout] | ------------------------- [INFO] [stdout] 43 | instrs: &mut Vec, [INFO] [stdout] | ---------------------------- [INFO] [stdout] help: did you mean [INFO] [stdout] | [INFO] [stdout] 155 - resolve_instr( [INFO] [stdout] 156 - data, [INFO] [stdout] 157 - ResolveCtx { [INFO] [stdout] 158 - ret: ctx.ret, [INFO] [stdout] 159 - breakable: true, [INFO] [stdout] 160 - i, [INFO] [stdout] 161 - }, [INFO] [stdout] 162 - ); [INFO] [stdout] 155 + resolve_instr(/* (id::ID, id::ID) */, /* &mut Vec */, data); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 45 | ) -> ResolveRes { [INFO] [stdout] | ---------- expected `resolve::ResolveRes` because of return type [INFO] [stdout] ... [INFO] [stdout] 154 | / for i in body { [INFO] [stdout] 155 | | resolve_instr( [INFO] [stdout] 156 | | data, [INFO] [stdout] 157 | | ResolveCtx { [INFO] [stdout] ... | [INFO] [stdout] 162 | | ); [INFO] [stdout] 163 | | } [INFO] [stdout] | |_____________^ expected `ResolveRes`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: `for` loops evaluate to unit type `()` [INFO] [stdout] help: consider returning a value here [INFO] [stdout] | [INFO] [stdout] 163 ~ } [INFO] [stdout] 164 + /* `resolve::ResolveRes` value */ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:166:31 [INFO] [stdout] | [INFO] [stdout] 166 | if !ctx.breakable { [INFO] [stdout] | _______________________________^ [INFO] [stdout] 167 | | data.errs.push(ResErr::BadControlFlow { [INFO] [stdout] 168 | | op: ControlFlowOp::Break, [INFO] [stdout] 169 | | origin: ctx.i.origin, [INFO] [stdout] 170 | | }); [INFO] [stdout] 171 | | } [INFO] [stdout] | |_____________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:174:31 [INFO] [stdout] | [INFO] [stdout] 174 | if !ctx.breakable { [INFO] [stdout] | _______________________________^ [INFO] [stdout] 175 | | data.errs.push(ResErr::BadControlFlow { [INFO] [stdout] 176 | | op: ControlFlowOp::Continue, [INFO] [stdout] 177 | | origin: ctx.i.origin, [INFO] [stdout] 178 | | }); [INFO] [stdout] 179 | | } [INFO] [stdout] | |_____________^ expected `ResolveRes`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 141 | match s.vars[self].ty { [INFO] [stdout] | --------------- this expression has type `URes>` [INFO] [stdout] 142 | VarTy::Ident(id) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `URes>`, found `VarTy` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found enum `kind::VarTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/matc.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 141 | match s.vars[self].ty { [INFO] [stdout] | --------------- this expression has type `URes>` [INFO] [stdout] 142 | VarTy::Ident(id) => todo!(), [INFO] [stdout] 143 | VarTy::Res(id) => Ok(id), [INFO] [stdout] | ^^^^^^^^^^^^^^ expected `URes>`, found `VarTy` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found enum `kind::VarTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: a value of type `Vec<(id::ID, id::ID)>` cannot be built from an iterator over elements of type `id::ID` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:22:78 [INFO] [stdout] | [INFO] [stdout] 22 | self.unres_instrs = (0..self.instrs.len()).map(|i| InstrID::from(i)).collect(); [INFO] [stdout] | ^^^^^^^ value of type `Vec<(id::ID, id::ID)>` cannot be built from `std::iter::Iterator>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromIterator>` is not implemented for `Vec<(id::ID, id::ID)>` [INFO] [stdout] but trait `FromIterator<(id::ID, id::ID)>` is implemented for it [INFO] [stdout] = help: for that trait implementation, expected `(id::ID, id::ID)`, found `id::ID` [INFO] [stdout] note: the method call chain might not have had the expected associated types [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:22:52 [INFO] [stdout] | [INFO] [stdout] 22 | self.unres_instrs = (0..self.instrs.len()).map(|i| InstrID::from(i)).collect(); [INFO] [stdout] | ---------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^ `Iterator::Item` is `ID` here [INFO] [stdout] | | [INFO] [stdout] | this expression has type `Range` [INFO] [stdout] note: required by a bound in `collect` [INFO] [stdout] --> /rustc/e9182f195b8505c87c4bd055b9f6e114ccda0981/library/core/src/iter/traits/iterator.rs:2014:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:25:26 [INFO] [stdout] | [INFO] [stdout] 25 | src: src.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:28:26 [INFO] [stdout] | [INFO] [stdout] 28 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:29:26 [INFO] [stdout] | [INFO] [stdout] 29 | src: src.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:33:43 [INFO] [stdout] | [INFO] [stdout] 33 | if let Some(ty) = self.res_ty(f.ret) [INFO] [stdout] | ------ ^^^^^ expected `ID`, found `URes>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found enum `URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/upper/program.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn res_ty(&self, i: IdentID) -> Option { [INFO] [stdout] | ^^^^^^ ---------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 80 | let id = match self.s.vars[id].ty { [INFO] [stdout] | ------------------ this expression has type `URes>` [INFO] [stdout] 81 | VarTy::Res(t) => Ok(t), [INFO] [stdout] | ^^^^^^^^^^^^^ expected `URes>`, found `VarTy` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found enum `kind::VarTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 80 | let id = match self.s.vars[id].ty { [INFO] [stdout] | ------------------ this expression has type `URes>` [INFO] [stdout] 81 | VarTy::Res(t) => Ok(t), [INFO] [stdout] 82 | VarTy::Ident(i) => i.res_as::(&mut self.s, self.types), [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected `URes>`, found `VarTy` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found enum `kind::VarTy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:32:26 [INFO] [stdout] | [INFO] [stdout] 32 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `id::ID: Resolvable` is not satisfied [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:153:34 [INFO] [stdout] | [INFO] [stdout] 153 | Resolvable::::try_res(*self, s, types, errs) [INFO] [stdout] | ------------------------ ^^^^^ the trait `Resolvable` is not implemented for `id::ID` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 153 | Resolvable::::try_res(&*self, s, types, errs) [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:36:26 [INFO] [stdout] | [INFO] [stdout] 36 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:40:26 [INFO] [stdout] | [INFO] [stdout] 40 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `names` on type `&upper::program::UProgram` [INFO] [stdout] --> src/ir/lower/program.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 20 | .names [INFO] [stdout] | ^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `fns`, `structs`, `modules`, `data`, `generics` ... and 7 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:42:45 [INFO] [stdout] | [INFO] [stdout] 42 | args: args.iter().map(|i| i.var(p)).try_collect()?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `resolve` found for reference `&riscv::asm::LinkerInstruction>>, URes>>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:47:32 [INFO] [stdout] | [INFO] [stdout] 47 | .map(|i| i.resolve(p)) [INFO] [stdout] | ^^^^^^^ method not found in `&riscv::asm::LinkerInstruction>>, URes>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/lower/program.rs:29:39 [INFO] [stdout] | [INFO] [stdout] 29 | fbuilder.insert_instr(i); [INFO] [stdout] | ------------ ^ expected `&UInstrInst`, found `&ID` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&upper::instr::UInstrInst` [INFO] [stdout] found reference `&id::ID` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/lower/program.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn insert_instr(&mut self, i: &UInstrInst) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^ -------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `resolve` found for reference `&upper::instr::AsmBlockArg>>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:49:45 [INFO] [stdout] | [INFO] [stdout] 49 | args: args.iter().map(|a| a.resolve(p)).try_collect()?, [INFO] [stdout] | ^^^^^^^ method not found in `&upper::instr::AsmBlockArg>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:51:49 [INFO] [stdout] | [INFO] [stdout] 51 | I::Ret { src } => I::Ret { src: src.var(p)? }, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:53:26 [INFO] [stdout] | [INFO] [stdout] 53 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:57:48 [INFO] [stdout] | [INFO] [stdout] 57 | .map(|(name, ident)| ident.var(p).map(|i| (name.clone(), i))) [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:61:28 [INFO] [stdout] | [INFO] [stdout] 61 | cond: cond.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/lower/program.rs:290:39 [INFO] [stdout] | [INFO] [stdout] 290 | self.insert_instr(&i); [INFO] [stdout] | ------------ ^^ expected `&UInstrInst`, found `&ID` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&upper::instr::UInstrInst` [INFO] [stdout] found reference `&id::ID` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/lower/program.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn insert_instr(&mut self, i: &UInstrInst) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^ -------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `resolve` found for reference `&id::ID` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:62:45 [INFO] [stdout] | [INFO] [stdout] 62 | body: body.iter().map(|i| i.resolve(p)).try_collect()?, [INFO] [stdout] | ^^^^^^^ method not found in `&id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/lower/program.rs:304:39 [INFO] [stdout] | [INFO] [stdout] 304 | self.insert_instr(i); [INFO] [stdout] | ------------ ^ expected `&UInstrInst`, found `ID` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&upper::instr::UInstrInst` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/lower/program.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn insert_instr(&mut self, i: &UInstrInst) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^ -------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `resolve` found for reference `&id::ID` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:65:45 [INFO] [stdout] | [INFO] [stdout] 65 | body: body.iter().map(|i| i.resolve(p)).try_collect()?, [INFO] [stdout] | ^^^^^^^ method not found in `&id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/lower/program.rs:340:45 [INFO] [stdout] | [INFO] [stdout] 340 | .size_of_type(self.program, &f.ret) [INFO] [stdout] | ------------ ^^^^^^ expected `&ID`, found `&URes>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&id::ID` [INFO] [stdout] found reference `&URes>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/lower/program.rs:423:12 [INFO] [stdout] | [INFO] [stdout] 423 | pub fn size_of_type(&mut self, p: &UProgram, ty: &TypeID) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ ----------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: struct takes 2 lifetime arguments but 3 lifetime arguments were supplied [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:15:30 [INFO] [stdout] | [INFO] [stdout] 15 | let opi = |ctx: &mut FnLowerCtx<'_, '_, '_>, op: Funct3| -> Option { [INFO] [stdout] | ^^^^^^^^^^ ---- help: remove the lifetime argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 lifetime arguments [INFO] [stdout] | [INFO] [stdout] note: struct defined here, with 2 lifetime parameters: `'a`, `'b` [INFO] [stdout] --> src/parser/v3/lower/func.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct FnLowerCtx<'a, 'b> { [INFO] [stdout] | ^^^^^^^^^^ -- -- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: struct takes 2 lifetime arguments but 3 lifetime arguments were supplied [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:25:29 [INFO] [stdout] | [INFO] [stdout] 25 | let op = |ctx: &mut FnLowerCtx<'_, '_, '_>, op: Funct3, funct: Funct7| -> Option { [INFO] [stdout] | ^^^^^^^^^^ ---- help: remove the lifetime argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 lifetime arguments [INFO] [stdout] | [INFO] [stdout] note: struct defined here, with 2 lifetime parameters: `'a`, `'b` [INFO] [stdout] --> src/parser/v3/lower/func.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct FnLowerCtx<'a, 'b> { [INFO] [stdout] | ^^^^^^^^^^ -- -- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: struct takes 2 lifetime arguments but 1 lifetime argument was supplied [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:41:32 [INFO] [stdout] | [INFO] [stdout] 41 | let opif7 = |ctx: &mut FnLowerCtx<'_>, op: Funct3, funct: Funct7| -> Option { [INFO] [stdout] | ^^^^^^^^^^ -- supplied 1 lifetime argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 lifetime arguments [INFO] [stdout] | [INFO] [stdout] note: struct defined here, with 2 lifetime parameters: `'a`, `'b` [INFO] [stdout] --> src/parser/v3/lower/func.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct FnLowerCtx<'a, 'b> { [INFO] [stdout] | ^^^^^^^^^^ -- -- [INFO] [stdout] help: add missing lifetime argument [INFO] [stdout] | [INFO] [stdout] 41 | let opif7 = |ctx: &mut FnLowerCtx<'_, '_>, op: Funct3, funct: Funct7| -> Option { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: struct takes 2 lifetime arguments but 1 lifetime argument was supplied [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:57:32 [INFO] [stdout] | [INFO] [stdout] 57 | let store = |ctx: &mut FnLowerCtx<'_>, width: Funct3| -> Option { [INFO] [stdout] | ^^^^^^^^^^ -- supplied 1 lifetime argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 lifetime arguments [INFO] [stdout] | [INFO] [stdout] note: struct defined here, with 2 lifetime parameters: `'a`, `'b` [INFO] [stdout] --> src/parser/v3/lower/func.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct FnLowerCtx<'a, 'b> { [INFO] [stdout] | ^^^^^^^^^^ -- -- [INFO] [stdout] help: add missing lifetime argument [INFO] [stdout] | [INFO] [stdout] 57 | let store = |ctx: &mut FnLowerCtx<'_, '_>, width: Funct3| -> Option { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: struct takes 2 lifetime arguments but 1 lifetime argument was supplied [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:72:31 [INFO] [stdout] | [INFO] [stdout] 72 | let load = |ctx: &mut FnLowerCtx<'_>, width: Funct3| -> Option { [INFO] [stdout] | ^^^^^^^^^^ -- supplied 1 lifetime argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 lifetime arguments [INFO] [stdout] | [INFO] [stdout] note: struct defined here, with 2 lifetime parameters: `'a`, `'b` [INFO] [stdout] --> src/parser/v3/lower/func.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct FnLowerCtx<'a, 'b> { [INFO] [stdout] | ^^^^^^^^^^ -- -- [INFO] [stdout] help: add missing lifetime argument [INFO] [stdout] | [INFO] [stdout] 72 | let load = |ctx: &mut FnLowerCtx<'_, '_>, width: Funct3| -> Option { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:105:34 [INFO] [stdout] | [INFO] [stdout] 105 | Self::La { dest, src } [INFO] [stdout] | ^^^ expected `ID`, found `UIdent` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found struct `upper::ident::UIdent` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:177:5 [INFO] [stdout] | [INFO] [stdout] 169 | pub fn arg_to_var(node: &Node, ctx: &mut FnLowerCtx) -> Option { [INFO] [stdout] | -------------- expected `Option` because of return type [INFO] [stdout] ... [INFO] [stdout] 177 | ctx.ident(node) [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected `Option`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get` found for reference `&upper::program::UProgram` in the current scope [INFO] [stdout] --> src/ir/lower/program.rs:353:44 [INFO] [stdout] | [INFO] [stdout] 353 | while let Type::Field(parent) = &p.get(var)?.ty { [INFO] [stdout] | ^^^ method not found in `&upper::program::UProgram` [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 `get`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `SliceIndex` [INFO] [stdout] help: some of the expressions' fields have a method of the same name [INFO] [stdout] | [INFO] [stdout] 353 | while let Type::Field(parent) = &p.data.get(var)?.ty { [INFO] [stdout] | +++++ [INFO] [stdout] 353 | while let Type::Field(parent) = &p.fns.get(var)?.ty { [INFO] [stdout] | ++++ [INFO] [stdout] 353 | while let Type::Field(parent) = &p.generics.get(var)?.ty { [INFO] [stdout] | +++++++++ [INFO] [stdout] 353 | while let Type::Field(parent) = &p.idents.get(var)?.ty { [INFO] [stdout] | +++++++ [INFO] [stdout] = and 7 other candidates [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:184:43 [INFO] [stdout] | [INFO] [stdout] 184 | let reg = Reg::from_ident(node, ctx)?; [INFO] [stdout] | --------------- ^^^^ expected `&Node`, found `&PIdent` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&node::Node` [INFO] [stdout] found reference `&nodes::ident::PIdent` [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:193:12 [INFO] [stdout] | [INFO] [stdout] 193 | pub fn from_ident(node: &Node, ctx: &mut FnLowerCtx) -> Option { [INFO] [stdout] | ^^^^^^^^^^ ------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be applied to values that implement `Try` [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:187:45 [INFO] [stdout] | [INFO] [stdout] 187 | PAsmArg::Ref(node) => Self::Var(ctx.ident(node)?), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ the `?` operator cannot be applied to type `id::ID` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Try` is not implemented for `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `inner` on type `&nodes::ident::PIdent` [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:208:21 [INFO] [stdout] | [INFO] [stdout] 208 | let word = node.inner.as_ref()?; [INFO] [stdout] | ^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available field is: `0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `origin` on type `&nodes::ident::PIdent` [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:212:29 [INFO] [stdout] | [INFO] [stdout] 212 | ctx.err_at(node.origin, format!("Expected an i64, found {}", word)); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available field is: `0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant or associated item named `Field` found for enum `upper::ty::Type` in the current scope [INFO] [stdout] --> src/ir/lower/program.rs:353:25 [INFO] [stdout] | [INFO] [stdout] 353 | while let Type::Field(parent) = &p.get(var)?.ty { [INFO] [stdout] | ^^^^^ variant or associated item not found in `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] ::: src/ir/upper/ty.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub enum Type { [INFO] [stdout] | ------------- variant or associated item `Field` not found for this enum [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0271]: type mismatch resolving `::Var == ID` [INFO] [stdout] --> src/parser/v3/lower/asm.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | / instructions: { [INFO] [stdout] 53 | | let mut v = Vec::new(); [INFO] [stdout] 54 | | for i in &self.instructions { [INFO] [stdout] 55 | | if let Some(i) = i.lower(ctx) { [INFO] [stdout] ... | [INFO] [stdout] 59 | | v [INFO] [stdout] 60 | | }, [INFO] [stdout] | |_____________^ type mismatch resolving `::Var == ID` [INFO] [stdout] | [INFO] [stdout] note: expected this to be `id::ID` [INFO] [stdout] --> src/ir/upper/instr.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | type Var = VarRes; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found enum `URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0271]: type mismatch resolving `::Var == ID` [INFO] [stdout] --> src/parser/v3/lower/asm.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | args, [INFO] [stdout] | ^^^^ type mismatch resolving `::Var == ID` [INFO] [stdout] | [INFO] [stdout] note: expected this to be `id::ID` [INFO] [stdout] --> src/ir/upper/instr.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | type Var = VarRes; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found enum `URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get` found for reference `&upper::program::UProgram` in the current scope [INFO] [stdout] --> src/ir/lower/program.rs:357:25 [INFO] [stdout] | [INFO] [stdout] 357 | let mut ty = &p.get(var)?.ty; [INFO] [stdout] | ^^^ method not found in `&upper::program::UProgram` [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 `get`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `SliceIndex` [INFO] [stdout] help: some of the expressions' fields have a method of the same name [INFO] [stdout] | [INFO] [stdout] 357 | let mut ty = &p.data.get(var)?.ty; [INFO] [stdout] | +++++ [INFO] [stdout] 357 | let mut ty = &p.fns.get(var)?.ty; [INFO] [stdout] | ++++ [INFO] [stdout] 357 | let mut ty = &p.generics.get(var)?.ty; [INFO] [stdout] | +++++++++ [INFO] [stdout] 357 | let mut ty = &p.idents.get(var)?.ty; [INFO] [stdout] | +++++++ [INFO] [stdout] = and 7 other candidates [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `path_for` found for mutable reference `&mut v3::lower::func::FnLowerCtx<'_, '_>` in the current scope [INFO] [stdout] --> src/parser/v3/lower/block.rs:35:32 [INFO] [stdout] | [INFO] [stdout] 35 | let path = ctx.path_for(name); [INFO] [stdout] | ^^^^^^^^ method not found in `&mut v3::lower::func::FnLowerCtx<'_, '_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `imports` on type `&mut v3::lower::func::FnLowerCtx<'_, '_>` [INFO] [stdout] --> src/parser/v3/lower/block.rs:37:24 [INFO] [stdout] | [INFO] [stdout] 37 | if ctx.imports.insert(import) { [INFO] [stdout] | ^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `ctx`, `instructions`, `origin` [INFO] [stdout] = note: available fields are: `p`, `output`, `module`, `temp`, `ident_stack` [INFO] [stdout] = note: available fields are: `fns`, `structs`, `modules`, `data`, `generics` ... and 7 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time [INFO] [stdout] --> src/ir/lower/program.rs:360:17 [INFO] [stdout] | [INFO] [stdout] 360 | let Some(name) = path.pop() else { [INFO] [stdout] | ^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `str` [INFO] [stdout] note: required by a bound in `Some` [INFO] [stdout] --> /rustc/e9182f195b8505c87c4bd055b9f6e114ccda0981/library/core/src/option.rs:600:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant or associated item named `Module` found for enum `upper::ty::Type` in the current scope [INFO] [stdout] --> src/parser/v3/lower/block.rs:40:35 [INFO] [stdout] | [INFO] [stdout] 40 | ty: Type::Module(path), [INFO] [stdout] | ^^^^^^ variant or associated item not found in `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] ::: src/ir/upper/ty.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub enum Type { [INFO] [stdout] | ------------- variant or associated item `Module` not found for this enum [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `children` and `parent` in initializer of `kind::UVar` [INFO] [stdout] --> src/parser/v3/lower/block.rs:38:33 [INFO] [stdout] | [INFO] [stdout] 38 | ctx.def_var(UVar { [INFO] [stdout] | ^^^^ missing `children` and `parent` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `lower` exists for reference `&&node::Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/parser/v3/lower/block.rs:49:28 [INFO] [stdout] | [INFO] [stdout] 49 | structs.push(s.lower(ctx.ctx)); [INFO] [stdout] | ^^^^^ method cannot be called on `&&node::Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/parser/v3/node.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Node { [INFO] [stdout] | ------------------ doesn't satisfy `node::Node: FnLowerable` [INFO] [stdout] | [INFO] [stdout] ::: src/parser/v3/nodes/struc.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct PStruct { [INFO] [stdout] | ------------------ doesn't satisfy `nodes::struc::PStruct: FnLowerable` [INFO] [stdout] | [INFO] [stdout] note: trait bound `nodes::struc::PStruct: FnLowerable` was not satisfied [INFO] [stdout] --> src/parser/v3/lower/func.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | impl FnLowerable for Node { [INFO] [stdout] | ^^^^^^^^^^^ ----------- ------- [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: the trait `FnLowerable` must be implemented [INFO] [stdout] --> src/parser/v3/lower/func.rs:160:1 [INFO] [stdout] | [INFO] [stdout] 160 | pub trait FnLowerable { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `FnLowerable` defines an item `lower`, perhaps you need to implement it [INFO] [stdout] --> src/parser/v3/lower/func.rs:160:1 [INFO] [stdout] | [INFO] [stdout] 160 | pub trait FnLowerable { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/lower/program.rs:363:44 [INFO] [stdout] | [INFO] [stdout] 363 | offset += self.field_offset(p, sty, &name)?; [INFO] [stdout] | ------------ ^^^ expected `&StructInst`, found `StructInst` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/ir/lower/program.rs:418:12 [INFO] [stdout] | [INFO] [stdout] 418 | pub fn field_offset(&mut self, p: &UProgram, sty: &StructInst, field: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ ---------------- [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 363 | offset += self.field_offset(p, &sty, &name)?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/block.rs:82:54 [INFO] [stdout] | [INFO] [stdout] 82 | ctx.push(UInstruction::Mv { dst: def, src: res }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID<_>` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Res` [INFO] [stdout] | [INFO] [stdout] 82 | ctx.push(UInstruction::Mv { dst: ir::upper::kind::URes::Res(def), src: res }); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/block.rs:82:64 [INFO] [stdout] | [INFO] [stdout] 82 | ctx.push(UInstruction::Mv { dst: def, src: res }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 82 | ctx.push(UInstruction::Mv { dst: def, src: ir::upper::kind::URes::Unres(res) }); [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/block.rs:89:53 [INFO] [stdout] | [INFO] [stdout] 89 | ctx.push_at(UInstruction::Ret { src }, src.origin); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 89 | ctx.push_at(UInstruction::Ret { src: ir::upper::kind::URes::Unres(src) }, src.origin); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `origin` on type `id::ID` [INFO] [stdout] --> src/parser/v3/lower/block.rs:89:64 [INFO] [stdout] | [INFO] [stdout] 89 | ctx.push_at(UInstruction::Ret { src }, src.origin); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available field is: `0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/block.rs:92:53 [INFO] [stdout] | [INFO] [stdout] 92 | ctx.push_at(UInstruction::Ret { src }, src.origin); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 92 | ctx.push_at(UInstruction::Ret { src: ir::upper::kind::URes::Unres(src) }, src.origin); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `origin` on type `id::ID` [INFO] [stdout] --> src/parser/v3/lower/block.rs:92:64 [INFO] [stdout] | [INFO] [stdout] 92 | ctx.push_at(UInstruction::Ret { src }, src.origin); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available field is: `0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/def.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | ty, [INFO] [stdout] | ^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `struct_field_type` found for reference `&upper::program::UProgram` in the current scope [INFO] [stdout] --> src/ir/lower/program.rs:364:20 [INFO] [stdout] | [INFO] [stdout] 364 | ty = p.struct_field_type(sty, name).expect("bad field"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ method not found in `&upper::program::UProgram` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/ir/lower/program.rs:374:17 [INFO] [stdout] | [INFO] [stdout] 374 | let LStructInst { id, args } = ty; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ -- this expression has type `&upper::ty::StructInst` [INFO] [stdout] | | [INFO] [stdout] | expected `StructInst`, found `LStructInst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0026]: struct `LStructInst` does not have fields named `id`, `args` [INFO] [stdout] --> src/ir/lower/program.rs:374:31 [INFO] [stdout] | [INFO] [stdout] 374 | let LStructInst { id, args } = ty; [INFO] [stdout] | ^^ ^^^^ struct `LStructInst` does not have these fields [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0027]: pattern does not mention fields `offsets`, `types`, `order`, `size` [INFO] [stdout] --> src/ir/lower/program.rs:374:17 [INFO] [stdout] | [INFO] [stdout] 374 | let LStructInst { id, args } = ty; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ missing fields `offsets`, `types`, `order`, `size` [INFO] [stdout] | [INFO] [stdout] help: include the missing fields in the pattern [INFO] [stdout] | [INFO] [stdout] 374 | let LStructInst { id, args, offsets, types, order, size } = ty; [INFO] [stdout] | +++++++++++++++++++++++++++++ [INFO] [stdout] help: if you don't care about these missing fields, you can explicitly ignore them [INFO] [stdout] | [INFO] [stdout] 374 | let LStructInst { id, args, offsets: _, types: _, order: _, size: _ } = ty; [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] help: or always ignore missing fields here [INFO] [stdout] | [INFO] [stdout] 374 | let LStructInst { id, args, .. } = ty; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:57:56 [INFO] [stdout] | [INFO] [stdout] 57 | ctx.push(UInstruction::LoadSlice { dst, src }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 57 | ctx.push(UInstruction::LoadSlice { dst: ir::upper::kind::URes::Unres(dst), src }); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:68:55 [INFO] [stdout] | [INFO] [stdout] 68 | ctx.push(UInstruction::LoadData { dst, src }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 68 | ctx.push(UInstruction::LoadData { dst: ir::upper::kind::URes::Unres(dst), src }); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:80:55 [INFO] [stdout] | [INFO] [stdout] 80 | ctx.push(UInstruction::LoadData { dst, src }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 80 | ctx.push(UInstruction::LoadData { dst: ir::upper::kind::URes::Unres(dst), src }); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:97:30 [INFO] [stdout] | [INFO] [stdout] 97 | dst: res1, [INFO] [stdout] | ^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 97 | dst: ir::upper::kind::URes::Unres(res1), [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `expect` found for reference `&upper::program::UProgram` in the current scope [INFO] [stdout] --> src/ir/lower/program.rs:375:27 [INFO] [stdout] | [INFO] [stdout] 375 | let struc = p.expect(*id); [INFO] [stdout] | ^^^^^^ method not found in `&upper::program::UProgram` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:98:30 [INFO] [stdout] | [INFO] [stdout] 98 | src: res2, [INFO] [stdout] | ^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 98 | src: ir::upper::kind::URes::Unres(res2), [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0769]: tuple variant `Type::Generic` written as struct variant [INFO] [stdout] --> src/ir/lower/program.rs:381:37 [INFO] [stdout] | [INFO] [stdout] 381 | let ty = if let Type::Generic { id } = &f.ty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use the tuple variant pattern syntax instead [INFO] [stdout] | [INFO] [stdout] 381 - let ty = if let Type::Generic { id } = &f.ty { [INFO] [stdout] 381 + let ty = if let Type::Generic(id) = &f.ty { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:110:34 [INFO] [stdout] | [INFO] [stdout] 110 | ... dst: dest, [INFO] [stdout] | ^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 110 | dst: ir::upper::kind::URes::Unres(dest), [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:111:34 [INFO] [stdout] | [INFO] [stdout] 111 | ... src: res, [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 111 | src: ir::upper::kind::URes::Unres(res), [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:118:56 [INFO] [stdout] | [INFO] [stdout] 118 | ctx.push(UInstruction::Deref { dst, src: res }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 118 | ctx.push(UInstruction::Deref { dst: ir::upper::kind::URes::Unres(dst), src: res }); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:118:66 [INFO] [stdout] | [INFO] [stdout] 118 | ctx.push(UInstruction::Deref { dst, src: res }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 118 | ctx.push(UInstruction::Deref { dst, src: ir::upper::kind::URes::Unres(res) }); [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:135:26 [INFO] [stdout] | [INFO] [stdout] 135 | dst: dest, [INFO] [stdout] | ^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 135 | dst: ir::upper::kind::URes::Unres(dest), [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:137:27 [INFO] [stdout] | [INFO] [stdout] 131 | nargs.push(arg); [INFO] [stdout] | ----- --- this argument has type `id::ID`... [INFO] [stdout] | | [INFO] [stdout] | ... which causes `nargs` to have type `Vec>` [INFO] [stdout] ... [INFO] [stdout] 137 | args: nargs, [INFO] [stdout] | ^^^^^ expected `Vec>>`, found `Vec>` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec>>` [INFO] [stdout] found struct `Vec>` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 131 | nargs.push(ir::upper::kind::URes::Unres(arg)); [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:146:52 [INFO] [stdout] | [INFO] [stdout] 146 | ctx.push(UInstruction::Construct { dst, struc, fields }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 146 | ctx.push(UInstruction::Construct { dst: ir::upper::kind::URes::Unres(dst), struc, fields }); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:146:64 [INFO] [stdout] | [INFO] [stdout] 146 | ctx.push(UInstruction::Construct { dst, struc, fields }); [INFO] [stdout] | ^^^^^^ expected `HashMap>>`, found `HashMap>` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `HashMap<_, URes>>` [INFO] [stdout] found struct `HashMap<_, id::ID>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:156:45 [INFO] [stdout] | [INFO] [stdout] 156 | ctx.push(UInstruction::If { cond, body }); [INFO] [stdout] | ^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 156 | ctx.push(UInstruction::If { cond: ir::upper::kind::URes::Unres(cond), body }); [INFO] [stdout] | +++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:156:51 [INFO] [stdout] | [INFO] [stdout] 156 | ctx.push(UInstruction::If { cond, body }); [INFO] [stdout] | ^^^^ expected `Vec>`, found `Vec` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get` found for reference `&upper::program::UProgram` in the current scope [INFO] [stdout] --> src/ir/lower/program.rs:441:33 [INFO] [stdout] | [INFO] [stdout] 441 | self.size_of_type(p, &p.get(var)?.ty) [INFO] [stdout] | ^^^ method not found in `&upper::program::UProgram` [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 `get`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `SliceIndex` [INFO] [stdout] help: some of the expressions' fields have a method of the same name [INFO] [stdout] | [INFO] [stdout] 441 | self.size_of_type(p, &p.data.get(var)?.ty) [INFO] [stdout] | +++++ [INFO] [stdout] 441 | self.size_of_type(p, &p.fns.get(var)?.ty) [INFO] [stdout] | ++++ [INFO] [stdout] 441 | self.size_of_type(p, &p.generics.get(var)?.ty) [INFO] [stdout] | +++++++++ [INFO] [stdout] 441 | self.size_of_type(p, &p.idents.get(var)?.ty) [INFO] [stdout] | +++++++ [INFO] [stdout] = and 7 other candidates [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:165:47 [INFO] [stdout] | [INFO] [stdout] 165 | ctx.push(UInstruction::Loop { body }); [INFO] [stdout] | ^^^^ expected `Vec>`, found `Vec` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:187:41 [INFO] [stdout] | [INFO] [stdout] 187 | ... origin: (), [INFO] [stdout] | ^^ expected `FileSpan`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:188:40 [INFO] [stdout] | [INFO] [stdout] 188 | ... gargs: (), [INFO] [stdout] | ^^ expected `Vec>`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:183:35 [INFO] [stdout] | [INFO] [stdout] 183 | ... base: MemRes { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 184 | | ... mem: Member { [INFO] [stdout] 185 | | ... id: MemberID [INFO] [stdout] 186 | | ... }, [INFO] [stdout] 187 | | ... origin: (), [INFO] [stdout] 188 | | ... gargs: (), [INFO] [stdout] 189 | | ... }, [INFO] [stdout] | |_______________________^ expected `ResBase`, found `MemRes` [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `ir::upper::ident::ResBase::Unvalidated` [INFO] [stdout] | [INFO] [stdout] 183 ~ base: ir::upper::ident::ResBase::Unvalidated(MemRes { [INFO] [stdout] 184 | mem: Member { [INFO] [stdout] ... [INFO] [stdout] 188 | gargs: (), [INFO] [stdout] 189 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 190 | ... path: (), [INFO] [stdout] | ^^ expected `Vec`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/func.rs:68:44 [INFO] [stdout] | [INFO] [stdout] 68 | i: UInstruction::Ret { src }, [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 68 | i: UInstruction::Ret { src: ir::upper::kind::URes::Unres(src) }, [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/func.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | ret, [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/func.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | instructions, [INFO] [stdout] | ^^^^^^^^^^^^ expected `Vec>`, found `Vec` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/func.rs:105:31 [INFO] [stdout] | [INFO] [stdout] 105 | base: MemRes { [INFO] [stdout] | _______________________________^ [INFO] [stdout] 106 | | mem: Member { [INFO] [stdout] 107 | | id: MemberID::Module(self.module), [INFO] [stdout] 108 | | }, [INFO] [stdout] 109 | | origin: self.origin, [INFO] [stdout] 110 | | gargs: Vec::new(), [INFO] [stdout] 111 | | }, [INFO] [stdout] | |_________________________^ expected `ResBase`, found `MemRes` [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `ir::upper::ident::ResBase::Unvalidated` [INFO] [stdout] | [INFO] [stdout] 105 ~ base: ir::upper::ident::ResBase::Unvalidated(MemRes { [INFO] [stdout] 106 | mem: Member { [INFO] [stdout] ... [INFO] [stdout] 110 | gargs: Vec::new(), [INFO] [stdout] 111 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:20:26 [INFO] [stdout] | [INFO] [stdout] 20 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing field `origin` in initializer of `kind::StructField` [INFO] [stdout] --> src/parser/v3/lower/struc.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | .map(|(name, ty)| (name, StructField { ty })) [INFO] [stdout] | ^^^^^^^^^^^ missing `origin` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:21:26 [INFO] [stdout] | [INFO] [stdout] 21 | src: src.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `gargs` and `ty` in initializer of `upper::ident::MemberIdent` [INFO] [stdout] --> src/parser/v3/lower/ty.rs:33:27 [INFO] [stdout] | [INFO] [stdout] 33 | path.push(MemberIdent { [INFO] [stdout] | ^^^^^^^^^^^ missing `gargs` and `ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `gargs` and `ty` in initializer of `upper::ident::MemberIdent` [INFO] [stdout] --> src/parser/v3/lower/ty.rs:46:23 [INFO] [stdout] | [INFO] [stdout] 46 | path.push(MemberIdent { [INFO] [stdout] | ^^^^^^^^^^^ missing `gargs` and `ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant or associated item named `Unres` found for enum `upper::ty::Type` in the current scope [INFO] [stdout] --> src/parser/v3/lower/ty.rs:51:28 [INFO] [stdout] | [INFO] [stdout] 51 | let ty = Type::Unres(MemberPath { [INFO] [stdout] | ^^^^^ variant or associated item not found in `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] ::: src/ir/upper/ty.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub enum Type { [INFO] [stdout] | ------------- variant or associated item `Unres` not found for this enum [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `gargs` and `ty` in initializer of `upper::ident::MemberIdent` [INFO] [stdout] --> src/parser/v3/lower/ty.rs:60:27 [INFO] [stdout] | [INFO] [stdout] 60 | path.push(MemberIdent { [INFO] [stdout] | ^^^^^^^^^^^ missing `gargs` and `ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:24:26 [INFO] [stdout] | [INFO] [stdout] 24 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant or associated item named `Unres` found for enum `upper::ty::Type` in the current scope [INFO] [stdout] --> src/parser/v3/lower/ty.rs:65:23 [INFO] [stdout] | [INFO] [stdout] 65 | Type::Unres(MemberPath { [INFO] [stdout] | ^^^^^ variant or associated item not found in `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] ::: src/ir/upper/ty.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub enum Type { [INFO] [stdout] | ------------- variant or associated item `Unres` not found for this enum [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/mod.rs:40:18 [INFO] [stdout] | [INFO] [stdout] 40 | ret: p.def_ty(Type::Unit), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/mod.rs:63:35 [INFO] [stdout] | [INFO] [stdout] 63 | p.fns[fid].instructions = fctx.instructions; [INFO] [stdout] | ----------------------- ^^^^^^^^^^^^^^^^^ expected `Vec>`, found `Vec` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:25:26 [INFO] [stdout] | [INFO] [stdout] 25 | src: src.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/mod.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | ty: ty.ty(self), [INFO] [stdout] | ^^^^^^^^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:28:26 [INFO] [stdout] | [INFO] [stdout] 28 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:29:26 [INFO] [stdout] | [INFO] [stdout] 29 | src: src.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:32:26 [INFO] [stdout] | [INFO] [stdout] 32 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:36:26 [INFO] [stdout] | [INFO] [stdout] 36 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:40:26 [INFO] [stdout] | [INFO] [stdout] 40 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:42:45 [INFO] [stdout] | [INFO] [stdout] 42 | args: args.iter().map(|i| i.var(p)).try_collect()?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `resolve` found for reference `&riscv::asm::LinkerInstruction>>, URes>>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:47:32 [INFO] [stdout] | [INFO] [stdout] 47 | .map(|i| i.resolve(p)) [INFO] [stdout] | ^^^^^^^ method not found in `&riscv::asm::LinkerInstruction>>, URes>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `resolve` found for reference `&upper::instr::AsmBlockArg>>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:49:45 [INFO] [stdout] | [INFO] [stdout] 49 | args: args.iter().map(|a| a.resolve(p)).try_collect()?, [INFO] [stdout] | ^^^^^^^ method not found in `&upper::instr::AsmBlockArg>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:51:49 [INFO] [stdout] | [INFO] [stdout] 51 | I::Ret { src } => I::Ret { src: src.var(p)? }, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:53:26 [INFO] [stdout] | [INFO] [stdout] 53 | dst: dst.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:57:48 [INFO] [stdout] | [INFO] [stdout] 57 | .map(|(name, ident)| ident.var(p).map(|i| (name.clone(), i))) [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `var` found for reference `&URes>` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:61:28 [INFO] [stdout] | [INFO] [stdout] 61 | cond: cond.var(p)?, [INFO] [stdout] | ^^^ method not found in `&URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `parser::ParsableWith` [INFO] [stdout] --> src/parser/v3/nodes/struc.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{parser::ParsableWith, util::Padder}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `resolve` found for reference `&id::ID` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:62:45 [INFO] [stdout] | [INFO] [stdout] 62 | body: body.iter().map(|i| i.resolve(p)).try_collect()?, [INFO] [stdout] | ^^^^^^^ method not found in `&id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `resolve` found for reference `&id::ID` in the current scope [INFO] [stdout] --> src/ir/lower/res.rs:65:45 [INFO] [stdout] | [INFO] [stdout] 65 | body: body.iter().map(|i| i.resolve(p)).try_collect()?, [INFO] [stdout] | ^^^^^^^ method not found in `&id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: struct takes 2 lifetime arguments but 3 lifetime arguments were supplied [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:15:30 [INFO] [stdout] | [INFO] [stdout] 15 | let opi = |ctx: &mut FnLowerCtx<'_, '_, '_>, op: Funct3| -> Option { [INFO] [stdout] | ^^^^^^^^^^ ---- help: remove the lifetime argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 lifetime arguments [INFO] [stdout] | [INFO] [stdout] note: struct defined here, with 2 lifetime parameters: `'a`, `'b` [INFO] [stdout] --> src/parser/v3/lower/func.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct FnLowerCtx<'a, 'b> { [INFO] [stdout] | ^^^^^^^^^^ -- -- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: struct takes 2 lifetime arguments but 3 lifetime arguments were supplied [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:25:29 [INFO] [stdout] | [INFO] [stdout] 25 | let op = |ctx: &mut FnLowerCtx<'_, '_, '_>, op: Funct3, funct: Funct7| -> Option { [INFO] [stdout] | ^^^^^^^^^^ ---- help: remove the lifetime argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 lifetime arguments [INFO] [stdout] | [INFO] [stdout] note: struct defined here, with 2 lifetime parameters: `'a`, `'b` [INFO] [stdout] --> src/parser/v3/lower/func.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct FnLowerCtx<'a, 'b> { [INFO] [stdout] | ^^^^^^^^^^ -- -- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: struct takes 2 lifetime arguments but 1 lifetime argument was supplied [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:41:32 [INFO] [stdout] | [INFO] [stdout] 41 | let opif7 = |ctx: &mut FnLowerCtx<'_>, op: Funct3, funct: Funct7| -> Option { [INFO] [stdout] | ^^^^^^^^^^ -- supplied 1 lifetime argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 lifetime arguments [INFO] [stdout] | [INFO] [stdout] note: struct defined here, with 2 lifetime parameters: `'a`, `'b` [INFO] [stdout] --> src/parser/v3/lower/func.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct FnLowerCtx<'a, 'b> { [INFO] [stdout] | ^^^^^^^^^^ -- -- [INFO] [stdout] help: add missing lifetime argument [INFO] [stdout] | [INFO] [stdout] 41 | let opif7 = |ctx: &mut FnLowerCtx<'_, '_>, op: Funct3, funct: Funct7| -> Option { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: struct takes 2 lifetime arguments but 1 lifetime argument was supplied [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:57:32 [INFO] [stdout] | [INFO] [stdout] 57 | let store = |ctx: &mut FnLowerCtx<'_>, width: Funct3| -> Option { [INFO] [stdout] | ^^^^^^^^^^ -- supplied 1 lifetime argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 lifetime arguments [INFO] [stdout] | [INFO] [stdout] note: struct defined here, with 2 lifetime parameters: `'a`, `'b` [INFO] [stdout] --> src/parser/v3/lower/func.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct FnLowerCtx<'a, 'b> { [INFO] [stdout] | ^^^^^^^^^^ -- -- [INFO] [stdout] help: add missing lifetime argument [INFO] [stdout] | [INFO] [stdout] 57 | let store = |ctx: &mut FnLowerCtx<'_, '_>, width: Funct3| -> Option { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: struct takes 2 lifetime arguments but 1 lifetime argument was supplied [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:72:31 [INFO] [stdout] | [INFO] [stdout] 72 | let load = |ctx: &mut FnLowerCtx<'_>, width: Funct3| -> Option { [INFO] [stdout] | ^^^^^^^^^^ -- supplied 1 lifetime argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 lifetime arguments [INFO] [stdout] | [INFO] [stdout] note: struct defined here, with 2 lifetime parameters: `'a`, `'b` [INFO] [stdout] --> src/parser/v3/lower/func.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct FnLowerCtx<'a, 'b> { [INFO] [stdout] | ^^^^^^^^^^ -- -- [INFO] [stdout] help: add missing lifetime argument [INFO] [stdout] | [INFO] [stdout] 72 | let load = |ctx: &mut FnLowerCtx<'_, '_>, width: Funct3| -> Option { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:105:34 [INFO] [stdout] | [INFO] [stdout] 105 | Self::La { dest, src } [INFO] [stdout] | ^^^ expected `ID`, found `UIdent` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found struct `upper::ident::UIdent` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:177:5 [INFO] [stdout] | [INFO] [stdout] 169 | pub fn arg_to_var(node: &Node, ctx: &mut FnLowerCtx) -> Option { [INFO] [stdout] | -------------- expected `Option` because of return type [INFO] [stdout] ... [INFO] [stdout] 177 | ctx.ident(node) [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected `Option`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:184:43 [INFO] [stdout] | [INFO] [stdout] 184 | let reg = Reg::from_ident(node, ctx)?; [INFO] [stdout] | --------------- ^^^^ expected `&Node`, found `&PIdent` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&node::Node` [INFO] [stdout] found reference `&nodes::ident::PIdent` [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:193:12 [INFO] [stdout] | [INFO] [stdout] 193 | pub fn from_ident(node: &Node, ctx: &mut FnLowerCtx) -> Option { [INFO] [stdout] | ^^^^^^^^^^ ------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be applied to values that implement `Try` [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:187:45 [INFO] [stdout] | [INFO] [stdout] 187 | PAsmArg::Ref(node) => Self::Var(ctx.ident(node)?), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ the `?` operator cannot be applied to type `id::ID` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Try` is not implemented for `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `inner` on type `&nodes::ident::PIdent` [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:208:21 [INFO] [stdout] | [INFO] [stdout] 208 | let word = node.inner.as_ref()?; [INFO] [stdout] | ^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available field is: `0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `origin` on type `&nodes::ident::PIdent` [INFO] [stdout] --> src/parser/v3/lower/arch/riscv64.rs:212:29 [INFO] [stdout] | [INFO] [stdout] 212 | ctx.err_at(node.origin, format!("Expected an i64, found {}", word)); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available field is: `0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0271]: type mismatch resolving `::Var == ID` [INFO] [stdout] --> src/parser/v3/lower/asm.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | / instructions: { [INFO] [stdout] 53 | | let mut v = Vec::new(); [INFO] [stdout] 54 | | for i in &self.instructions { [INFO] [stdout] 55 | | if let Some(i) = i.lower(ctx) { [INFO] [stdout] ... | [INFO] [stdout] 59 | | v [INFO] [stdout] 60 | | }, [INFO] [stdout] | |_____________^ type mismatch resolving `::Var == ID` [INFO] [stdout] | [INFO] [stdout] note: expected this to be `id::ID` [INFO] [stdout] --> src/ir/upper/instr.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | type Var = VarRes; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found enum `URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0271]: type mismatch resolving `::Var == ID` [INFO] [stdout] --> src/parser/v3/lower/asm.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | args, [INFO] [stdout] | ^^^^ type mismatch resolving `::Var == ID` [INFO] [stdout] | [INFO] [stdout] note: expected this to be `id::ID` [INFO] [stdout] --> src/ir/upper/instr.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | type Var = VarRes; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = note: expected struct `id::ID` [INFO] [stdout] found enum `URes>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `missing` [INFO] [stdout] --> src/compiler/arch/riscv/asm.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | missing: bool, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_missing` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `path_for` found for mutable reference `&mut v3::lower::func::FnLowerCtx<'_, '_>` in the current scope [INFO] [stdout] --> src/parser/v3/lower/block.rs:35:32 [INFO] [stdout] | [INFO] [stdout] 35 | let path = ctx.path_for(name); [INFO] [stdout] | ^^^^^^^^ method not found in `&mut v3::lower::func::FnLowerCtx<'_, '_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `imports` on type `&mut v3::lower::func::FnLowerCtx<'_, '_>` [INFO] [stdout] --> src/parser/v3/lower/block.rs:37:24 [INFO] [stdout] | [INFO] [stdout] 37 | if ctx.imports.insert(import) { [INFO] [stdout] | ^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `ctx`, `instructions`, `origin` [INFO] [stdout] = note: available fields are: `p`, `output`, `module`, `temp`, `ident_stack` [INFO] [stdout] = note: available fields are: `fns`, `structs`, `modules`, `data`, `generics` ... and 7 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant or associated item named `Module` found for enum `upper::ty::Type` in the current scope [INFO] [stdout] --> src/parser/v3/lower/block.rs:40:35 [INFO] [stdout] | [INFO] [stdout] 40 | ty: Type::Module(path), [INFO] [stdout] | ^^^^^^ variant or associated item not found in `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] ::: src/ir/upper/ty.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub enum Type { [INFO] [stdout] | ------------- variant or associated item `Module` not found for this enum [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `children` and `parent` in initializer of `kind::UVar` [INFO] [stdout] --> src/parser/v3/lower/block.rs:38:33 [INFO] [stdout] | [INFO] [stdout] 38 | ctx.def_var(UVar { [INFO] [stdout] | ^^^^ missing `children` and `parent` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `lower` exists for reference `&&node::Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/parser/v3/lower/block.rs:49:28 [INFO] [stdout] | [INFO] [stdout] 49 | structs.push(s.lower(ctx.ctx)); [INFO] [stdout] | ^^^^^ method cannot be called on `&&node::Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/parser/v3/node.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Node { [INFO] [stdout] | ------------------ doesn't satisfy `node::Node: FnLowerable` [INFO] [stdout] | [INFO] [stdout] ::: src/parser/v3/nodes/struc.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct PStruct { [INFO] [stdout] | ------------------ doesn't satisfy `nodes::struc::PStruct: FnLowerable` [INFO] [stdout] | [INFO] [stdout] note: trait bound `nodes::struc::PStruct: FnLowerable` was not satisfied [INFO] [stdout] --> src/parser/v3/lower/func.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | impl FnLowerable for Node { [INFO] [stdout] | ^^^^^^^^^^^ ----------- ------- [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] note: the trait `FnLowerable` must be implemented [INFO] [stdout] --> src/parser/v3/lower/func.rs:160:1 [INFO] [stdout] | [INFO] [stdout] 160 | pub trait FnLowerable { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `FnLowerable` defines an item `lower`, perhaps you need to implement it [INFO] [stdout] --> src/parser/v3/lower/func.rs:160:1 [INFO] [stdout] | [INFO] [stdout] 160 | pub trait FnLowerable { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/block.rs:82:54 [INFO] [stdout] | [INFO] [stdout] 82 | ctx.push(UInstruction::Mv { dst: def, src: res }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID<_>` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Res` [INFO] [stdout] | [INFO] [stdout] 82 | ctx.push(UInstruction::Mv { dst: ir::upper::kind::URes::Res(def), src: res }); [INFO] [stdout] | +++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/block.rs:82:64 [INFO] [stdout] | [INFO] [stdout] 82 | ctx.push(UInstruction::Mv { dst: def, src: res }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 82 | ctx.push(UInstruction::Mv { dst: def, src: ir::upper::kind::URes::Unres(res) }); [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/block.rs:89:53 [INFO] [stdout] | [INFO] [stdout] 89 | ctx.push_at(UInstruction::Ret { src }, src.origin); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 89 | ctx.push_at(UInstruction::Ret { src: ir::upper::kind::URes::Unres(src) }, src.origin); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `origin` on type `id::ID` [INFO] [stdout] --> src/parser/v3/lower/block.rs:89:64 [INFO] [stdout] | [INFO] [stdout] 89 | ctx.push_at(UInstruction::Ret { src }, src.origin); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available field is: `0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/block.rs:92:53 [INFO] [stdout] | [INFO] [stdout] 92 | ctx.push_at(UInstruction::Ret { src }, src.origin); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 92 | ctx.push_at(UInstruction::Ret { src: ir::upper::kind::URes::Unres(src) }, src.origin); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `origin` on type `id::ID` [INFO] [stdout] --> src/parser/v3/lower/block.rs:92:64 [INFO] [stdout] | [INFO] [stdout] 92 | ctx.push_at(UInstruction::Ret { src }, src.origin); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available field is: `0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/def.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | ty, [INFO] [stdout] | ^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:57:56 [INFO] [stdout] | [INFO] [stdout] 57 | ctx.push(UInstruction::LoadSlice { dst, src }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 57 | ctx.push(UInstruction::LoadSlice { dst: ir::upper::kind::URes::Unres(dst), src }); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:68:55 [INFO] [stdout] | [INFO] [stdout] 68 | ctx.push(UInstruction::LoadData { dst, src }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 68 | ctx.push(UInstruction::LoadData { dst: ir::upper::kind::URes::Unres(dst), src }); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:80:55 [INFO] [stdout] | [INFO] [stdout] 80 | ctx.push(UInstruction::LoadData { dst, src }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 80 | ctx.push(UInstruction::LoadData { dst: ir::upper::kind::URes::Unres(dst), src }); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:97:30 [INFO] [stdout] | [INFO] [stdout] 97 | dst: res1, [INFO] [stdout] | ^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 97 | dst: ir::upper::kind::URes::Unres(res1), [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:98:30 [INFO] [stdout] | [INFO] [stdout] 98 | src: res2, [INFO] [stdout] | ^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 98 | src: ir::upper::kind::URes::Unres(res2), [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:110:34 [INFO] [stdout] | [INFO] [stdout] 110 | ... dst: dest, [INFO] [stdout] | ^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 110 | dst: ir::upper::kind::URes::Unres(dest), [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:111:34 [INFO] [stdout] | [INFO] [stdout] 111 | ... src: res, [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 111 | src: ir::upper::kind::URes::Unres(res), [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:118:56 [INFO] [stdout] | [INFO] [stdout] 118 | ctx.push(UInstruction::Deref { dst, src: res }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 118 | ctx.push(UInstruction::Deref { dst: ir::upper::kind::URes::Unres(dst), src: res }); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:118:66 [INFO] [stdout] | [INFO] [stdout] 118 | ctx.push(UInstruction::Deref { dst, src: res }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 118 | ctx.push(UInstruction::Deref { dst, src: ir::upper::kind::URes::Unres(res) }); [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:135:26 [INFO] [stdout] | [INFO] [stdout] 135 | dst: dest, [INFO] [stdout] | ^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 135 | dst: ir::upper::kind::URes::Unres(dest), [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:137:27 [INFO] [stdout] | [INFO] [stdout] 131 | nargs.push(arg); [INFO] [stdout] | ----- --- this argument has type `id::ID`... [INFO] [stdout] | | [INFO] [stdout] | ... which causes `nargs` to have type `Vec>` [INFO] [stdout] ... [INFO] [stdout] 137 | args: nargs, [INFO] [stdout] | ^^^^^ expected `Vec>>`, found `Vec>` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec>>` [INFO] [stdout] found struct `Vec>` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 131 | nargs.push(ir::upper::kind::URes::Unres(arg)); [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:146:52 [INFO] [stdout] | [INFO] [stdout] 146 | ctx.push(UInstruction::Construct { dst, struc, fields }); [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 146 | ctx.push(UInstruction::Construct { dst: ir::upper::kind::URes::Unres(dst), struc, fields }); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:146:64 [INFO] [stdout] | [INFO] [stdout] 146 | ctx.push(UInstruction::Construct { dst, struc, fields }); [INFO] [stdout] | ^^^^^^ expected `HashMap>>`, found `HashMap>` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `HashMap<_, URes>>` [INFO] [stdout] found struct `HashMap<_, id::ID>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:156:45 [INFO] [stdout] | [INFO] [stdout] 156 | ctx.push(UInstruction::If { cond, body }); [INFO] [stdout] | ^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 156 | ctx.push(UInstruction::If { cond: ir::upper::kind::URes::Unres(cond), body }); [INFO] [stdout] | +++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:156:51 [INFO] [stdout] | [INFO] [stdout] 156 | ctx.push(UInstruction::If { cond, body }); [INFO] [stdout] | ^^^^ expected `Vec>`, found `Vec` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:165:47 [INFO] [stdout] | [INFO] [stdout] 165 | ctx.push(UInstruction::Loop { body }); [INFO] [stdout] | ^^^^ expected `Vec>`, found `Vec` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:187:41 [INFO] [stdout] | [INFO] [stdout] 187 | ... origin: (), [INFO] [stdout] | ^^ expected `FileSpan`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:188:40 [INFO] [stdout] | [INFO] [stdout] 188 | ... gargs: (), [INFO] [stdout] | ^^ expected `Vec>`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:183:35 [INFO] [stdout] | [INFO] [stdout] 183 | ... base: MemRes { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 184 | | ... mem: Member { [INFO] [stdout] 185 | | ... id: MemberID [INFO] [stdout] 186 | | ... }, [INFO] [stdout] 187 | | ... origin: (), [INFO] [stdout] 188 | | ... gargs: (), [INFO] [stdout] 189 | | ... }, [INFO] [stdout] | |_______________________^ expected `ResBase`, found `MemRes` [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `ir::upper::ident::ResBase::Unvalidated` [INFO] [stdout] | [INFO] [stdout] 183 ~ base: ir::upper::ident::ResBase::Unvalidated(MemRes { [INFO] [stdout] 184 | mem: Member { [INFO] [stdout] ... [INFO] [stdout] 188 | gargs: (), [INFO] [stdout] 189 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/expr.rs:190:35 [INFO] [stdout] | [INFO] [stdout] 190 | ... path: (), [INFO] [stdout] | ^^ expected `Vec`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/func.rs:68:44 [INFO] [stdout] | [INFO] [stdout] 68 | i: UInstruction::Ret { src }, [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] help: try wrapping the expression in `ir::upper::kind::URes::Unres` [INFO] [stdout] | [INFO] [stdout] 68 | i: UInstruction::Ret { src: ir::upper::kind::URes::Unres(src) }, [INFO] [stdout] | ++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/func.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | ret, [INFO] [stdout] | ^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/func.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | instructions, [INFO] [stdout] | ^^^^^^^^^^^^ expected `Vec>`, found `Vec` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/func.rs:105:31 [INFO] [stdout] | [INFO] [stdout] 105 | base: MemRes { [INFO] [stdout] | _______________________________^ [INFO] [stdout] 106 | | mem: Member { [INFO] [stdout] 107 | | id: MemberID::Module(self.module), [INFO] [stdout] 108 | | }, [INFO] [stdout] 109 | | origin: self.origin, [INFO] [stdout] 110 | | gargs: Vec::new(), [INFO] [stdout] 111 | | }, [INFO] [stdout] | |_________________________^ expected `ResBase`, found `MemRes` [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `ir::upper::ident::ResBase::Unvalidated` [INFO] [stdout] | [INFO] [stdout] 105 ~ base: ir::upper::ident::ResBase::Unvalidated(MemRes { [INFO] [stdout] 106 | mem: Member { [INFO] [stdout] ... [INFO] [stdout] 110 | gargs: Vec::new(), [INFO] [stdout] 111 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing field `origin` in initializer of `kind::StructField` [INFO] [stdout] --> src/parser/v3/lower/struc.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | .map(|(name, ty)| (name, StructField { ty })) [INFO] [stdout] | ^^^^^^^^^^^ missing `origin` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `gargs` and `ty` in initializer of `upper::ident::MemberIdent` [INFO] [stdout] --> src/parser/v3/lower/ty.rs:33:27 [INFO] [stdout] | [INFO] [stdout] 33 | path.push(MemberIdent { [INFO] [stdout] | ^^^^^^^^^^^ missing `gargs` and `ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `gargs` and `ty` in initializer of `upper::ident::MemberIdent` [INFO] [stdout] --> src/parser/v3/lower/ty.rs:46:23 [INFO] [stdout] | [INFO] [stdout] 46 | path.push(MemberIdent { [INFO] [stdout] | ^^^^^^^^^^^ missing `gargs` and `ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant or associated item named `Unres` found for enum `upper::ty::Type` in the current scope [INFO] [stdout] --> src/parser/v3/lower/ty.rs:51:28 [INFO] [stdout] | [INFO] [stdout] 51 | let ty = Type::Unres(MemberPath { [INFO] [stdout] | ^^^^^ variant or associated item not found in `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] ::: src/ir/upper/ty.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub enum Type { [INFO] [stdout] | ------------- variant or associated item `Unres` not found for this enum [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `gargs` and `ty` in initializer of `upper::ident::MemberIdent` [INFO] [stdout] --> src/parser/v3/lower/ty.rs:60:27 [INFO] [stdout] | [INFO] [stdout] 60 | path.push(MemberIdent { [INFO] [stdout] | ^^^^^^^^^^^ missing `gargs` and `ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant or associated item named `Unres` found for enum `upper::ty::Type` in the current scope [INFO] [stdout] --> src/parser/v3/lower/ty.rs:65:23 [INFO] [stdout] | [INFO] [stdout] 65 | Type::Unres(MemberPath { [INFO] [stdout] | ^^^^^ variant or associated item not found in `upper::ty::Type` [INFO] [stdout] | [INFO] [stdout] ::: src/ir/upper/ty.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub enum Type { [INFO] [stdout] | ------------- variant or associated item `Unres` not found for this enum [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/mod.rs:40:18 [INFO] [stdout] | [INFO] [stdout] 40 | ret: p.def_ty(Type::Unit), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/mod.rs:63:35 [INFO] [stdout] | [INFO] [stdout] 63 | p.fns[fid].instructions = fctx.instructions; [INFO] [stdout] | ----------------------- ^^^^^^^^^^^^^^^^^ expected `Vec>`, found `Vec` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/mod.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | ty: ty.ty(self), [INFO] [stdout] | ^^^^^^^^^^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `g` [INFO] [stdout] --> src/ir/upper/resolve/ident.rs:190:13 [INFO] [stdout] | [INFO] [stdout] 190 | let g = &generics[dst]; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_g` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/ir/upper/resolve/ident.rs:191:13 [INFO] [stdout] | [INFO] [stdout] 191 | let t = &types[src]; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `errs` [INFO] [stdout] --> src/ir/upper/resolve/ident.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | errs: &mut Vec, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_errs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | s: &mut Sources, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `types` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | types: &mut Vec, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `errs` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | errs: &mut Vec, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_errs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | s: &mut Sources, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `types` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | types: &mut Vec, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `errs` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | errs: &mut Vec, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_errs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:243:9 [INFO] [stdout] | [INFO] [stdout] 243 | s: &mut Sources, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/ir/lower/program.rs:428:27 [INFO] [stdout] | [INFO] [stdout] 428 | Type::Generic(id) => return None, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fi` [INFO] [stdout] --> src/ir/lower/program.rs:431:26 [INFO] [stdout] | [INFO] [stdout] 431 | Type::FnInst(fi) => 0, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/parser/v3/lower/mod.rs:117:17 [INFO] [stdout] | [INFO] [stdout] 117 | fn ty(self, p: &mut UProgram) -> TypeID { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/parser/v3/parse.rs:37:34 [INFO] [stdout] | [INFO] [stdout] 37 | ParseResult::Recover(v) => ControlFlow::Break(None), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `parser::ParsableWith` [INFO] [stdout] --> src/parser/v3/nodes/struc.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{parser::ParsableWith, util::Padder}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RType` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:136:36 [INFO] [stdout] | [INFO] [stdout] 136 | if !matches!(ty.0, RType::Bits(64)) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | use of undeclared type `RType` [INFO] [stdout] | help: an enum with a similar name exists: `Type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/struc.rs:36:48 [INFO] [stdout] | [INFO] [stdout] 36 | .map(|(name, ty)| (name, StructField { ty })) [INFO] [stdout] | ^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0026, E0027, E0061, E0063, E0107, E0271, E0277, E0308, E0423... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0026`. [INFO] [stdout] [INFO] [stderr] error: could not compile `lang` (bin "lang" test) due to 196 previous errors; 24 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: unused variable: `missing` [INFO] [stdout] --> src/compiler/arch/riscv/asm.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | missing: bool, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_missing` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `g` [INFO] [stdout] --> src/ir/upper/resolve/ident.rs:190:13 [INFO] [stdout] | [INFO] [stdout] 190 | let g = &generics[dst]; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_g` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/ir/upper/resolve/ident.rs:191:13 [INFO] [stdout] | [INFO] [stdout] 191 | let t = &types[src]; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `errs` [INFO] [stdout] --> src/ir/upper/resolve/ident.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | errs: &mut Vec, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_errs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | s: &mut Sources, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `types` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | types: &mut Vec, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `errs` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | errs: &mut Vec, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_errs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | s: &mut Sources, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `types` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | types: &mut Vec, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_types` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `errs` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | errs: &mut Vec, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_errs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/ir/upper/resolve/mod.rs:243:9 [INFO] [stdout] | [INFO] [stdout] 243 | s: &mut Sources, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/ir/lower/program.rs:428:27 [INFO] [stdout] | [INFO] [stdout] 428 | Type::Generic(id) => return None, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fi` [INFO] [stdout] --> src/ir/lower/program.rs:431:26 [INFO] [stdout] | [INFO] [stdout] 431 | Type::FnInst(fi) => 0, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/parser/v3/lower/mod.rs:117:17 [INFO] [stdout] | [INFO] [stdout] 117 | fn ty(self, p: &mut UProgram) -> TypeID { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/parser/v3/parse.rs:37:34 [INFO] [stdout] | [INFO] [stdout] 37 | ParseResult::Recover(v) => ControlFlow::Break(None), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RType` [INFO] [stdout] --> src/ir/upper/resolve/instr.rs:136:36 [INFO] [stdout] | [INFO] [stdout] 136 | if !matches!(ty.0, RType::Bits(64)) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | use of undeclared type `RType` [INFO] [stdout] | help: an enum with a similar name exists: `Type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/parser/v3/lower/struc.rs:36:48 [INFO] [stdout] | [INFO] [stdout] 36 | .map(|(name, ty)| (name, StructField { ty })) [INFO] [stdout] | ^^ expected `URes>`, found `ID` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `URes>` [INFO] [stdout] found struct `id::ID` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0026, E0027, E0061, E0063, E0107, E0271, E0277, E0308, E0423... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0026`. [INFO] [stdout] [INFO] [stderr] error: could not compile `lang` (bin "lang") due to 196 previous errors; 24 warnings emitted [INFO] running `Command { std: "docker" "inspect" "8cfa78f3522d26d6f2a3ae8f730d3f4e13f49670d0cc134045fbd5dd6d8b634e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8cfa78f3522d26d6f2a3ae8f730d3f4e13f49670d0cc134045fbd5dd6d8b634e", kill_on_drop: false }` [INFO] [stdout] 8cfa78f3522d26d6f2a3ae8f730d3f4e13f49670d0cc134045fbd5dd6d8b634e