[INFO] fetching crate lincoln_ir 0.1.0...
[INFO] testing lincoln_ir-0.1.0 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate lincoln_ir 0.1.0 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate lincoln_ir 0.1.0
[INFO] finished tweaking crates.io crate lincoln_ir 0.1.0
[INFO] tweaked toml for crates.io crate lincoln_ir 0.1.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate lincoln_ir 0.1.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 32 packages to highest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded lincoln_common v0.1.0
[INFO] [stderr]   Downloaded lincoln_compiled v0.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6d6ca451f04331184eea41826bdfd7b34f4c6894cf641cd9839f2329f3160ae4
[INFO] running `Command { std: "docker" "start" "6d6ca451f04331184eea41826bdfd7b34f4c6894cf641cd9839f2329f3160ae4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6d6ca451f04331184eea41826bdfd7b34f4c6894cf641cd9839f2329f3160ae4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6d6ca451f04331184eea41826bdfd7b34f4c6894cf641cd9839f2329f3160ae4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6d6ca451f04331184eea41826bdfd7b34f4c6894cf641cd9839f2329f3160ae4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6d6ca451f04331184eea41826bdfd7b34f4c6894cf641cd9839f2329f3160ae4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling libc v0.2.191
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling lincoln_common v0.1.0
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling smallvec v0.6.14
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]    Compiling lincoln_compiled v0.1.0
[INFO] [stderr]    Compiling lincoln_ir v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/program.rs:326:13
[INFO] [stdout]     |
[INFO] [stdout] 326 |             bail!("Invalid entry ref for PM") 
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/program.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |             bail!("Invalid entry ref for PM")
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/codemap.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Fail, Debug)]
[INFO] [stdout]   |          ^---
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Fail` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_CodeMapError`
[INFO] [stdout] 7 | pub enum CodeMapError {
[INFO] [stdout]   |          ------------ `CodeMapError` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/codemap.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Fail, Debug)]
[INFO] [stdout]   |          ^---
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Display` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_CodeMapError`
[INFO] [stdout] 7 | pub enum CodeMapError {
[INFO] [stdout]   |          ------------ `CodeMapError` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 20.09s
[INFO] running `Command { std: "docker" "inspect" "6d6ca451f04331184eea41826bdfd7b34f4c6894cf641cd9839f2329f3160ae4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6d6ca451f04331184eea41826bdfd7b34f4c6894cf641cd9839f2329f3160ae4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/program.rs:326:13
[INFO] [stdout]     |
[INFO] [stdout] 326 |             bail!("Invalid entry ref for PM") 
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/program.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |             bail!("Invalid entry ref for PM")
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/codemap.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Fail, Debug)]
[INFO] [stdout]   |          ^---
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Fail` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_CodeMapError`
[INFO] [stdout] 7 | pub enum CodeMapError {
[INFO] [stdout]   |          ------------ `CodeMapError` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling lincoln_ir v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/codemap.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Fail, Debug)]
[INFO] [stdout]   |          ^---
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Display` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_CodeMapError`
[INFO] [stdout] 7 | pub enum CodeMapError {
[INFO] [stdout]   |          ------------ `CodeMapError` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/program.rs:326:13
[INFO] [stdout]     |
[INFO] [stdout] 326 |             bail!("Invalid entry ref for PM") 
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/program.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |             bail!("Invalid entry ref for PM")
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: closure is expected to take 1 argument, but it takes 2 arguments
[INFO] [stdout]   --> src/tests.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 |                 eval: EvalFn::stateless(|p, mut c| {
[INFO] [stdout]    |                                         ^^^^^^^^^^
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         expected closure that takes 1 argument
[INFO] [stdout]    |                                         takes 2 arguments
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/tests.rs:21:32
[INFO] [stdout]     |
[INFO] [stdout]  21 |                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 3);
[INFO] [stdout]     |                                ^^^^^^^^^^^^^                   - unexpected argument #2
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lincoln_compiled-0.1.0/src/value.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn unwrap<T>(v: Box<dyn Value>) -> Result<T, EvalError>
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout]  21 -                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 3);
[INFO] [stdout]  21 +                     assert_eq!(unwrap::<i32>(c.pop().unwrap()).unwrap(), 3);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/tests.rs:22:32
[INFO] [stdout]     |
[INFO] [stdout]  22 |                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 2);
[INFO] [stdout]     |                                ^^^^^^^^^^^^^                   - unexpected argument #2
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lincoln_compiled-0.1.0/src/value.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn unwrap<T>(v: Box<dyn Value>) -> Result<T, EvalError>
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout]  22 -                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 2);
[INFO] [stdout]  22 +                     assert_eq!(unwrap::<i32>(c.pop().unwrap()).unwrap(), 2);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/tests.rs:23:32
[INFO] [stdout]     |
[INFO] [stdout]  23 |                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 1);
[INFO] [stdout]     |                                ^^^^^^^^^^^^^                   - unexpected argument #2
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lincoln_compiled-0.1.0/src/value.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn unwrap<T>(v: Box<dyn Value>) -> Result<T, EvalError>
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout]  23 -                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 1);
[INFO] [stdout]  23 +                     assert_eq!(unwrap::<i32>(c.pop().unwrap()).unwrap(), 1);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `[fn() -> ExternEntry; 1]` is not an iterator
[INFO] [stdout]    --> src/tests.rs:18:22
[INFO] [stdout]     |
[INFO] [stdout]  18 |               .compile([(|| ExternEntry::Eval {
[INFO] [stdout]     |  ______________-------_^
[INFO] [stdout]     | |              |
[INFO] [stdout]     | |              required by a bound introduced by this call
[INFO] [stdout]  19 | |                 name: "rec2".into(),
[INFO] [stdout]  20 | |                 eval: EvalFn::stateless(|p, mut c| {
[INFO] [stdout]  21 | |                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 3);
[INFO] [stdout] ...   |
[INFO] [stdout]  25 | |                 }),
[INFO] [stdout]  26 | |             }) as fn() -> ExternEntry])
[INFO] [stdout]     | |______________________________________^ `[fn() -> ExternEntry; 1]` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Iterator` is not implemented for `[fn() -> ExternEntry; 1]`
[INFO] [stdout] note: required by a bound in `PreCompileProgram::compile`
[INFO] [stdout]    --> src/program.rs:238:41
[INFO] [stdout]     |
[INFO] [stdout] 238 |     pub fn compile(&self, externs: impl Iterator<Item=ExternEntry>) -> Result<Program, Error> {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `PreCompileProgram::compile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/tests.rs:33:38
[INFO] [stdout]     |
[INFO] [stdout]  33 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stdout]     |                                 ---- ^^^ expected `&mut Context`, found `Context`
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lincoln_compiled-0.1.0/src/program.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 156 |     pub fn eval(&self, ctx: &mut Context, ent: &CodeRef) -> Result<CodeRef, EvalError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider mutably borrowing here
[INFO] [stdout]     |
[INFO] [stdout]  33 |         let (next, ctx) = cprog.eval(&mut ctx, &next).unwrap();
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/tests.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^   ------------------------------- this expression has type `lincoln_compiled::CodeRef`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             expected `CodeRef`, found `(_, _)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `lincoln_compiled::CodeRef`
[INFO] [stdout]              found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/tests.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^   ------------------------------- this expression has type `lincoln_compiled::CodeRef`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             expected `CodeRef`, found `(_, _)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `lincoln_compiled::CodeRef`
[INFO] [stdout]              found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/tests.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^   ------------------------------- this expression has type `lincoln_compiled::CodeRef`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             expected `CodeRef`, found `(_, _)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `lincoln_compiled::CodeRef`
[INFO] [stdout]              found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: closure is expected to take 1 argument, but it takes 2 arguments
[INFO] [stdout]   --> src/tests.rs:50:45
[INFO] [stdout]    |
[INFO] [stdout] 50 |                     eval: EvalFn::stateless(|p, mut c| {
[INFO] [stdout]    |                                             ^^^^^^^^^^
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             expected closure that takes 1 argument
[INFO] [stdout]    |                                             takes 2 arguments
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/tests.rs:52:36
[INFO] [stdout]     |
[INFO] [stdout]  52 |                         assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 2);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^                   - unexpected argument #2
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lincoln_compiled-0.1.0/src/value.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn unwrap<T>(v: Box<dyn Value>) -> Result<T, EvalError>
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout]  52 -                         assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 2);
[INFO] [stdout]  52 +                         assert_eq!(unwrap::<i32>(c.pop().unwrap()).unwrap(), 2);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/tests.rs:53:36
[INFO] [stdout]     |
[INFO] [stdout]  53 |                         assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 1);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^                   - unexpected argument #2
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lincoln_compiled-0.1.0/src/value.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn unwrap<T>(v: Box<dyn Value>) -> Result<T, EvalError>
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout]  53 -                         assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 1);
[INFO] [stdout]  53 +                         assert_eq!(unwrap::<i32>(c.pop().unwrap()).unwrap(), 1);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: closure is expected to take 1 argument, but it takes 2 arguments
[INFO] [stdout]   --> src/tests.rs:59:45
[INFO] [stdout]    |
[INFO] [stdout] 59 |                     eval: EvalFn::stateless(|p, mut c| {
[INFO] [stdout]    |                                             ^^^^^^^^^^
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             expected closure that takes 1 argument
[INFO] [stdout]    |                                             takes 2 arguments
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/tests.rs:60:36
[INFO] [stdout]     |
[INFO] [stdout]  60 |                         assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 3);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^                   - unexpected argument #2
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lincoln_compiled-0.1.0/src/value.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn unwrap<T>(v: Box<dyn Value>) -> Result<T, EvalError>
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout]  60 -                         assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 3);
[INFO] [stdout]  60 +                         assert_eq!(unwrap::<i32>(c.pop().unwrap()).unwrap(), 3);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `[fn() -> ExternEntry; 2]` is not an iterator
[INFO] [stdout]    --> src/tests.rs:47:22
[INFO] [stdout]     |
[INFO] [stdout]  47 |               .compile([
[INFO] [stdout]     |  ______________-------_^
[INFO] [stdout]     | |              |
[INFO] [stdout]     | |              required by a bound introduced by this call
[INFO] [stdout]  48 | |                 || ExternEntry::Eval {
[INFO] [stdout]  49 | |                     name: "rec1".into(),
[INFO] [stdout]  50 | |                     eval: EvalFn::stateless(|p, mut c| {
[INFO] [stdout] ...   |
[INFO] [stdout]  63 | |                 }) as fn() -> ExternEntry,
[INFO] [stdout]  64 | |             ])
[INFO] [stdout]     | |_____________^ `[fn() -> ExternEntry; 2]` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Iterator` is not implemented for `[fn() -> ExternEntry; 2]`
[INFO] [stdout] note: required by a bound in `PreCompileProgram::compile`
[INFO] [stdout]    --> src/program.rs:238:41
[INFO] [stdout]     |
[INFO] [stdout] 238 |     pub fn compile(&self, externs: impl Iterator<Item=ExternEntry>) -> Result<Program, Error> {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `PreCompileProgram::compile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/tests.rs:72:38
[INFO] [stdout]     |
[INFO] [stdout]  72 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stdout]     |                                 ---- ^^^ expected `&mut Context`, found `Context`
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lincoln_compiled-0.1.0/src/program.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 156 |     pub fn eval(&self, ctx: &mut Context, ent: &CodeRef) -> Result<CodeRef, EvalError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] help: consider mutably borrowing here
[INFO] [stdout]     |
[INFO] [stdout]  72 |         let (next, ctx) = cprog.eval(&mut ctx, &next).unwrap();
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/tests.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^   ------------------------------- this expression has type `lincoln_compiled::CodeRef`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             expected `CodeRef`, found `(_, _)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `lincoln_compiled::CodeRef`
[INFO] [stdout]              found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/tests.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^   ------------------------------- this expression has type `lincoln_compiled::CodeRef`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             expected `CodeRef`, found `(_, _)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `lincoln_compiled::CodeRef`
[INFO] [stdout]              found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/tests.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^   ------------------------------- this expression has type `lincoln_compiled::CodeRef`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             expected `CodeRef`, found `(_, _)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `lincoln_compiled::CodeRef`
[INFO] [stdout]              found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0308, E0593.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `lincoln_ir` (lib test) due to 19 previous errors; 2 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6d6ca451f04331184eea41826bdfd7b34f4c6894cf641cd9839f2329f3160ae4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d6ca451f04331184eea41826bdfd7b34f4c6894cf641cd9839f2329f3160ae4", kill_on_drop: false }`
[INFO] [stdout] 6d6ca451f04331184eea41826bdfd7b34f4c6894cf641cd9839f2329f3160ae4
