[INFO] updating cached repository esapyr/rusty-lisp [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/esapyr/rusty-lisp [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/esapyr/rusty-lisp" "work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/esapyr/rusty-lisp"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/esapyr/rusty-lisp'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/esapyr/rusty-lisp" "work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/esapyr/rusty-lisp"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/esapyr/rusty-lisp'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] b69f6ac038b8702c1e4e0139dff378e7b6cd9b38 [INFO] sha for GitHub repo esapyr/rusty-lisp: b69f6ac038b8702c1e4e0139dff378e7b6cd9b38 [INFO] validating manifest of esapyr/rusty-lisp on toolchain master#60960a260f7b5c695fd0717311d72ce62dd4eb43 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of esapyr/rusty-lisp on toolchain try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing esapyr/rusty-lisp [INFO] finished frobbing esapyr/rusty-lisp [INFO] frobbed toml for esapyr/rusty-lisp written to work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/esapyr/rusty-lisp/Cargo.toml [INFO] started frobbing esapyr/rusty-lisp [INFO] finished frobbing esapyr/rusty-lisp [INFO] frobbed toml for esapyr/rusty-lisp written to work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/esapyr/rusty-lisp/Cargo.toml [INFO] crate esapyr/rusty-lisp already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking esapyr/rusty-lisp against master#60960a260f7b5c695fd0717311d72ce62dd4eb43 for pr-63376 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-63376/worker-4/master#60960a260f7b5c695fd0717311d72ce62dd4eb43:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/esapyr/rusty-lisp:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 365aacccb0d6b8d6ad44bb762b0ed6c1a549e505327e576c60794c43b3c864ac [INFO] running `"docker" "start" "-a" "365aacccb0d6b8d6ad44bb762b0ed6c1a549e505327e576c60794c43b3c864ac"` [INFO] [stderr] Checking rusty-lisp v0.0.1 (/opt/crater/workdir) [INFO] [stderr] error: invalid suffix `i` for integer literal [INFO] [stderr] --> src/parser.rs:26:21 [INFO] [stderr] | [INFO] [stderr] 26 | let mut count = 0i; [INFO] [stderr] | ^^ invalid suffix `i` [INFO] [stderr] | [INFO] [stderr] = help: the suffix must be one of the integral types (`u32`, `isize`, etc) [INFO] [stderr] [INFO] [stderr] error: `--crate-name` and `#[crate_name]` are required to match, but `rusty_lisp` != `rusty-lisp` [INFO] [stderr] --> src/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #![crate_name = "rusty-lisp"] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: invalid suffix `i` for integer literal [INFO] [stderr] --> src/parser.rs:26:21 [INFO] [stderr] | [INFO] [stderr] 26 | let mut count = 0i; [INFO] [stderr] | ^^ invalid suffix `i` [INFO] [stderr] | [INFO] [stderr] = help: the suffix must be one of the integral types (`u32`, `isize`, etc) [INFO] [stderr] [INFO] [stderr] error: `--crate-name` and `#[crate_name]` are required to match, but `rusty_lisp` != `rusty-lisp` [INFO] [stderr] --> src/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #![crate_name = "rusty-lisp"] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: cannot find attribute macro `deriving` in this scope [INFO] [stderr] --> src/cons_cell.rs:27:3 [INFO] [stderr] | [INFO] [stderr] 27 | #[deriving (PartialEq, Show)] [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt` [INFO] [stderr] --> src/cons_cell.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fmt; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] error[E0061]: this function takes 1 parameter but 0 parameters were supplied [INFO] [stderr] --> src/main.rs:34:10 [INFO] [stderr] | [INFO] [stderr] 34 | .read_line() [INFO] [stderr] | ^^^^^^^^^ expected 1 parameter [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/main.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 31 | fn read() -> String { [INFO] [stderr] | ------ expected `std::string::String` because of return type [INFO] [stderr] 32 | print!(">"); [INFO] [stderr] 33 | / io::stdin() [INFO] [stderr] 34 | | .read_line() [INFO] [stderr] 35 | | .ok() [INFO] [stderr] 36 | | .expect("Couldn't read line") [INFO] [stderr] | |_____________________________________^ expected struct `std::string::String`, found usize [INFO] [stderr] | [INFO] [stderr] = note: expected type `std::string::String` [INFO] [stderr] found type `usize` [INFO] [stderr] help: try using a conversion method [INFO] [stderr] | [INFO] [stderr] 33 | io::stdin() [INFO] [stderr] 34 | .read_line() [INFO] [stderr] 35 | .ok() [INFO] [stderr] 36 | .expect("Couldn't read line").to_string() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/main.rs:47:36 [INFO] [stderr] | [INFO] [stderr] 47 | Pair::Atom(ref a) if a.as_slice() == "NIL" => { print!("NIL"); break }, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/main.rs:54:30 [INFO] [stderr] | [INFO] [stderr] 54 | if a.as_slice() != "NIL" { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/main.rs:62:30 [INFO] [stderr] | [INFO] [stderr] 62 | if n.as_slice() == "NIL" { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/main.rs:197:32 [INFO] [stderr] | [INFO] [stderr] 197 | Pair::Atom(ref a) if a.as_slice() == "NIL" => true, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/main.rs:206:46 [INFO] [stderr] | [INFO] [stderr] 206 | (_, &Pair::Atom(ref a)) if a.as_slice() != "NIL" => true, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/main.rs:217:32 [INFO] [stderr] | [INFO] [stderr] 217 | Pair::Atom(ref a) if a.as_slice() == "NIL" => false, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0369]: binary operation `==` cannot be applied to type `cons_cell::Pair` [INFO] [stderr] --> src/cons_cell.rs:64:11 [INFO] [stderr] | [INFO] [stderr] 64 | if *x == *y { [INFO] [stderr] | -- ^^ -- cons_cell::Pair [INFO] [stderr] | | [INFO] [stderr] | cons_cell::Pair [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::cmp::PartialEq` might be missing for `cons_cell::Pair` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/cons_cell.rs:92:32 [INFO] [stderr] | [INFO] [stderr] 92 | Pair::Atom(ref a) if a.as_slice() == "NIL" => Rc::new(Pair::Atom("NIL".to_string())), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/cons_cell.rs:108:32 [INFO] [stderr] | [INFO] [stderr] 108 | Pair::Atom(ref a) if a.as_slice() == "NIL" => Rc::new(Pair::Atom("NIL".to_string())), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0277]: a collection of type `std::string::String` cannot be built from an iterator over elements of type `std::char::ToUppercase` [INFO] [stderr] --> src/parser.rs:10:49 [INFO] [stderr] | [INFO] [stderr] 10 | .chars().map(|c| c.to_uppercase()).collect::() [INFO] [stderr] | ^^^^^^^ a collection of type `std::string::String` cannot be built from `std::iter::Iterator` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::iter::FromIterator` is not implemented for `std::string::String` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:29:18 [INFO] [stderr] | [INFO] [stderr] 29 | if token.as_slice() == "(" { count += 1 } [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:30:23 [INFO] [stderr] | [INFO] [stderr] 30 | else if token.as_slice() == ")" { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `expect` found for type `std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:55:46 [INFO] [stderr] | [INFO] [stderr] 55 | let token: String = tokens.remove(0).expect("Failed getting next token in parser"); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:57:21 [INFO] [stderr] | [INFO] [stderr] 57 | match token.as_slice() { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:67:45 [INFO] [stderr] | [INFO] [stderr] 67 | if (&tokens[0]).as_slice() == "(" || (&tokens[0]).as_slice() == "QUOTE" { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:67:79 [INFO] [stderr] | [INFO] [stderr] 67 | if (&tokens[0]).as_slice() == "(" || (&tokens[0]).as_slice() == "QUOTE" { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `expect` found for type `std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:70:93 [INFO] [stderr] | [INFO] [stderr] 70 | cons(cons(make_atom(token), cons(make_atom(tokens.remove(0).expect("")), make_atom("NIL"))), build_sexpr(tokens)) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 22 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0061, E0277, E0308, E0369, E0599. [INFO] [stderr] For more information about an error, try `rustc --explain E0061`. [INFO] [stderr] error: Could not compile `rusty-lisp`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: cannot find attribute macro `deriving` in this scope [INFO] [stderr] --> src/cons_cell.rs:27:3 [INFO] [stderr] | [INFO] [stderr] 27 | #[deriving (PartialEq, Show)] [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt` [INFO] [stderr] --> src/cons_cell.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fmt; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] error[E0061]: this function takes 1 parameter but 0 parameters were supplied [INFO] [stderr] --> src/main.rs:34:10 [INFO] [stderr] | [INFO] [stderr] 34 | .read_line() [INFO] [stderr] | ^^^^^^^^^ expected 1 parameter [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/main.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 31 | fn read() -> String { [INFO] [stderr] | ------ expected `std::string::String` because of return type [INFO] [stderr] 32 | print!(">"); [INFO] [stderr] 33 | / io::stdin() [INFO] [stderr] 34 | | .read_line() [INFO] [stderr] 35 | | .ok() [INFO] [stderr] 36 | | .expect("Couldn't read line") [INFO] [stderr] | |_____________________________________^ expected struct `std::string::String`, found usize [INFO] [stderr] | [INFO] [stderr] = note: expected type `std::string::String` [INFO] [stderr] found type `usize` [INFO] [stderr] help: try using a conversion method [INFO] [stderr] | [INFO] [stderr] 33 | io::stdin() [INFO] [stderr] 34 | .read_line() [INFO] [stderr] 35 | .ok() [INFO] [stderr] 36 | .expect("Couldn't read line").to_string() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/main.rs:47:36 [INFO] [stderr] | [INFO] [stderr] 47 | Pair::Atom(ref a) if a.as_slice() == "NIL" => { print!("NIL"); break }, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/main.rs:54:30 [INFO] [stderr] | [INFO] [stderr] 54 | if a.as_slice() != "NIL" { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/main.rs:62:30 [INFO] [stderr] | [INFO] [stderr] 62 | if n.as_slice() == "NIL" { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/main.rs:197:32 [INFO] [stderr] | [INFO] [stderr] 197 | Pair::Atom(ref a) if a.as_slice() == "NIL" => true, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/main.rs:206:46 [INFO] [stderr] | [INFO] [stderr] 206 | (_, &Pair::Atom(ref a)) if a.as_slice() != "NIL" => true, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/main.rs:217:32 [INFO] [stderr] | [INFO] [stderr] 217 | Pair::Atom(ref a) if a.as_slice() == "NIL" => false, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0369]: binary operation `==` cannot be applied to type `cons_cell::Pair` [INFO] [stderr] --> src/cons_cell.rs:64:11 [INFO] [stderr] | [INFO] [stderr] 64 | if *x == *y { [INFO] [stderr] | -- ^^ -- cons_cell::Pair [INFO] [stderr] | | [INFO] [stderr] | cons_cell::Pair [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::cmp::PartialEq` might be missing for `cons_cell::Pair` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/cons_cell.rs:92:32 [INFO] [stderr] | [INFO] [stderr] 92 | Pair::Atom(ref a) if a.as_slice() == "NIL" => Rc::new(Pair::Atom("NIL".to_string())), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/cons_cell.rs:108:32 [INFO] [stderr] | [INFO] [stderr] 108 | Pair::Atom(ref a) if a.as_slice() == "NIL" => Rc::new(Pair::Atom("NIL".to_string())), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0277]: a collection of type `std::string::String` cannot be built from an iterator over elements of type `std::char::ToUppercase` [INFO] [stderr] --> src/parser.rs:10:49 [INFO] [stderr] | [INFO] [stderr] 10 | .chars().map(|c| c.to_uppercase()).collect::() [INFO] [stderr] | ^^^^^^^ a collection of type `std::string::String` cannot be built from `std::iter::Iterator` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::iter::FromIterator` is not implemented for `std::string::String` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:29:18 [INFO] [stderr] | [INFO] [stderr] 29 | if token.as_slice() == "(" { count += 1 } [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:30:23 [INFO] [stderr] | [INFO] [stderr] 30 | else if token.as_slice() == ")" { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `expect` found for type `std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:55:46 [INFO] [stderr] | [INFO] [stderr] 55 | let token: String = tokens.remove(0).expect("Failed getting next token in parser"); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:57:21 [INFO] [stderr] | [INFO] [stderr] 57 | match token.as_slice() { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:67:45 [INFO] [stderr] | [INFO] [stderr] 67 | if (&tokens[0]).as_slice() == "(" || (&tokens[0]).as_slice() == "QUOTE" { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `as_slice` found for type `&std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:67:79 [INFO] [stderr] | [INFO] [stderr] 67 | if (&tokens[0]).as_slice() == "(" || (&tokens[0]).as_slice() == "QUOTE" { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `expect` found for type `std::string::String` in the current scope [INFO] [stderr] --> src/parser.rs:70:93 [INFO] [stderr] | [INFO] [stderr] 70 | cons(cons(make_atom(token), cons(make_atom(tokens.remove(0).expect("")), make_atom("NIL"))), build_sexpr(tokens)) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 22 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0061, E0277, E0308, E0369, E0599. [INFO] [stderr] For more information about an error, try `rustc --explain E0061`. [INFO] [stderr] error: Could not compile `rusty-lisp`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "365aacccb0d6b8d6ad44bb762b0ed6c1a549e505327e576c60794c43b3c864ac"` [INFO] running `"docker" "rm" "-f" "365aacccb0d6b8d6ad44bb762b0ed6c1a549e505327e576c60794c43b3c864ac"` [INFO] [stdout] 365aacccb0d6b8d6ad44bb762b0ed6c1a549e505327e576c60794c43b3c864ac