[INFO] cloning repository https://github.com/marcmmiller/rsscm
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/marcmmiller/rsscm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarcmmiller%2Frsscm", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarcmmiller%2Frsscm'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 056fb54bceb15d069ab5a5068f6f6db30d13a840
[INFO] testing marcmmiller/rsscm against 1.95.0 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarcmmiller%2Frsscm" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/marcmmiller/rsscm
[INFO] finished tweaking git repo https://github.com/marcmmiller/rsscm
[INFO] tweaked toml for git repo https://github.com/marcmmiller/rsscm written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/marcmmiller/rsscm on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/marcmmiller/rsscm 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a6d33faf484d8dcb0e893b134e0e02cc90881840709d803317ff11d39366a101
[INFO] running `Command { std: "docker" "start" "-a" "a6d33faf484d8dcb0e893b134e0e02cc90881840709d803317ff11d39366a101", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a6d33faf484d8dcb0e893b134e0e02cc90881840709d803317ff11d39366a101", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a6d33faf484d8dcb0e893b134e0e02cc90881840709d803317ff11d39366a101", kill_on_drop: false }`
[INFO] [stdout] a6d33faf484d8dcb0e893b134e0e02cc90881840709d803317ff11d39366a101
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 131797cb2116d1f13b98bf19c943f269f12373717c34d5bf6594dd3047fbddd6
[INFO] running `Command { std: "docker" "start" "-a" "131797cb2116d1f13b98bf19c943f269f12373717c34d5bf6594dd3047fbddd6", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling rsscm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Ref`
[INFO] [stdout]  --> src/main.rs:2:32
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::{Cell, RefCell, Ref, UnsafeCell};
[INFO] [stdout]   |                                ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/main.rs:82:21
[INFO] [stdout]    |
[INFO] [stdout] 82 |             let c = try!(self.next_char());
[INFO] [stdout]    |                     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |         try!(match self.ty {
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/main.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |         ((p == '-') || (p == '_') || (p == '*') ||
[INFO] [stdout]     |         ^
[INFO] [stdout] ...
[INFO] [stdout] 187 |          (p == '^'))
[INFO] [stdout]     |                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 182 ~         (p == '-') || (p == '_') || (p == '*') ||
[INFO] [stdout] 183 |          (p == '+') || (p == '?') || (p == '-') ||
[INFO] [stdout] ...
[INFO] [stdout] 186 |          (p == '%') || (p == '&') || (p == '~') ||
[INFO] [stdout] 187 ~          (p == '^') 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:223:27
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let t = Token::Id(try!(
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:230:17
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let s = try!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:242:19
[INFO] [stdout]     |
[INFO] [stdout] 242 |             match try!(self.reader.next_char()) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:246:31
[INFO] [stdout]     |
[INFO] [stdout] 246 |                     let esc = try!(self.reader.next_char());
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:270:26
[INFO] [stdout]     |
[INFO] [stdout] 270 |             return match try!(self.reader.next_char()) {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:276:28
[INFO] [stdout]     |
[INFO] [stdout] 276 |                 '\"' => Ok(try!(self.read_quoted_string())),
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:278:21
[INFO] [stdout]     |
[INFO] [stdout] 278 |                     try!(self.reader.read_while(&|c: char| { c != '\n' }));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:282:30
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     let bc = try!(self.reader.next_char());
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:293:24
[INFO] [stdout]     |
[INFO] [stdout] 293 |                     Ok(try!(self.read_number()))
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:297:24
[INFO] [stdout]     |
[INFO] [stdout] 297 |                     Ok(try!(self.read_scheme_id()))
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:440:30
[INFO] [stdout]     |
[INFO] [stdout] 440 |         let (ref car, _) = **try!(self.unwrap_cons());
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:445:24
[INFO] [stdout]     |
[INFO] [stdout] 445 |         let (car, _) = try!(self.take_cons()).take();
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:450:30
[INFO] [stdout]     |
[INFO] [stdout] 450 |         let (_, ref cdr) = **try!(self.unwrap_cons());
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:455:24
[INFO] [stdout]     |
[INFO] [stdout] 455 |         let (_, cdr) = try!(self.take_cons()).take();
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:460:36
[INFO] [stdout]     |
[INFO] [stdout] 460 |         let (ref car, ref cdr) = **try!(self.unwrap_cons());
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:465:26
[INFO] [stdout]     |
[INFO] [stdout] 465 |         let (car, cdr) = try!(self.take_cons()).take();
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:504:17
[INFO] [stdout]     |
[INFO] [stdout] 504 |                 try!(write!(f, "({}", it.next().unwrap()));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:506:21
[INFO] [stdout]     |
[INFO] [stdout] 506 |                     try!(write!(f, " {}", i));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:509:21
[INFO] [stdout]     |
[INFO] [stdout] 509 |                     try!(write!(f, " . {}", it.cur));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:654:30
[INFO] [stdout]     |
[INFO] [stdout] 654 |             DUMP.with(|c| if (c.get() > 0) {
[INFO] [stdout]     |                              ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 654 -             DUMP.with(|c| if (c.get() > 0) {
[INFO] [stdout] 654 +             DUMP.with(|c| if c.get() > 0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:774:12
[INFO] [stdout]     |
[INFO] [stdout] 774 |         if (self.c.is_none()) {
[INFO] [stdout]     |            ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 774 -         if (self.c.is_none()) {
[INFO] [stdout] 774 +         if self.c.is_none()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:844:18
[INFO] [stdout]     |
[INFO] [stdout] 844 |         Ok(match try!(self.tokenizer.next()) {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:851:47
[INFO] [stdout]     |
[INFO] [stdout] 851 | ...                   Sexp::new_cons(try!(self.next_sexp()), Nil)),
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:852:26
[INFO] [stdout]     |
[INFO] [stdout] 852 |             Token::OP => try!(self.next_sexp_list(false)),
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:859:17
[INFO] [stdout]     |
[INFO] [stdout] 859 |         let t = try!(self.tokenizer.next());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:863:27
[INFO] [stdout]     |
[INFO] [stdout] 863 |                 let ret = try!(self.next_sexp());
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:864:28
[INFO] [stdout]     |
[INFO] [stdout] 864 |                 assert_eq!(try!(self.tokenizer.next()), Token::CP);
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:870:32
[INFO] [stdout]     |
[INFO] [stdout] 870 |                 Sexp::new_cons(try!(self.next_sexp()),
[INFO] [stdout]     |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:871:32
[INFO] [stdout]     |
[INFO] [stdout] 871 | ...                   try!(self.next_sexp_list(true)))
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1372:5
[INFO] [stdout]      |
[INFO] [stdout] 1372 |     try!(res);
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1357:23
[INFO] [stdout]      |
[INFO] [stdout] 1357 |             let arg = try!(rsarg);
[INFO] [stdout]      |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1396:19
[INFO] [stdout]      |
[INFO] [stdout] 1396 |     let mut res = try!(rsres);
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1402:19
[INFO] [stdout]      |
[INFO] [stdout] 1402 |             res = try!(tramp.apply(vec!(), tramp_env, ctx.clone()));
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1422:45
[INFO] [stdout]      |
[INFO] [stdout] 1422 |                 let (did_stuff, expanded) = try!(self.expand_macros_once(s));
[INFO] [stdout]      |                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1432:34
[INFO] [stdout]      |
[INFO] [stdout] 1432 |             if let Id(ref id) = *try!(s.car()) {
[INFO] [stdout]      |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1455:27
[INFO] [stdout]      |
[INFO] [stdout] 1455 |                 Ok((true, try!(res)))
[INFO] [stdout]      |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1458:36
[INFO] [stdout]      |
[INFO] [stdout] 1458 |                 let (ocar, ocdr) = try!(s.carcdr());
[INFO] [stdout]      |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1459:38
[INFO] [stdout]      |
[INFO] [stdout] 1459 |                 let (did_car, car) = try!(self.expand_macros_once(ocar.clone()));
[INFO] [stdout]      |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1460:38
[INFO] [stdout]      |
[INFO] [stdout] 1460 |                 let (did_cdr, cdr) = try!(self.expand_macros_once(ocdr.clone()));
[INFO] [stdout]      |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1537:26
[INFO] [stdout]      |
[INFO] [stdout] 1537 |             let valval = try!(val.call(env.clone()));
[INFO] [stdout]      |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1551:26
[INFO] [stdout]      |
[INFO] [stdout] 1551 |             let valval = try!(val.call(env.clone()));
[INFO] [stdout]      |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/main.rs:1561:16
[INFO] [stdout]      |
[INFO] [stdout] 1561 |             if (!update) {
[INFO] [stdout]      |                ^       ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1561 -             if (!update) {
[INFO] [stdout] 1561 +             if !update  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1575:41
[INFO] [stdout]      |
[INFO] [stdout] 1575 |             if let Sexp::Closure(rsc) = try!(evalue.call(env.clone())) {
[INFO] [stdout]      |                                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1595:25
[INFO] [stdout]      |
[INFO] [stdout] 1595 |                         try!(ecar.call(env.clone())),
[INFO] [stdout]      |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1596:25
[INFO] [stdout]      |
[INFO] [stdout] 1596 |                         try!(ecdr.call(env.clone()))))
[INFO] [stdout]      |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1643:23
[INFO] [stdout]      |
[INFO] [stdout] 1643 |                 res = try!(e.call(env.clone()));
[INFO] [stdout]      |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1657:24
[INFO] [stdout]      |
[INFO] [stdout] 1657 |             let func = try!(efunc.call(env.clone()));
[INFO] [stdout]      |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/main.rs:1675:12
[INFO] [stdout]      |
[INFO] [stdout] 1675 |         if (tail) {
[INFO] [stdout]      |            ^    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1675 -         if (tail) {
[INFO] [stdout] 1675 +         if tail  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1701:16
[INFO] [stdout]      |
[INFO] [stdout] 1701 |             if try!(etest.call(env.clone())).to_bool() {
[INFO] [stdout]      |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1716:24
[INFO] [stdout]      |
[INFO] [stdout] 1716 |                 last = try!(i.call(env.clone()));
[INFO] [stdout]      |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:1731:24
[INFO] [stdout]      |
[INFO] [stdout] 1731 |                 last = try!(i.call(env.clone()));
[INFO] [stdout]      |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `::Atom`
[INFO] [stdout]     --> src/main.rs:1794:9
[INFO] [stdout]      |
[INFO] [stdout] 1794 |     use ::Atom;
[INFO] [stdout]      |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `slist`
[INFO] [stdout]     --> src/main.rs:2192:18
[INFO] [stdout]      |
[INFO] [stdout] 2192 |     macro_rules! slist {
[INFO] [stdout]      |                  ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:2242:34
[INFO] [stdout]      |
[INFO] [stdout] 2242 |         ("car", Box::new(|it| Ok(try!(n!(it).car()).clone()))),
[INFO] [stdout]      |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:2243:34
[INFO] [stdout]      |
[INFO] [stdout] 2243 |         ("cdr", Box::new(|it| Ok(try!(n!(it).cdr()).clone()))),
[INFO] [stdout]      |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:2334:26
[INFO] [stdout]      |
[INFO] [stdout] 2334 |         let mut result = try!(get_num(&args.next().unwrap()));
[INFO] [stdout]      |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:2336:32
[INFO] [stdout]      |
[INFO] [stdout] 2336 |             result = f(result, try!(get_num(&s)));
[INFO] [stdout]      |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:2349:21
[INFO] [stdout]      |
[INFO] [stdout] 2349 |             let a = try!(v[i].num());
[INFO] [stdout]      |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:2350:21
[INFO] [stdout]      |
[INFO] [stdout] 2350 |             let b = try!(v[i+1].num());
[INFO] [stdout]      |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:2367:20
[INFO] [stdout]      |
[INFO] [stdout] 2367 |         let sexp = try!(parser.next_sexp());
[INFO] [stdout]      |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:2372:17
[INFO] [stdout]      |
[INFO] [stdout] 2372 |                 try!(process(file_name.clone(), a, env.clone()));
[INFO] [stdout]      |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:2371:43
[INFO] [stdout]      |
[INFO] [stdout] 2371 |             if let Sexp::Str(file_name) = try!(try!(sexp.cdr_take()).car_take()) {
[INFO] [stdout]      |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:2371:48
[INFO] [stdout]      |
[INFO] [stdout] 2371 |             if let Sexp::Str(file_name) = try!(try!(sexp.cdr_take()).car_take()) {
[INFO] [stdout]      |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/main.rs:2410:19
[INFO] [stdout]      |
[INFO] [stdout] 2410 |         interpret(try!(File::open(file_name)), a, env)
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:51:17
[INFO] [stdout]    |
[INFO] [stdout] 51 |     reader: Box<Read>,
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |     reader: Box<dyn Read>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:676:23
[INFO] [stdout]     |
[INFO] [stdout] 676 | type BuiltinPtr = Box<Fn(&mut Iterator<Item=Sexp>) -> SResult<Sexp>>;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 676 | type BuiltinPtr = Box<dyn Fn(&mut Iterator<Item=Sexp>) -> SResult<Sexp>>;
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:676:31
[INFO] [stdout]     |
[INFO] [stdout] 676 | type BuiltinPtr = Box<Fn(&mut Iterator<Item=Sexp>) -> SResult<Sexp>>;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 676 | type BuiltinPtr = Box<Fn(&mut dyn Iterator<Item=Sexp>) -> SResult<Sexp>>;
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1272:12
[INFO] [stdout]      |
[INFO] [stdout] 1272 |     f: Box<Fn(FramePtr) -> SResult<Sexp>>
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1272 |     f: Box<dyn Fn(FramePtr) -> SResult<Sexp>>
[INFO] [stdout]      |            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:120:42
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn cause<'a>(&'a self) -> Option<&'a std::error::Error> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn cause<'a>(&'a self) -> Option<&'a dyn std::error::Error> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:2330:26
[INFO] [stdout]      |
[INFO] [stdout] 2330 | fn mathy<F>(f: F) -> Box<Fn(&mut Iterator<Item=Sexp>)->SResult<Sexp>>
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 2330 | fn mathy<F>(f: F) -> Box<dyn Fn(&mut Iterator<Item=Sexp>)->SResult<Sexp>>
[INFO] [stdout]      |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:2330:34
[INFO] [stdout]      |
[INFO] [stdout] 2330 | fn mathy<F>(f: F) -> Box<Fn(&mut Iterator<Item=Sexp>)->SResult<Sexp>>
[INFO] [stdout]      |                                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 2330 | fn mathy<F>(f: F) -> Box<Fn(&mut dyn Iterator<Item=Sexp>)->SResult<Sexp>>
[INFO] [stdout]      |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:2342:25
[INFO] [stdout]      |
[INFO] [stdout] 2342 | fn cmpy<F>(f: F) -> Box<Fn(&mut Iterator<Item=Sexp>) -> SResult<Sexp>>
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 2342 | fn cmpy<F>(f: F) -> Box<dyn Fn(&mut Iterator<Item=Sexp>) -> SResult<Sexp>>
[INFO] [stdout]      |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:2342:33
[INFO] [stdout]      |
[INFO] [stdout] 2342 | fn cmpy<F>(f: F) -> Box<Fn(&mut Iterator<Item=Sexp>) -> SResult<Sexp>>
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 2342 | fn cmpy<F>(f: F) -> Box<Fn(&mut dyn Iterator<Item=Sexp>) -> SResult<Sexp>>
[INFO] [stdout]      |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:2132:46
[INFO] [stdout]      |
[INFO] [stdout] 2132 |         fn copy_all(&mut self, live_it: &mut Iterator<Item=&mut Sexp>) {
[INFO] [stdout]      |                                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 2132 |         fn copy_all(&mut self, live_it: &mut dyn Iterator<Item=&mut Sexp>) {
[INFO] [stdout]      |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:2299:26
[INFO] [stdout]      |
[INFO] [stdout] 2299 | fn scheme_apply(it: &mut Iterator<Item=Sexp>, env: FramePtr, ctx: Rc<IntCtx>) -> SResult<Sexp> {
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 2299 | fn scheme_apply(it: &mut dyn Iterator<Item=Sexp>, env: FramePtr, ctx: Rc<IntCtx>) -> SResult<Sexp> {
[INFO] [stdout]      |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:79:37
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn read_while(&mut self, pred: &Fn(char) -> bool) -> std::io::Result<String> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn read_while(&mut self, pred: &dyn Fn(char) -> bool) -> std::io::Result<String> {
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1220:39
[INFO] [stdout]      |
[INFO] [stdout] 1220 |     fn sexps<'a>(&'a mut self) -> Box<Iterator<Item=&'a mut Sexp> + 'a> {
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1220 |     fn sexps<'a>(&'a mut self) -> Box<dyn Iterator<Item=&'a mut Sexp> + 'a> {
[INFO] [stdout]      |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:1227:43
[INFO] [stdout]      |
[INFO] [stdout] 1227 |     fn all_sexps<'a>(&'a mut self) -> Box<Iterator<Item=&'a mut Sexp> + 'a> {
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1227 |     fn all_sexps<'a>(&'a mut self) -> Box<dyn Iterator<Item=&'a mut Sexp> + 'a> {
[INFO] [stdout]      |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Self` is not an iterator
[INFO] [stdout]     --> src/main.rs:1321:26
[INFO] [stdout]      |
[INFO] [stdout] 1321 |     fn lastable(self) -> Lastable<Self>;
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^ `Self` is not an iterator
[INFO] [stdout]      |
[INFO] [stdout] note: required by a bound in `Lastable`
[INFO] [stdout]     --> src/main.rs:1296:29
[INFO] [stdout]      |
[INFO] [stdout] 1296 | struct Lastable<I> where I: Iterator {
[INFO] [stdout]      |                             ^^^^^^^^ required by this bound in `Lastable`
[INFO] [stdout] help: consider further restricting `Self`
[INFO] [stdout]      |
[INFO] [stdout] 1321 |     fn lastable(self) -> Lastable<Self> where Self: Iterator;
[INFO] [stdout]      |                                         ++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `Self` cannot be known at compilation time
[INFO] [stdout]     --> src/main.rs:1321:26
[INFO] [stdout]      |
[INFO] [stdout] 1321 |     fn lastable(self) -> Lastable<Self>;
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]      |
[INFO] [stdout] note: required by an implicit `Sized` bound in `Lastable`
[INFO] [stdout]     --> src/main.rs:1296:17
[INFO] [stdout]      |
[INFO] [stdout] 1296 | struct Lastable<I> where I: Iterator {
[INFO] [stdout]      |                 ^ required by the implicit `Sized` requirement on this type parameter in `Lastable`
[INFO] [stdout] help: consider further restricting `Self`
[INFO] [stdout]      |
[INFO] [stdout] 1321 |     fn lastable(self) -> Lastable<Self> where Self: Sized;
[INFO] [stdout]      |                                         +++++++++++++++++
[INFO] [stdout] help: consider relaxing the implicit `Sized` restriction
[INFO] [stdout]      |
[INFO] [stdout] 1296 | struct Lastable<I> where I: Iterator + ?Sized {
[INFO] [stdout]      |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:114:44
[INFO] [stdout]     |
[INFO] [stdout] 114 |             ErrorType::IOError(ref e) => e.description(),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:133:49
[INFO] [stdout]     |
[INFO] [stdout] 133 |             ErrorType::IOError(ref e) => (e as &Display).fmt(f),
[INFO] [stdout]     |                                                 ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 133 |             ErrorType::IOError(ref e) => (e as &dyn Display).fmt(f),
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:497:46
[INFO] [stdout]     |
[INFO] [stdout] 497 |             Sexp::Closure(ref sc) => (sc as &Display).fmt(f),
[INFO] [stdout]     |                                              ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 497 |             Sexp::Closure(ref sc) => (sc as &dyn Display).fmt(f),
[INFO] [stdout]     |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:498:46
[INFO] [stdout]     |
[INFO] [stdout] 498 |             Sexp::Builtin(ref bi) => (bi as &Display).fmt(f),
[INFO] [stdout]     |                                              ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 498 |             Sexp::Builtin(ref bi) => (bi as &dyn Display).fmt(f),
[INFO] [stdout]     |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:2230:28
[INFO] [stdout]      |
[INFO] [stdout] 2230 |     let b : Vec<(&str, Box<Fn(&mut Iterator<Item=Sexp>) -> SResult<Sexp>>)> = vec!(
[INFO] [stdout]      |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 2230 |     let b : Vec<(&str, Box<dyn Fn(&mut Iterator<Item=Sexp>) -> SResult<Sexp>>)> = vec!(
[INFO] [stdout]      |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/main.rs:2230:36
[INFO] [stdout]      |
[INFO] [stdout] 2230 |     let b : Vec<(&str, Box<Fn(&mut Iterator<Item=Sexp>) -> SResult<Sexp>>)> = vec!(
[INFO] [stdout]      |                                    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 2230 |     let b : Vec<(&str, Box<Fn(&mut dyn Iterator<Item=Sexp>) -> SResult<Sexp>>)> = vec!(
[INFO] [stdout]      |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/main.rs:628:53
[INFO] [stdout]     |
[INFO] [stdout] 628 |     fn apply(&self, args: Vec<Sexp>, env: FramePtr, ctx: Rc<IntCtx>) -> SResult<Sexp> {
[INFO] [stdout]     |                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env_prev`
[INFO] [stdout]    --> src/main.rs:692:13
[INFO] [stdout]     |
[INFO] [stdout] 692 |         let env_prev = env.get_prev_stack().unwrap();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_env_prev`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:981:9
[INFO] [stdout]     |
[INFO] [stdout] 981 |     for i in 0..level {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> src/main.rs:1069:13
[INFO] [stdout]      |
[INFO] [stdout] 1069 |         for i in 0..tc.n_temps {
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1221:13
[INFO] [stdout]      |
[INFO] [stdout] 1221 |         let mut it = self.symtab.iter_mut().map(|i| i.1);
[INFO] [stdout]      |             ----^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1228:13
[INFO] [stdout]      |
[INFO] [stdout] 1228 |         let mut it = self.symtab.iter_mut().map(|i| i.1);
[INFO] [stdout]      |             ----^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1343:15
[INFO] [stdout]      |
[INFO] [stdout] 1343 | fn funcall<T>(mut func: Sexp,
[INFO] [stdout]      |               ----^^^^
[INFO] [stdout]      |               |
[INFO] [stdout]      |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1344:15
[INFO] [stdout]      |
[INFO] [stdout] 1344 |               mut args: T,
[INFO] [stdout]      |               ----^^^^
[INFO] [stdout]      |               |
[INFO] [stdout]      |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1378:9
[INFO] [stdout]      |
[INFO] [stdout] 1378 |     let mut rsres = if let Sexp::Closure(sc) = func {
[INFO] [stdout]      |         ----^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]     --> src/main.rs:1957:40
[INFO] [stdout]      |
[INFO] [stdout] 1957 |             else if let Some(Sexp::Num(threshold)) = env.find_and_lookup(
[INFO] [stdout]      |                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_id`
[INFO] [stdout]     --> src/main.rs:2115:21
[INFO] [stdout]      |
[INFO] [stdout] 2115 |                 let frame_id = env.id();
[INFO] [stdout]      |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2133:17
[INFO] [stdout]      |
[INFO] [stdout] 2133 |             for mut sexp in live_it {
[INFO] [stdout]      |                 ----^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `it`
[INFO] [stdout]     --> src/main.rs:2249:29
[INFO] [stdout]      |
[INFO] [stdout] 2249 |         ("apply", Box::new(|it| panic!("dummy function"))),
[INFO] [stdout]      |                             ^^ help: if this is intentional, prefix it with an underscore: `_it`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rsscm` (bin "rsscm") due to 2 previous errors; 102 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "131797cb2116d1f13b98bf19c943f269f12373717c34d5bf6594dd3047fbddd6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "131797cb2116d1f13b98bf19c943f269f12373717c34d5bf6594dd3047fbddd6", kill_on_drop: false }`
[INFO] [stdout] 131797cb2116d1f13b98bf19c943f269f12373717c34d5bf6594dd3047fbddd6
