[INFO] cloning repository https://github.com/vincent-163/lambda-calculus [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vincent-163/lambda-calculus" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvincent-163%2Flambda-calculus", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvincent-163%2Flambda-calculus'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 361fb3b696b796fc95a949c300ab50cc208f869f [INFO] building vincent-163/lambda-calculus against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvincent-163%2Flambda-calculus" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/vincent-163/lambda-calculus on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/vincent-163/lambda-calculus [INFO] finished tweaking git repo https://github.com/vincent-163/lambda-calculus [INFO] tweaked toml for git repo https://github.com/vincent-163/lambda-calculus written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/vincent-163/lambda-calculus 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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e39f2c0a1e6bcb21e6b57078b798b11bbf1255029562ea474c7758ef090d5584 [INFO] running `Command { std: "docker" "start" "-a" "e39f2c0a1e6bcb21e6b57078b798b11bbf1255029562ea474c7758ef090d5584", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e39f2c0a1e6bcb21e6b57078b798b11bbf1255029562ea474c7758ef090d5584", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e39f2c0a1e6bcb21e6b57078b798b11bbf1255029562ea474c7758ef090d5584", kill_on_drop: false }` [INFO] [stdout] e39f2c0a1e6bcb21e6b57078b798b11bbf1255029562ea474c7758ef090d5584 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 338073df93996b008b2b9c9933c6edbc8f829c44cc8a085ac374d7380c28b47c [INFO] running `Command { std: "docker" "start" "-a" "338073df93996b008b2b9c9933c6edbc8f829c44cc8a085ac374d7380c28b47c", kill_on_drop: false }` [INFO] [stderr] Compiling coc v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/a_lambda_main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/b_coc.rs:101:17 [INFO] [stdout] | [INFO] [stdout] 101 | (next.get(i-1, mode)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 101 - (next.get(i-1, mode)) [INFO] [stdout] 101 + next.get(i-1, mode) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Token` [INFO] [stdout] --> src/d_coc_main.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use d_coc::{Token, PartialTerm, next_token, TermTree}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `c_coc::TermParser` [INFO] [stdout] --> src/c_coc_main.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use c_coc::{Token, TermParser, next_token}; [INFO] [stdout] | ^^^^^^^^^^ no `TermParser` in `c_coc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/a_lambda_main.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | for i in 0..x { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/a_lambda_main.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | for i in 0..15 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `fun` in this scope [INFO] [stdout] --> src/c_coc.rs:291:36 [INFO] [stdout] | [INFO] [stdout] 291 | let (funt, funv) = fun; [INFO] [stdout] | ^^^ help: a local variable with a similar name exists: `funt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/a_lambda_main.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | let mut y = a(a(add,n(3)),n(5)); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/a_lambda_main.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | let mut y = a(pred.clone(), n(5)); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:293:24 [INFO] [stdout] | [INFO] [stdout] 293 | if let TermTreeLazy::FOR(funt) = Deref::deref(funt) { [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 293 | if let TermTree::FOR(funt) = Deref::deref(funt) { [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:294:51 [INFO] [stdout] | [INFO] [stdout] 294 | if check(&funt.typ, &top.typ, cur.next_ctx.id()) { [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:295:42 [INFO] [stdout] | [INFO] [stdout] 295 | let val = if let TermTreeLazy::LAM(funv) = Deref::deref(funv) { [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 295 | let val = if let TermTree::LAM(funv) = Deref::deref(funv) { [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:298:38 [INFO] [stdout] | [INFO] [stdout] 298 | ... Arc::new(TermTreeLazy::APP(funv.clone(), argv.clone())) [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 298 | Arc::new(TermTree::APP(funv.clone(), argv.clone())) [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:300:86 [INFO] [stdout] | [INFO] [stdout] 300 | (TermParserState::Complete((funt.apply(argv.clone()), val)), cur.next_ctx.clone()) [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:302:44 [INFO] [stdout] | [INFO] [stdout] 302 | let err = Arc::new(TermTreeLazy::ERR(format!("Type mismatch for APP: funt {:?}, argt {:?}", funt, argt))); [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 302 | let err = Arc::new(TermTree::ERR(format!("Type mismatch for APP: funt {:?}, argt {:?}", funt, argt))); [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:303:73 [INFO] [stdout] | [INFO] [stdout] 303 | (TermParserState::Complete((err.clone(), err)), cur.next_ctx.clone()) [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:311:43 [INFO] [stdout] | [INFO] [stdout] 311 | if check(&typt, &Arc::new(TermTreeLazy::SET()), 0) { [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 311 | if check(&typt, &Arc::new(TermTree::SET()), 0) { [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:312:62 [INFO] [stdout] | [INFO] [stdout] 312 | (TermParserState::FORValue(top.clone()), cur.next_ctx.extend(Arc::new(TermTreeLazy::SET()), typv.clone())) [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:312:91 [INFO] [stdout] | [INFO] [stdout] 312 | (TermParserState::FORValue(top.clone()), cur.next_ctx.extend(Arc::new(TermTreeLazy::SET()), typv.clone())) [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 312 | (TermParserState::FORValue(top.clone()), cur.next_ctx.extend(Arc::new(TermTree::SET()), typv.clone())) [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:314:40 [INFO] [stdout] | [INFO] [stdout] 314 | let err = Arc::new(TermTreeLazy::ERR(format!("In FOR, type is not of type Set: {:?}", top))); [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 314 | let err = Arc::new(TermTree::ERR(format!("In FOR, type is not of type Set: {:?}", top))); [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:315:69 [INFO] [stdout] | [INFO] [stdout] 315 | (TermParserState::Complete((err.clone(), err)), cur.next_ctx.clone()) [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:321:43 [INFO] [stdout] | [INFO] [stdout] 321 | if check(&bodt, &Arc::new(TermTreeLazy::SET()), 0) { [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 321 | if check(&bodt, &Arc::new(TermTree::SET()), 0) { [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:323:34 [INFO] [stdout] | [INFO] [stdout] 323 | Arc::new(TermTreeLazy::SET()), [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 323 | Arc::new(TermTree::SET()), [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:324:34 [INFO] [stdout] | [INFO] [stdout] 324 | ... Arc::new(TermTreeLazy::FOR(TermTreeEvaluatedBody { typ: typv.clone(), bod: bodv.quote(cur.next_ctx.id()), mode: Mode::Value, ctx: c... [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 324 | Arc::new(TermTree::FOR(TermTreeEvaluatedBody { typ: typv.clone(), bod: bodv.quote(cur.next_ctx.id()), mode: Mode::Value, ctx: cur.next_ctx.clone() })) [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:324:111 [INFO] [stdout] | [INFO] [stdout] 324 | ... Arc::new(TermTreeLazy::FOR(TermTreeEvaluatedBody { typ: typv.clone(), bod: bodv.quote(cur.next_ctx.id()), mode: Mode::Value, ctx: c... [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:324:155 [INFO] [stdout] | [INFO] [stdout] 324 | ...dv.quote(cur.next_ctx.id()), mode: Mode::Value, ctx: cur.next_ctx.clone() })) [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:325:25 [INFO] [stdout] | [INFO] [stdout] 325 | )), cur.next_ctx.clone()) [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:327:40 [INFO] [stdout] | [INFO] [stdout] 327 | let err = Arc::new(TermTreeLazy::ERR(format!("In FOR, body is not of type Set: {:?}", top))); [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 327 | let err = Arc::new(TermTree::ERR(format!("In FOR, body is not of type Set: {:?}", top))); [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:328:69 [INFO] [stdout] | [INFO] [stdout] 328 | (TermParserState::Complete((err.clone(), err)), cur.next_ctx.clone()) [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:333:58 [INFO] [stdout] | [INFO] [stdout] 333 | (TermParserState::LAMValue(top.clone()), cur.next_ctx.clone()) [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:339:30 [INFO] [stdout] | [INFO] [stdout] 339 | ... Arc::new(TermTreeLazy::FOR(TermTreeEvaluatedBody { typ: typv.clone(), bod: bodv.quote(cur.next_ctx.id()), mode: Mode::Type, ctx: cu... [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 339 | Arc::new(TermTree::FOR(TermTreeEvaluatedBody { typ: typv.clone(), bod: bodv.quote(cur.next_ctx.id()), mode: Mode::Type, ctx: cur.next_ctx.clone() })), [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:339:107 [INFO] [stdout] | [INFO] [stdout] 339 | ... Arc::new(TermTreeLazy::FOR(TermTreeEvaluatedBody { typ: typv.clone(), bod: bodv.quote(cur.next_ctx.id()), mode: Mode::Type, ctx: cu... [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:339:150 [INFO] [stdout] | [INFO] [stdout] 339 | ...odv.quote(cur.next_ctx.id()), mode: Mode::Type, ctx: cur.next_ctx.clone() })), [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TermTreeLazy` [INFO] [stdout] --> src/c_coc.rs:340:30 [INFO] [stdout] | [INFO] [stdout] 340 | ... Arc::new(TermTreeLazy::LAM(TermTreeEvaluatedBody { typ: typv.clone(), bod: bodv.quote(cur.next_ctx.id()), mode: Mode::Value, ctx: c... [INFO] [stdout] | ^^^^^^^^^^^^ use of undeclared type `TermTreeLazy` [INFO] [stdout] | [INFO] [stdout] help: an enum with a similar name exists [INFO] [stdout] | [INFO] [stdout] 340 | Arc::new(TermTree::LAM(TermTreeEvaluatedBody { typ: typv.clone(), bod: bodv.quote(cur.next_ctx.id()), mode: Mode::Value, ctx: cur.next_ctx.clone() })), [INFO] [stdout] | ~~~~~~~~ [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::b_coc::TermTreeLazy; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:340:107 [INFO] [stdout] | [INFO] [stdout] 340 | ... Arc::new(TermTreeLazy::LAM(TermTreeEvaluatedBody { typ: typv.clone(), bod: bodv.quote(cur.next_ctx.id()), mode: Mode::Value, ctx: c... [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:340:151 [INFO] [stdout] | [INFO] [stdout] 340 | ...dv.quote(cur.next_ctx.id()), mode: Mode::Value, ctx: cur.next_ctx.clone() })), [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:341:21 [INFO] [stdout] | [INFO] [stdout] 341 | )), cur.next_ctx.clone()) [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `TermParserStack` in this scope [INFO] [stdout] --> src/c_coc.rs:345:35 [INFO] [stdout] | [INFO] [stdout] 345 | self.prev = Some(Arc::new(TermParserStack { [INFO] [stdout] | ^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cur` in this scope [INFO] [stdout] --> src/c_coc.rs:348:19 [INFO] [stdout] | [INFO] [stdout] 348 | prev: cur.prev.clone(), [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/b_coc.rs:101:17 [INFO] [stdout] | [INFO] [stdout] 101 | (next.get(i-1, mode)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 101 - (next.get(i-1, mode)) [INFO] [stdout] 101 + next.get(i-1, mode) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Token` [INFO] [stdout] --> src/c_coc_main.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use c_coc::{Token, TermParser, next_token}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/b_coc.rs:124:37 [INFO] [stdout] | [INFO] [stdout] 124 | pub fn extend(self: &Arc, mut typ: Arc, bod: Arc) -> Arc { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `goal` [INFO] [stdout] --> src/d_coc.rs:337:13 [INFO] [stdout] | [INFO] [stdout] 337 | goal, [INFO] [stdout] | ^^^^ help: try ignoring the field: `goal: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prev_parser` [INFO] [stdout] --> src/d_coc_main.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | let prev_parser = parser.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_parser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bod` [INFO] [stdout] --> src/d_coc_main.rs:42:15 [INFO] [stdout] | [INFO] [stdout] 42 | let (typ, bod) = test(proof).unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bod` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `proof` is never used [INFO] [stdout] --> src/b_coc_main.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const proof: &'static str = "λ#λa;λ∀b;c;λ∀c;∀d;#λ∀d;%%b;a;a;λ∀e;∀f;∀g;∀%%e;c;b;∀%%f;c;b;%%g;e;c;λ∀f;∀g;∀%%e;%f;b;%f;a;%%f;c;b;λ∀g;∀#∀%%f;... [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `SET`, `VAR`, `LAM`, `FOR`, and `APP` are never constructed [INFO] [stdout] --> src/b_coc.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Token { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 5 | SET, [INFO] [stdout] | ^^^ [INFO] [stdout] 6 | VAR(usize), [INFO] [stdout] | ^^^ [INFO] [stdout] 7 | LAM, [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | FOR, [INFO] [stdout] | ^^^ [INFO] [stdout] 9 | APP, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `getboth` is never used [INFO] [stdout] --> src/b_coc.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 91 | impl Context { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn getboth(&self, i: usize) -> Option<(Arc, Arc)> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `iter_tokens` is never used [INFO] [stdout] --> src/b_coc.rs:314:12 [INFO] [stdout] | [INFO] [stdout] 172 | impl TermTree { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 314 | pub fn iter_tokens(&self) -> impl Iterator + '_ { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TermTreeIter` is never constructed [INFO] [stdout] --> src/b_coc.rs:319:8 [INFO] [stdout] | [INFO] [stdout] 319 | struct TermTreeIter<'a>(Vec<&'a TermTree>); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `proof` should have an upper case name [INFO] [stdout] --> src/b_coc_main.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const proof: &'static str = "λ#λa;λ∀b;c;λ∀c;∀d;#λ∀d;%%b;a;a;λ∀e;∀f;∀g;∀%%e;c;b;∀%%f;c;b;%%g;e;c;λ∀f;∀g;∀%%e;%f;b;%f;a;%%f;c;b;λ∀g;∀#∀%%f;... [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `PROOF` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `ctx` and `goal` are never used [INFO] [stdout] --> src/d_coc.rs:257:12 [INFO] [stdout] | [INFO] [stdout] 253 | impl PartialTerm { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 257 | pub fn ctx(&self) -> Context { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn goal(&self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `proof` should have an upper case name [INFO] [stdout] --> src/d_coc_main.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const proof: &'static str = "λ#λa;λ∀b;c;λ∀c;∀d;#λ∀d;%%b;a;a;λ∀e;∀f;∀g;∀%%e;c;b;∀%%f;c;b;%%g;e;c;λ∀f;∀g;∀%%e;%f;b;%f;a;%%f;c;b;λ∀g;∀#∀%%f;... [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `PROOF` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `?` operator has incompatible types [INFO] [stdout] --> src/c_coc.rs:82:20 [INFO] [stdout] | [INFO] [stdout] 82 | check(&a.bod.eval(a.ctx)?, &b.bod.eval(b.ctx)?, d+1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `Arc`, found `TermTreeEvaluatedBody` [INFO] [stdout] | [INFO] [stdout] = note: `?` operator cannot convert from `TermTreeEvaluatedBody` to `Arc` [INFO] [stdout] = note: expected struct `Arc` [INFO] [stdout] found struct `TermTreeEvaluatedBody` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `?` operator has incompatible types [INFO] [stdout] --> src/c_coc.rs:82:41 [INFO] [stdout] | [INFO] [stdout] 82 | check(&a.bod.eval(a.ctx)?, &b.bod.eval(b.ctx)?, d+1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `Arc`, found `TermTreeEvaluatedBody` [INFO] [stdout] | [INFO] [stdout] = note: `?` operator cannot convert from `TermTreeEvaluatedBody` to `Arc` [INFO] [stdout] = note: expected struct `Arc` [INFO] [stdout] found struct `TermTreeEvaluatedBody` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this function are incorrect [INFO] [stdout] --> src/c_coc.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | check(&a.bod.eval(a.ctx), &b.bod.eval(b.ctx), d+1) [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: expected `&Arc`, found `&Result` [INFO] [stdout] --> src/c_coc.rs:86:19 [INFO] [stdout] | [INFO] [stdout] 86 | check(&a.bod.eval(a.ctx), &b.bod.eval(b.ctx), d+1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: expected reference `&Arc` [INFO] [stdout] found reference `&Result` [INFO] [stdout] note: expected `&Arc`, found `&Result` [INFO] [stdout] --> src/c_coc.rs:86:39 [INFO] [stdout] | [INFO] [stdout] 86 | check(&a.bod.eval(a.ctx), &b.bod.eval(b.ctx), d+1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: expected reference `&Arc` [INFO] [stdout] found reference `&Result` [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/c_coc.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn check(a: &Arc, b: &Arc, d: usize) -> Result<(), String> { [INFO] [stdout] | ^^^^^ -------------------------- -------------------------- -------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/c_coc.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 71 | / match (Deref::deref(a), Deref::deref(b)) { [INFO] [stdout] 72 | | (TermTreeEvaluated::SET(), TermTreeEvaluated::SET()) => Ok(()), [INFO] [stdout] 73 | | (TermTreeEvaluated::VAR(x), TermTreeEvaluated::VAR(y)) => { [INFO] [stdout] 74 | | if x == y { [INFO] [stdout] ... | [INFO] [stdout] 90 | | check(ab, bb, d) [INFO] [stdout] | | ---------------- this and all prior arms are found to be of type `Result<(), String>` [INFO] [stdout] 91 | | } [INFO] [stdout] 92 | | _ => false, [INFO] [stdout] | | ^^^^^ expected `Result<(), String>`, found `bool` [INFO] [stdout] 93 | | } [INFO] [stdout] | |_____- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<(), String>` [INFO] [stdout] found type `bool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:207:55 [INFO] [stdout] | [INFO] [stdout] 207 | Some(TermTree::VAR(x)) => Some(Token::VAR(*x)), [INFO] [stdout] | ---------- ^^ expected `usize`, found `isize` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/c_coc.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | VAR(usize), [INFO] [stdout] | ^^^ [INFO] [stdout] help: you can convert an `isize` to a `usize` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 207 | Some(TermTree::VAR(x)) => Some(Token::VAR((*x).try_into().unwrap())), [INFO] [stdout] | + +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:252:53 [INFO] [stdout] | [INFO] [stdout] 252 | bod: Arc::new(TermTree::VAR(n)), [INFO] [stdout] | ------------- ^ expected `isize`, found `usize` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/c_coc.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | VAR(isize), // DeBruijn index [INFO] [stdout] | ^^^ [INFO] [stdout] help: you can convert a `usize` to an `isize` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 252 | bod: Arc::new(TermTree::VAR(n.try_into().unwrap())), [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:284:55 [INFO] [stdout] | [INFO] [stdout] 284 | (TermParserState::APPArg(top.typ, body), self.ctx) [INFO] [stdout] | ----------------------- ^^^^ expected `Arc`, found `TermTreeEvaluatedBody` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Arc` [INFO] [stdout] found struct `TermTreeEvaluatedBody` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/c_coc.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | APPArg(Arc, Arc), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:292:21 [INFO] [stdout] | [INFO] [stdout] 292 | let (argt, argv) = top; [INFO] [stdout] | ^^^^^^^^^^^^ --- this expression has type `&TermTreeEvaluatedBody` [INFO] [stdout] | | [INFO] [stdout] | expected `TermTreeEvaluatedBody`, found `(_, _)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `TermTreeEvaluatedBody` [INFO] [stdout] found tuple `(_, _)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:294:24 [INFO] [stdout] | [INFO] [stdout] 294 | if check(&funt.typ, &top.typ, cur.next_ctx.id()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `bool`, found `Result<(), String>` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Result<(), String>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> src/c_coc.rs:298:61 [INFO] [stdout] | [INFO] [stdout] 298 | ... Arc::new(TermTreeLazy::APP(funv.clone(), argv.clone())) [INFO] [stdout] | ^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:310:21 [INFO] [stdout] | [INFO] [stdout] 310 | let (typt, typv) = top; [INFO] [stdout] | ^^^^^^^^^^^^ --- this expression has type `&TermTreeEvaluatedBody` [INFO] [stdout] | | [INFO] [stdout] | expected `TermTreeEvaluatedBody`, found `(_, _)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `TermTreeEvaluatedBody` [INFO] [stdout] found tuple `(_, _)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:311:20 [INFO] [stdout] | [INFO] [stdout] 311 | if check(&typt, &Arc::new(TermTreeLazy::SET()), 0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `bool`, found `Result<(), String>` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Result<(), String>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:312:48 [INFO] [stdout] | [INFO] [stdout] 312 | (TermParserState::FORValue(top.clone()), cur.next_ctx.extend(Arc::new(TermTreeLazy::SET()), typv.clone())) [INFO] [stdout] | ------------------------- ^^^^^^^^^^^ expected `Arc`, found `TermTreeEvaluatedBody` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Arc` [INFO] [stdout] found struct `TermTreeEvaluatedBody` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/c_coc.rs:164:5 [INFO] [stdout] | [INFO] [stdout] 164 | FORValue(Arc), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:319:21 [INFO] [stdout] | [INFO] [stdout] 319 | let (typt, typv) = typ; [INFO] [stdout] | ^^^^^^^^^^^^ --- this expression has type `&Arc` [INFO] [stdout] | | [INFO] [stdout] | expected `Arc`, found `(_, _)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Arc` [INFO] [stdout] found tuple `(_, _)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:320:21 [INFO] [stdout] | [INFO] [stdout] 320 | let (bodt, bodv) = top; [INFO] [stdout] | ^^^^^^^^^^^^ --- this expression has type `&TermTreeEvaluatedBody` [INFO] [stdout] | | [INFO] [stdout] | expected `TermTreeEvaluatedBody`, found `(_, _)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `TermTreeEvaluatedBody` [INFO] [stdout] found tuple `(_, _)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:321:20 [INFO] [stdout] | [INFO] [stdout] 321 | if check(&bodt, &Arc::new(TermTreeLazy::SET()), 0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `bool`, found `Result<(), String>` [INFO] [stdout] | [INFO] [stdout] = note: expected type `bool` [INFO] [stdout] found enum `Result<(), String>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0560]: struct `TermTreeEvaluatedBody` has no field named `mode` [INFO] [stdout] --> src/c_coc.rs:324:131 [INFO] [stdout] | [INFO] [stdout] 324 | ...(), bod: bodv.quote(cur.next_ctx.id()), mode: Mode::Value, ctx: cur.next_ctx.clone() })) [INFO] [stdout] | ^^^^ `TermTreeEvaluatedBody` does not have this field [INFO] [stdout] | [INFO] [stdout] = note: all struct fields are already assigned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:332:21 [INFO] [stdout] | [INFO] [stdout] 332 | let (typt, typv) = top; [INFO] [stdout] | ^^^^^^^^^^^^ --- this expression has type `&TermTreeEvaluatedBody` [INFO] [stdout] | | [INFO] [stdout] | expected `TermTreeEvaluatedBody`, found `(_, _)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `TermTreeEvaluatedBody` [INFO] [stdout] found tuple `(_, _)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:333:44 [INFO] [stdout] | [INFO] [stdout] 333 | (TermParserState::LAMValue(top.clone()), cur.next_ctx.clone()) [INFO] [stdout] | ------------------------- ^^^^^^^^^^^ expected `Arc`, found `TermTreeEvaluatedBody` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Arc` [INFO] [stdout] found struct `TermTreeEvaluatedBody` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/c_coc.rs:162:5 [INFO] [stdout] | [INFO] [stdout] 162 | LAMValue(Arc), // evaluated TermTree [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:336:21 [INFO] [stdout] | [INFO] [stdout] 336 | let (typt, typv) = typ; [INFO] [stdout] | ^^^^^^^^^^^^ --- this expression has type `&Arc` [INFO] [stdout] | | [INFO] [stdout] | expected `Arc`, found `(_, _)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Arc` [INFO] [stdout] found tuple `(_, _)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:337:21 [INFO] [stdout] | [INFO] [stdout] 337 | let (bodt, bodv) = top; [INFO] [stdout] | ^^^^^^^^^^^^ --- this expression has type `&TermTreeEvaluatedBody` [INFO] [stdout] | | [INFO] [stdout] | expected `TermTreeEvaluatedBody`, found `(_, _)` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `TermTreeEvaluatedBody` [INFO] [stdout] found tuple `(_, _)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0560]: struct `TermTreeEvaluatedBody` has no field named `mode` [INFO] [stdout] --> src/c_coc.rs:339:127 [INFO] [stdout] | [INFO] [stdout] 339 | ...(), bod: bodv.quote(cur.next_ctx.id()), mode: Mode::Type, ctx: cur.next_ctx.clone() })), [INFO] [stdout] | ^^^^ `TermTreeEvaluatedBody` does not have this field [INFO] [stdout] | [INFO] [stdout] = note: all struct fields are already assigned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0560]: struct `TermTreeEvaluatedBody` has no field named `mode` [INFO] [stdout] --> src/c_coc.rs:340:127 [INFO] [stdout] | [INFO] [stdout] 340 | ...(), bod: bodv.quote(cur.next_ctx.id()), mode: Mode::Value, ctx: cur.next_ctx.clone() })), [INFO] [stdout] | ^^^^ `TermTreeEvaluatedBody` does not have this field [INFO] [stdout] | [INFO] [stdout] = note: all struct fields are already assigned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/c_coc.rs:350:9 [INFO] [stdout] | [INFO] [stdout] 273 | fn reduce(self: &mut Arc) -> Result { [INFO] [stdout] | -------------------- expected `Result` because of return type [INFO] [stdout] ... [INFO] [stdout] 350 | true [INFO] [stdout] | ^^^^ expected `Result`, found `bool` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result` [INFO] [stdout] found type `bool` [INFO] [stdout] help: try wrapping the expression in `Ok` [INFO] [stdout] | [INFO] [stdout] 350 | Ok(true) [INFO] [stdout] | +++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/b_coc.rs:124:37 [INFO] [stdout] | [INFO] [stdout] 124 | pub fn extend(self: &Arc, mut typ: Arc, bod: Arc) -> Arc { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `data` [INFO] [stdout] --> src/c_coc.rs:42:73 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn apply(&self, data: Arc) -> Arc { [INFO] [stdout] | ---- move occurs because `data` has type `Arc`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 42 | TermTree::LAM(a, b) => TermTree::LAM(a.apply(data), b.apply(data)), [INFO] [stdout] | ---- ^^^^ value used here after move [INFO] [stdout] | | [INFO] [stdout] | value moved here [INFO] [stdout] | [INFO] [stdout] note: consider changing this parameter type in method `apply` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/c_coc.rs:38:31 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn apply(&self, data: Arc) -> Arc { [INFO] [stdout] | ----- ^^^^^^^^^^^^^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this method [INFO] [stdout] help: clone the value to increment its reference count [INFO] [stdout] | [INFO] [stdout] 42 | TermTree::LAM(a, b) => TermTree::LAM(a.apply(data.clone()), b.apply(data)), [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `data` [INFO] [stdout] --> src/c_coc.rs:43:73 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn apply(&self, data: Arc) -> Arc { [INFO] [stdout] | ---- move occurs because `data` has type `Arc`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 43 | TermTree::FOR(a, b) => TermTree::FOR(a.apply(data), b.apply(data)), [INFO] [stdout] | ---- ^^^^ value used here after move [INFO] [stdout] | | [INFO] [stdout] | value moved here [INFO] [stdout] | [INFO] [stdout] note: consider changing this parameter type in method `apply` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/c_coc.rs:38:31 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn apply(&self, data: Arc) -> Arc { [INFO] [stdout] | ----- ^^^^^^^^^^^^^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this method [INFO] [stdout] help: clone the value to increment its reference count [INFO] [stdout] | [INFO] [stdout] 43 | TermTree::FOR(a, b) => TermTree::FOR(a.apply(data.clone()), b.apply(data)), [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `data` [INFO] [stdout] --> src/c_coc.rs:44:73 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn apply(&self, data: Arc) -> Arc { [INFO] [stdout] | ---- move occurs because `data` has type `Arc`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 44 | TermTree::APP(a, b) => TermTree::APP(a.apply(data), b.apply(data)), [INFO] [stdout] | ---- ^^^^ value used here after move [INFO] [stdout] | | [INFO] [stdout] | value moved here [INFO] [stdout] | [INFO] [stdout] note: consider changing this parameter type in method `apply` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> src/c_coc.rs:38:31 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn apply(&self, data: Arc) -> Arc { [INFO] [stdout] | ----- ^^^^^^^^^^^^^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this method [INFO] [stdout] help: clone the value to increment its reference count [INFO] [stdout] | [INFO] [stdout] 44 | TermTree::APP(a, b) => TermTree::APP(a.apply(data.clone()), b.apply(data)), [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `self` [INFO] [stdout] --> src/c_coc.rs:111:16 [INFO] [stdout] | [INFO] [stdout] 108 | pub fn extend(self, typ: Arc) -> Self { [INFO] [stdout] | ---- move occurs because `self` has type `c_coc::Context`, which does not implement the `Copy` trait [INFO] [stdout] 109 | Context(Some(Arc::new(ContextInner { [INFO] [stdout] 110 | prev: self, [INFO] [stdout] | ---- value moved here [INFO] [stdout] 111 | i: self.id(), [INFO] [stdout] | ^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 110 | prev: self.clone(), [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self` as enum variant `Some` which is behind a shared reference [INFO] [stdout] --> src/c_coc.rs:117:15 [INFO] [stdout] | [INFO] [stdout] 117 | match self.0 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 118 | None => 0, [INFO] [stdout] 119 | Some(x) => x.i+1, [INFO] [stdout] | - [INFO] [stdout] | | [INFO] [stdout] | data moved here [INFO] [stdout] | move occurs because `x` has type `Arc`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 117 | match &self.0 { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self` as enum variant `Some` which is behind a shared reference [INFO] [stdout] --> src/c_coc.rs:124:15 [INFO] [stdout] | [INFO] [stdout] 124 | match self.0 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 125 | None => None, [INFO] [stdout] 126 | Some(x) => { [INFO] [stdout] | - [INFO] [stdout] | | [INFO] [stdout] | data moved here [INFO] [stdout] | move occurs because `x` has type `Arc`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 124 | match &self.0 { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of an `Arc` [INFO] [stdout] --> src/c_coc.rs:130:26 [INFO] [stdout] | [INFO] [stdout] 130 | Some(x.typ) [INFO] [stdout] | ^^^^^ move occurs because value has type `Arc`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: clone the value to increment its reference count [INFO] [stdout] | [INFO] [stdout] 130 | Some(x.typ.clone()) [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ctx` [INFO] [stdout] --> src/c_coc.rs:222:35 [INFO] [stdout] | [INFO] [stdout] 222 | pub fn eval(self: &Arc, ctx: Context) -> Result { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0282, E0308, E0382, E0422, E0425, E0432, E0433, E0507, E0560. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0282`. [INFO] [stdout] [INFO] [stderr] error: could not compile `coc` (bin "c_coc_main") due to 63 previous errors; 4 warnings emitted [INFO] running `Command { std: "docker" "inspect" "338073df93996b008b2b9c9933c6edbc8f829c44cc8a085ac374d7380c28b47c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "338073df93996b008b2b9c9933c6edbc8f829c44cc8a085ac374d7380c28b47c", kill_on_drop: false }` [INFO] [stdout] 338073df93996b008b2b9c9933c6edbc8f829c44cc8a085ac374d7380c28b47c