[INFO] crate lincoln_ir 0.1.0 is already in cache
[INFO] checking lincoln_ir-0.1.0 against master#bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc for pr-70917
[INFO] extracting crate lincoln_ir 0.1.0 into /workspace/builds/worker-12/source
[INFO] validating manifest of crates.io crate lincoln_ir 0.1.0 on toolchain bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "read-manifest" "--manifest-path" "Cargo.toml"`
[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-12/source/Cargo.toml
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"`
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] de36e9577e570c89d72dd487abe1c64a594fc471c56ca730fe8d1797fee89b2b
[INFO] running `"docker" "start" "-a" "de36e9577e570c89d72dd487abe1c64a594fc471c56ca730fe8d1797fee89b2b"`
[INFO] [stderr]     Checking lincoln_common v0.1.0
[INFO] [stderr]     Checking smallvec v0.6.13
[INFO] [stderr]     Checking lincoln_compiled v0.1.0
[INFO] [stderr]     Checking lincoln_ir v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: cannot borrow `self.coderef_map` as mutable because it is also borrowed as immutable
[INFO] [stderr]   --> src/codemap.rs:45:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |           let cont = self
[INFO] [stderr]    |  ____________________-
[INFO] [stderr] 42 | |             .coderef_map
[INFO] [stderr]    | |________________________- immutable borrow occurs here
[INFO] [stderr] ...
[INFO] [stderr] 45 |           self.coderef_map.insert(ent, self.prog.add_jump(*cont, per));
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^ mutable borrow occurs here     ----- immutable borrow later used here
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(mutable_borrow_reservation_conflict)]` on by default
[INFO] [stderr]    = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future
[INFO] [stderr]    = note: for more information, see issue #59159 <https://github.com/rust-lang/rust/issues/59159>
[INFO] [stderr] 
[INFO] [stderr] warning: cannot borrow `self.coderef_map` as mutable because it is also borrowed as immutable
[INFO] [stderr]   --> src/codemap.rs:76:17
[INFO] [stderr]    |
[INFO] [stderr] 55 |           let call = self
[INFO] [stderr]    |  ____________________-
[INFO] [stderr] 56 | |             .coderef_map
[INFO] [stderr]    | |________________________- immutable borrow occurs here
[INFO] [stderr] ...
[INFO] [stderr] 76 |                   self.coderef_map
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^ mutable borrow occurs here
[INFO] [stderr] 77 |                       .insert(ent, self.prog.add_call(call.clone(), callcnt, grp));
[INFO] [stderr]    |                                                       ---- immutable borrow later used here
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future
[INFO] [stderr]    = note: for more information, see issue #59159 <https://github.com/rust-lang/rust/issues/59159>
[INFO] [stderr] 
[INFO] [stderr] warning: cannot borrow `self.coderef_map` as mutable because it is also borrowed as immutable
[INFO] [stderr]   --> src/codemap.rs:65:17
[INFO] [stderr]    |
[INFO] [stderr] 55 |           let call = self
[INFO] [stderr]    |  ____________________-
[INFO] [stderr] 56 | |             .coderef_map
[INFO] [stderr]    | |________________________- immutable borrow occurs here
[INFO] [stderr] ...
[INFO] [stderr] 65 |                   self.coderef_map
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^ mutable borrow occurs here
[INFO] [stderr] 66 |                       .insert(ent, self.prog.add_call(call.clone(), callcnt, *cont));
[INFO] [stderr]    |                                                       ---- immutable borrow later used here
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future
[INFO] [stderr]    = note: for more information, see issue #59159 <https://github.com/rust-lang/rust/issues/59159>
[INFO] [stderr] 
[INFO] [stderr] error[E0593]: closure is expected to take 1 argument, but it takes 2 arguments
[INFO] [stderr]   --> src/tests.rs:20:41
[INFO] [stderr]    |
[INFO] [stderr] 20 |                   eval: EvalFn::stateless(|p, mut c| {
[INFO] [stderr]    |                                           ^---------
[INFO] [stderr]    |                                           |
[INFO] [stderr]    |  _________________________________________takes 2 arguments
[INFO] [stderr]    | |
[INFO] [stderr] 21 | |                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 3);
[INFO] [stderr] 22 | |                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 2);
[INFO] [stderr] 23 | |                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 1);
[INFO] [stderr] 24 | |                     Ok((Termination, c))
[INFO] [stderr] 25 | |                 }),
[INFO] [stderr]    | |_________________^ expected closure that takes 1 argument
[INFO] [stderr] 
[INFO] [stderr] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stderr]   --> src/tests.rs:21:32
[INFO] [stderr]    |
[INFO] [stderr] 21 |                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 3);
[INFO] [stderr]    |                                ^^^^^^^^^^^^^ ----------------  - supplied 2 arguments
[INFO] [stderr]    |                                |
[INFO] [stderr]    |                                expected 1 argument
[INFO] [stderr] 
[INFO] [stderr] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stderr]   --> src/tests.rs:22:32
[INFO] [stderr]    |
[INFO] [stderr] 22 |                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 2);
[INFO] [stderr]    |                                ^^^^^^^^^^^^^ ----------------  - supplied 2 arguments
[INFO] [stderr]    |                                |
[INFO] [stderr]    |                                expected 1 argument
[INFO] [stderr] 
[INFO] [stderr] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stderr]   --> src/tests.rs:23:32
[INFO] [stderr]    |
[INFO] [stderr] 23 |                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 1);
[INFO] [stderr]    |                                ^^^^^^^^^^^^^ ----------------  - supplied 2 arguments
[INFO] [stderr]    |                                |
[INFO] [stderr]    |                                expected 1 argument
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: `[fn() -> lincoln_compiled::entries::ExternEntry; 1]` is not an iterator
[INFO] [stderr]   --> src/tests.rs:18:22
[INFO] [stderr]    |
[INFO] [stderr] 18 |               .compile([(|| ExternEntry::Eval {
[INFO] [stderr]    |  ______________________^
[INFO] [stderr] 19 | |                 name: "rec2".into(),
[INFO] [stderr] 20 | |                 eval: EvalFn::stateless(|p, mut c| {
[INFO] [stderr] 21 | |                     assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 3);
[INFO] [stderr] ...  |
[INFO] [stderr] 25 | |                 }),
[INFO] [stderr] 26 | |             }) as fn() -> ExternEntry])
[INFO] [stderr]    | |______________________________________^ borrow the array with `&` or call `.iter()` on it to iterate over it
[INFO] [stderr]    |
[INFO] [stderr]    = help: the trait `std::iter::Iterator` is not implemented for `[fn() -> lincoln_compiled::entries::ExternEntry; 1]`
[INFO] [stderr]    = note: arrays are not iterators, but slices like the following are: `&[1, 2, 3]`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/tests.rs:33:38
[INFO] [stderr]    |
[INFO] [stderr] 33 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stderr]    |                                      ^^^
[INFO] [stderr]    |                                      |
[INFO] [stderr]    |                                      expected `&mut lincoln_compiled::value::Context`, found struct `lincoln_compiled::value::Context`
[INFO] [stderr]    |                                      help: consider mutably borrowing here: `&mut ctx`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/tests.rs:33:13
[INFO] [stderr]    |
[INFO] [stderr] 33 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stderr]    |             ^^^^^^^^^^^   ------------------------------- this expression has type `lincoln_compiled::coderef::CodeRef`
[INFO] [stderr]    |             |
[INFO] [stderr]    |             expected enum `lincoln_compiled::coderef::CodeRef`, found tuple
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected enum `lincoln_compiled::coderef::CodeRef`
[INFO] [stderr]              found tuple `(_, _)`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/tests.rs:35:13
[INFO] [stderr]    |
[INFO] [stderr] 35 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stderr]    |             ^^^^^^^^^^^   ------------------------------- this expression has type `lincoln_compiled::coderef::CodeRef`
[INFO] [stderr]    |             |
[INFO] [stderr]    |             expected enum `lincoln_compiled::coderef::CodeRef`, found tuple
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected enum `lincoln_compiled::coderef::CodeRef`
[INFO] [stderr]              found tuple `(_, _)`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/tests.rs:37:13
[INFO] [stderr]    |
[INFO] [stderr] 37 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stderr]    |             ^^^^^^^^^^^   ------------------------------- this expression has type `lincoln_compiled::coderef::CodeRef`
[INFO] [stderr]    |             |
[INFO] [stderr]    |             expected enum `lincoln_compiled::coderef::CodeRef`, found tuple
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected enum `lincoln_compiled::coderef::CodeRef`
[INFO] [stderr]              found tuple `(_, _)`
[INFO] [stderr] 
[INFO] [stderr] error[E0593]: closure is expected to take 1 argument, but it takes 2 arguments
[INFO] [stderr]   --> src/tests.rs:50:45
[INFO] [stderr]    |
[INFO] [stderr] 50 |                       eval: EvalFn::stateless(|p, mut c| {
[INFO] [stderr]    |                                               ^---------
[INFO] [stderr]    |                                               |
[INFO] [stderr]    |  _____________________________________________takes 2 arguments
[INFO] [stderr]    | |
[INFO] [stderr] 51 | |                         let v = c.pop().unwrap();
[INFO] [stderr] 52 | |                         assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 2);
[INFO] [stderr] 53 | |                         assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 1);
[INFO] [stderr] 54 | |                         v.eval(p, c, 0)
[INFO] [stderr] 55 | |                     }),
[INFO] [stderr]    | |_____________________^ expected closure that takes 1 argument
[INFO] [stderr] 
[INFO] [stderr] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stderr]   --> src/tests.rs:52:36
[INFO] [stderr]    |
[INFO] [stderr] 52 |                         assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 2);
[INFO] [stderr]    |                                    ^^^^^^^^^^^^^ ----------------  - supplied 2 arguments
[INFO] [stderr]    |                                    |
[INFO] [stderr]    |                                    expected 1 argument
[INFO] [stderr] 
[INFO] [stderr] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stderr]   --> src/tests.rs:53:36
[INFO] [stderr]    |
[INFO] [stderr] 53 |                         assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 1);
[INFO] [stderr]    |                                    ^^^^^^^^^^^^^ ----------------  - supplied 2 arguments
[INFO] [stderr]    |                                    |
[INFO] [stderr]    |                                    expected 1 argument
[INFO] [stderr] 
[INFO] [stderr] error[E0593]: closure is expected to take 1 argument, but it takes 2 arguments
[INFO] [stderr]   --> src/tests.rs:59:45
[INFO] [stderr]    |
[INFO] [stderr] 59 |                       eval: EvalFn::stateless(|p, mut c| {
[INFO] [stderr]    |                                               ^---------
[INFO] [stderr]    |                                               |
[INFO] [stderr]    |  _____________________________________________takes 2 arguments
[INFO] [stderr]    | |
[INFO] [stderr] 60 | |                         assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 3);
[INFO] [stderr] 61 | |                         Ok((Termination, c))
[INFO] [stderr] 62 | |                     }),
[INFO] [stderr]    | |_____________________^ expected closure that takes 1 argument
[INFO] [stderr] 
[INFO] [stderr] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stderr]   --> src/tests.rs:60:36
[INFO] [stderr]    |
[INFO] [stderr] 60 |                         assert_eq!(unwrap::<i32>(c.pop().unwrap(), p).unwrap(), 3);
[INFO] [stderr]    |                                    ^^^^^^^^^^^^^ ----------------  - supplied 2 arguments
[INFO] [stderr]    |                                    |
[INFO] [stderr]    |                                    expected 1 argument
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: `[fn() -> lincoln_compiled::entries::ExternEntry; 2]` is not an iterator
[INFO] [stderr]   --> src/tests.rs:47:22
[INFO] [stderr]    |
[INFO] [stderr] 47 |               .compile([
[INFO] [stderr]    |  ______________________^
[INFO] [stderr] 48 | |                 || ExternEntry::Eval {
[INFO] [stderr] 49 | |                     name: "rec1".into(),
[INFO] [stderr] 50 | |                     eval: EvalFn::stateless(|p, mut c| {
[INFO] [stderr] ...  |
[INFO] [stderr] 63 | |                 }) as fn() -> ExternEntry,
[INFO] [stderr] 64 | |             ])
[INFO] [stderr]    | |_____________^ borrow the array with `&` or call `.iter()` on it to iterate over it
[INFO] [stderr]    |
[INFO] [stderr]    = help: the trait `std::iter::Iterator` is not implemented for `[fn() -> lincoln_compiled::entries::ExternEntry; 2]`
[INFO] [stderr]    = note: arrays are not iterators, but slices like the following are: `&[1, 2, 3]`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/tests.rs:72:38
[INFO] [stderr]    |
[INFO] [stderr] 72 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stderr]    |                                      ^^^
[INFO] [stderr]    |                                      |
[INFO] [stderr]    |                                      expected `&mut lincoln_compiled::value::Context`, found struct `lincoln_compiled::value::Context`
[INFO] [stderr]    |                                      help: consider mutably borrowing here: `&mut ctx`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/tests.rs:72:13
[INFO] [stderr]    |
[INFO] [stderr] 72 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stderr]    |             ^^^^^^^^^^^   ------------------------------- this expression has type `lincoln_compiled::coderef::CodeRef`
[INFO] [stderr]    |             |
[INFO] [stderr]    |             expected enum `lincoln_compiled::coderef::CodeRef`, found tuple
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected enum `lincoln_compiled::coderef::CodeRef`
[INFO] [stderr]              found tuple `(_, _)`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/tests.rs:74:13
[INFO] [stderr]    |
[INFO] [stderr] 74 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stderr]    |             ^^^^^^^^^^^   ------------------------------- this expression has type `lincoln_compiled::coderef::CodeRef`
[INFO] [stderr]    |             |
[INFO] [stderr]    |             expected enum `lincoln_compiled::coderef::CodeRef`, found tuple
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected enum `lincoln_compiled::coderef::CodeRef`
[INFO] [stderr]              found tuple `(_, _)`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/tests.rs:76:13
[INFO] [stderr]    |
[INFO] [stderr] 76 |         let (next, ctx) = cprog.eval(ctx, &next).unwrap();
[INFO] [stderr]    |             ^^^^^^^^^^^   ------------------------------- this expression has type `lincoln_compiled::coderef::CodeRef`
[INFO] [stderr]    |             |
[INFO] [stderr]    |             expected enum `lincoln_compiled::coderef::CodeRef`, found tuple
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected enum `lincoln_compiled::coderef::CodeRef`
[INFO] [stderr]              found tuple `(_, _)`
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 19 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0061, E0277, E0308, E0593.
[INFO] [stderr] For more information about an error, try `rustc --explain E0061`.
[INFO] [stderr] error: could not compile `lincoln_ir`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "de36e9577e570c89d72dd487abe1c64a594fc471c56ca730fe8d1797fee89b2b"`
[INFO] running `"docker" "rm" "-f" "de36e9577e570c89d72dd487abe1c64a594fc471c56ca730fe8d1797fee89b2b"`
[INFO] [stdout] de36e9577e570c89d72dd487abe1c64a594fc471c56ca730fe8d1797fee89b2b
