[INFO] cloning repository https://github.com/valikminak/lox
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/valikminak/lox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvalikminak%2Flox", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvalikminak%2Flox'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c0f6439ffb0c9559cf4b9c39a22471f0ee55323c
[INFO] testing valikminak/lox against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvalikminak%2Flox" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/valikminak/lox
[INFO] finished tweaking git repo https://github.com/valikminak/lox
[INFO] tweaked toml for git repo https://github.com/valikminak/lox written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/valikminak/lox on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/valikminak/lox 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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ce92951eeb37fbccb980781f3b6b83b210e33d2a99f74a50bde782d40da3cf28
[INFO] running `Command { std: "docker" "start" "-a" "ce92951eeb37fbccb980781f3b6b83b210e33d2a99f74a50bde782d40da3cf28", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ce92951eeb37fbccb980781f3b6b83b210e33d2a99f74a50bde782d40da3cf28", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ce92951eeb37fbccb980781f3b6b83b210e33d2a99f74a50bde782d40da3cf28", kill_on_drop: false }`
[INFO] [stdout] ce92951eeb37fbccb980781f3b6b83b210e33d2a99f74a50bde782d40da3cf28
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e1b8bc1f0678c1b0d07b844b0773d4309a558319f34d993af7a29367a9ffa24b
[INFO] running `Command { std: "docker" "start" "-a" "e1b8bc1f0678c1b0d07b844b0773d4309a558319f34d993af7a29367a9ffa24b", kill_on_drop: false }`
[INFO] [stderr]    Compiling lox v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Operator::*`
[INFO] [stdout]   --> src/evaluate.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         use Operator::*;
[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: `crate::tokenize::ScanError`
[INFO] [stdout]   --> src/main.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |             use crate::tokenize::ScanError;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/evaluate.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let mut environ = Environment::new(None);
[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: unused variable: `ch`
[INFO] [stdout]    --> src/tokenize2.rs:106:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |     let (n, ch) = chars.next()?;
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_ch`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tokenize2.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let mut line = 1;
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/main.rs:49:25
[INFO] [stdout]    |
[INFO] [stdout] 49 |         Error::Tokenize(e) => {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interp`
[INFO] [stdout]    --> src/main.rs:111:15
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn run_interp(interp: &mut evaluate::Interpreter, source: reader::Source) -> Result<(), Error> {
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_interp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens`
[INFO] [stdout]    --> src/main.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let tokens = tokenize2::tokenize(source);
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Output` is never used
[INFO] [stdout]   --> src/evaluate.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type Output = ();
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `top_level` is never read
[INFO] [stdout]   --> src/evaluate.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Interpreter {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 47 |     top_level: Rc<Environment>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evaluate` is never used
[INFO] [stdout]   --> src/evaluate.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl Interpreter {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn evaluate(&mut self,  ast: AST) -> Result<Output, Error> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate` is never used
[INFO] [stdout]   --> src/evaluate.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn evaluate(ast: AST) -> Result<Output, Error> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_statements` is never used
[INFO] [stdout]   --> src/evaluate.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn execute_statements(statements: &Vec<Stmt>, environ: &Rc<Environment>) -> Result<(), Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_statement` is never used
[INFO] [stdout]   --> src/evaluate.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn execute_statement(stmt: &Stmt, environ: &Rc<Environment>) -> Result<(), Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_expression` is never used
[INFO] [stdout]   --> src/evaluate.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn evaluate_expression(expr: &Expr, environ: &Rc<Environment>) -> Result<LoxValue, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/parser.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Parser {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Parser {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  41 |     pub fn new(tokens: Tokens) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     fn accept(&mut self, toktype: TokenType) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     fn accepts<const N: usize>(&mut self, toktypes: [TokenType; N]) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     fn consume(&mut self, toktype: TokenType, msg: &str) -> Result<(), Error> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     fn syntax_error(&self, msg: &str) -> Error {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     fn last_token(&self) -> &Token {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn last_lexeme(&self) -> &String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     fn at_end(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     fn parse_top(&mut self) -> Result<AST, Error> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     fn parse_statements(&mut self) -> Result<Vec<Stmt>, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn parse_var_declaration(&mut self) -> Result<Stmt, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn parse_declaration(&mut self) -> Result<Stmt, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn parse_statement(&mut self) -> Result<Stmt, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn parse_print_statement(&mut self) -> Result<Stmt, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn parse_expression_statement(&mut self) -> Result<Stmt, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn parse_expression(&mut self) -> Result<Expr, Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn parse_assignment(&mut self) -> Result<Expr, Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn parse_binary(&mut self) -> Result<Expr, Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn parse_unary(&mut self) -> Result<Expr, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn parse_primary(&mut self) -> Result<Expr, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]    --> src/parser.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub fn parse(tokens: Tokens) -> Result<AST, Error> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from` is never used
[INFO] [stdout]  --> src/reader.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | impl Source {
[INFO] [stdout]   | ----------- associated function in this implementation
[INFO] [stdout] 6 |     pub fn from(s: impl Into<String>) -> Source {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tokens` is never constructed
[INFO] [stdout]   --> src/tokenize.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct Tokens {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UnexpectedCharacter` and `UnterminatedString` are never constructed
[INFO] [stdout]   --> src/tokenize.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum ScanError {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 93 |     UnexpectedCharacter { line: usize, ch: char },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 94 |     UnterminatedString { line: usize },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScanError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/tokenize.rs:97:19
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct Error (Vec<ScanError>);
[INFO] [stdout]    |            -----  ^^^^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scanner` is never constructed
[INFO] [stdout]    --> src/tokenize.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | struct Scanner {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tokenize.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl Scanner {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 115 |     fn new(source: &str) -> Scanner {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn error(&mut self, err: ScanError) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn is_at_end(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     fn scan_tokens(mut self) -> Result<Tokens, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn advance(&mut self) -> char {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn matches(&mut self, expected: char) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn lexeme(&self) -> String {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn add_token(&mut self, toktype: TokenType) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     fn peek(&self) -> char {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     fn add_token_with_literal(&mut self, toktype: TokenType, literal: Literal) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     fn scan_token(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     fn string(&mut self) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     fn number(&mut self) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     fn identifier(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokenize` is never used
[INFO] [stdout]    --> src/tokenize.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub fn tokenize(source: Source) -> Result<Tokens, Error> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AST` is never constructed
[INFO] [stdout]  --> src/ast.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct AST {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `EString`, `EBool`, `ENil`, `EVariable`, and `EAssign` are never constructed
[INFO] [stdout]   --> src/ast.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 54 |     EString {value: String},
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 55 |     EBool {value: bool},
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 56 |     ENil,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     EVariable {name: String},
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 62 |     EAssign {name: String, value: Box<Expr>}
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `string`, `bool`, `nil`, `variable`, and `assign` are never used
[INFO] [stdout]    --> src/ast.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl Expr {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn string(value: impl Into<String>) -> Expr {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn bool(value: bool) -> Expr {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn nil() -> Expr {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn variable(name: impl Into<String>) -> Expr {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn assign(name: impl Into<String>, value: Expr) -> Expr {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Stmt` is never used
[INFO] [stdout]    --> src/ast.rs:108:10
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub enum Stmt {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `print`, `expression`, and `vardecl` are never used
[INFO] [stdout]    --> src/ast.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl Stmt {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout] 117 |     pub fn print(expr: Expr) -> Stmt {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn expression(expr: Expr) -> Stmt {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn vardecl(name: impl Into<String>, initializer: Option<Expr>) -> Stmt {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `parent` and `vars` are never read
[INFO] [stdout]  --> src/environ.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Environment<V: Clone> {
[INFO] [stdout]   |            ----------- fields in this struct
[INFO] [stdout] 6 |     parent: Option<Rc<Environment<V>>>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 7 |     vars: RefCell<HashMap<String, V>>,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `declare`, `lookup`, and `assign` are never used
[INFO] [stdout]   --> src/environ.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl<V: Clone> Environment<V> {
[INFO] [stdout]    | ----------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn declare(&self, name: &str, value: V) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn lookup(&self, name: &str) -> Option<V> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn assign(&self, name: &str, value: V) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/tokenize2.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum TokenType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     TSlash,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     TAnd,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 38 |     TClass,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 39 |     TElse,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 40 |     TFalse,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 41 |     TFun,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 42 |     TFor,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 43 |     TIf,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 44 |     TNil,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 45 |     TOr,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 46 |     TPrint,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 47 |     TReturn,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 48 |     TSuper,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 49 |     TThis,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 50 |     TTrue,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 51 |     TVar,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 52 |     TWhile,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tokens` is never read
[INFO] [stdout]   --> src/tokenize2.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct Tokens {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 79 |     pub tokens: Vec<Token>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Tokens` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UnexpectedCharacter` and `UnterminatedString` are never constructed
[INFO] [stdout]   --> src/tokenize2.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub enum ScanError {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 84 |     UnexpectedCharacter { line: usize, ch: char },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 85 |     UnterminatedString { line: usize },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScanError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/tokenize2.rs:89:18
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct Error(Vec<ScanError>);
[INFO] [stdout]    |            ----- ^^^^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter` is never used
[INFO] [stdout]   --> src/tokenize2.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | impl Error {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 93 |     pub fn iter(&self) -> std::slice::Iter<'_, ScanError> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.69s
[INFO] running `Command { std: "docker" "inspect" "e1b8bc1f0678c1b0d07b844b0773d4309a558319f34d993af7a29367a9ffa24b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e1b8bc1f0678c1b0d07b844b0773d4309a558319f34d993af7a29367a9ffa24b", kill_on_drop: false }`
[INFO] [stdout] e1b8bc1f0678c1b0d07b844b0773d4309a558319f34d993af7a29367a9ffa24b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 282bd3ce13cb57f2ef0d64b559dfdfc727d55be5c02f86d9ba3f7d1b40424fde
[INFO] running `Command { std: "docker" "start" "-a" "282bd3ce13cb57f2ef0d64b559dfdfc727d55be5c02f86d9ba3f7d1b40424fde", kill_on_drop: false }`
[INFO] [stderr]    Compiling lox v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Operator::*`
[INFO] [stdout]   --> src/evaluate.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         use Operator::*;
[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: `super::*`
[INFO] [stdout]    --> src/evaluate.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/parser.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tokenize::ScanError`
[INFO] [stdout]   --> src/main.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |             use crate::tokenize::ScanError;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/evaluate.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let mut environ = Environment::new(None);
[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: unused variable: `ch`
[INFO] [stdout]    --> src/tokenize2.rs:106:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |     let (n, ch) = chars.next()?;
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_ch`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tokenize2.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let mut line = 1;
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/main.rs:49:25
[INFO] [stdout]    |
[INFO] [stdout] 49 |         Error::Tokenize(e) => {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interp`
[INFO] [stdout]    --> src/main.rs:111:15
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn run_interp(interp: &mut evaluate::Interpreter, source: reader::Source) -> Result<(), Error> {
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_interp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens`
[INFO] [stdout]    --> src/main.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let tokens = tokenize2::tokenize(source);
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Output` is never used
[INFO] [stdout]   --> src/evaluate.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type Output = ();
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `top_level` is never read
[INFO] [stdout]   --> src/evaluate.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Interpreter {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 47 |     top_level: Rc<Environment>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evaluate` is never used
[INFO] [stdout]   --> src/evaluate.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl Interpreter {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn evaluate(&mut self,  ast: AST) -> Result<Output, Error> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate` is never used
[INFO] [stdout]   --> src/evaluate.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn evaluate(ast: AST) -> Result<Output, Error> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_statements` is never used
[INFO] [stdout]   --> src/evaluate.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn execute_statements(statements: &Vec<Stmt>, environ: &Rc<Environment>) -> Result<(), Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_statement` is never used
[INFO] [stdout]   --> src/evaluate.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn execute_statement(stmt: &Stmt, environ: &Rc<Environment>) -> Result<(), Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_expression` is never used
[INFO] [stdout]   --> src/evaluate.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn evaluate_expression(expr: &Expr, environ: &Rc<Environment>) -> Result<LoxValue, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/parser.rs:97:8
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Parser {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  97 |     fn parse_top(&mut self) -> Result<AST, Error> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     fn parse_statements(&mut self) -> Result<Vec<Stmt>, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn parse_var_declaration(&mut self) -> Result<Stmt, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn parse_declaration(&mut self) -> Result<Stmt, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn parse_statement(&mut self) -> Result<Stmt, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn parse_print_statement(&mut self) -> Result<Stmt, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn parse_expression_statement(&mut self) -> Result<Stmt, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]    --> src/parser.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub fn parse(tokens: Tokens) -> Result<AST, Error> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_string` is never used
[INFO] [stdout]   --> src/reader.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn parse_string(s: &str) -> AST {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `line` and `ch` are never read
[INFO] [stdout]   --> src/tokenize.rs:93:27
[INFO] [stdout]    |
[INFO] [stdout] 93 |     UnexpectedCharacter { line: usize, ch: char },
[INFO] [stdout]    |     -------------------   ^^^^         ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScanError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UnterminatedString` is never constructed
[INFO] [stdout]   --> src/tokenize.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum ScanError {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] 93 |     UnexpectedCharacter { line: usize, ch: char },
[INFO] [stdout] 94 |     UnterminatedString { line: usize },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScanError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/tokenize.rs:97:19
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct Error (Vec<ScanError>);
[INFO] [stdout]    |            -----  ^^^^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `error` is never used
[INFO] [stdout]    --> src/tokenize.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl Scanner {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn error(&mut self, err: ScanError) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AST` is never constructed
[INFO] [stdout]  --> src/ast.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct AST {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Stmt` is never used
[INFO] [stdout]    --> src/ast.rs:108:10
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub enum Stmt {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `print`, `expression`, and `vardecl` are never used
[INFO] [stdout]    --> src/ast.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl Stmt {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout] 117 |     pub fn print(expr: Expr) -> Stmt {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn expression(expr: Expr) -> Stmt {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn vardecl(name: impl Into<String>, initializer: Option<Expr>) -> Stmt {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `parent` and `vars` are never read
[INFO] [stdout]  --> src/environ.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Environment<V: Clone> {
[INFO] [stdout]   |            ----------- fields in this struct
[INFO] [stdout] 6 |     parent: Option<Rc<Environment<V>>>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 7 |     vars: RefCell<HashMap<String, V>>,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `declare`, `lookup`, and `assign` are never used
[INFO] [stdout]   --> src/environ.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl<V: Clone> Environment<V> {
[INFO] [stdout]    | ----------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn declare(&self, name: &str, value: V) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn lookup(&self, name: &str) -> Option<V> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn assign(&self, name: &str, value: V) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TSlash` is never constructed
[INFO] [stdout]   --> src/tokenize2.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum TokenType {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     TSlash,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UnexpectedCharacter` and `UnterminatedString` are never constructed
[INFO] [stdout]   --> src/tokenize2.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub enum ScanError {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 84 |     UnexpectedCharacter { line: usize, ch: char },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 85 |     UnterminatedString { line: usize },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScanError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/tokenize2.rs:89:18
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct Error(Vec<ScanError>);
[INFO] [stdout]    |            ----- ^^^^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter` is never used
[INFO] [stdout]   --> src/tokenize2.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | impl Error {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 93 |     pub fn iter(&self) -> std::slice::Iter<'_, ScanError> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.72s
[INFO] running `Command { std: "docker" "inspect" "282bd3ce13cb57f2ef0d64b559dfdfc727d55be5c02f86d9ba3f7d1b40424fde", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "282bd3ce13cb57f2ef0d64b559dfdfc727d55be5c02f86d9ba3f7d1b40424fde", kill_on_drop: false }`
[INFO] [stdout] 282bd3ce13cb57f2ef0d64b559dfdfc727d55be5c02f86d9ba3f7d1b40424fde
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 771d64722af6d0aa46bbddb0aa1c485699931a3cd51291eb1cffb4cc48691d96
[INFO] running `Command { std: "docker" "start" "-a" "771d64722af6d0aa46bbddb0aa1c485699931a3cd51291eb1cffb4cc48691d96", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Operator::*`
[INFO] [stderr]   --> src/evaluate.rs:28:13
[INFO] [stderr]    |
[INFO] [stderr] 28 |         use Operator::*;
[INFO] [stderr]    |             ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]    --> src/evaluate.rs:171:9
[INFO] [stderr]     |
[INFO] [stderr] 171 |     use super::*;
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]    --> src/parser.rs:232:9
[INFO] [stderr]     |
[INFO] [stderr] 232 |     use super::*;
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::tokenize::ScanError`
[INFO] [stderr]   --> src/main.rs:50:17
[INFO] [stderr]    |
[INFO] [stderr] 50 |             use crate::tokenize::ScanError;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/evaluate.rs:63:9
[INFO] [stderr]    |
[INFO] [stderr] 63 |     let mut environ = Environment::new(None);
[INFO] [stderr]    |         ----^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ch`
[INFO] [stderr]    --> src/tokenize2.rs:106:13
[INFO] [stderr]     |
[INFO] [stderr] 106 |     let (n, ch) = chars.next()?;
[INFO] [stderr]     |             ^^ help: if this is intentional, prefix it with an underscore: `_ch`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/tokenize2.rs:121:9
[INFO] [stderr]     |
[INFO] [stderr] 121 |     let mut line = 1;
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]   --> src/main.rs:49:25
[INFO] [stderr]    |
[INFO] [stderr] 49 |         Error::Tokenize(e) => {
[INFO] [stderr]    |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `interp`
[INFO] [stderr]    --> src/main.rs:111:15
[INFO] [stderr]     |
[INFO] [stderr] 111 | fn run_interp(interp: &mut evaluate::Interpreter, source: reader::Source) -> Result<(), Error> {
[INFO] [stderr]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_interp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tokens`
[INFO] [stderr]    --> src/main.rs:112:9
[INFO] [stderr]     |
[INFO] [stderr] 112 |     let tokens = tokenize2::tokenize(source);
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Output` is never used
[INFO] [stderr]   --> src/evaluate.rs:14:10
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub type Output = ();
[INFO] [stderr]    |          ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `top_level` is never read
[INFO] [stderr]   --> src/evaluate.rs:47:5
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub struct Interpreter {
[INFO] [stderr]    |            ----------- field in this struct
[INFO] [stderr] 47 |     top_level: Rc<Environment>,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `evaluate` is never used
[INFO] [stderr]   --> src/evaluate.rs:55:12
[INFO] [stderr]    |
[INFO] [stderr] 50 | impl Interpreter {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 55 |     pub fn evaluate(&mut self,  ast: AST) -> Result<Output, Error> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate` is never used
[INFO] [stderr]   --> src/evaluate.rs:61:8
[INFO] [stderr]    |
[INFO] [stderr] 61 | pub fn evaluate(ast: AST) -> Result<Output, Error> {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `execute_statements` is never used
[INFO] [stderr]   --> src/evaluate.rs:68:8
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub fn execute_statements(statements: &Vec<Stmt>, environ: &Rc<Environment>) -> Result<(), Error> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `execute_statement` is never used
[INFO] [stderr]   --> src/evaluate.rs:76:8
[INFO] [stderr]    |
[INFO] [stderr] 76 | pub fn execute_statement(stmt: &Stmt, environ: &Rc<Environment>) -> Result<(), Error> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate_expression` is never used
[INFO] [stderr]   --> src/evaluate.rs:98:8
[INFO] [stderr]    |
[INFO] [stderr] 98 | pub fn evaluate_expression(expr: &Expr, environ: &Rc<Environment>) -> Result<LoxValue, Error> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/parser.rs:97:8
[INFO] [stderr]     |
[INFO] [stderr]  40 | impl Parser {
[INFO] [stderr]     | ----------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  97 |     fn parse_top(&mut self) -> Result<AST, Error> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 106 |     fn parse_statements(&mut self) -> Result<Vec<Stmt>, Error> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 115 |     fn parse_var_declaration(&mut self) -> Result<Stmt, Error> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 126 |     fn parse_declaration(&mut self) -> Result<Stmt, Error> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 135 |     fn parse_statement(&mut self) -> Result<Stmt, Error> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 144 |     fn parse_print_statement(&mut self) -> Result<Stmt, Error> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 151 |     fn parse_expression_statement(&mut self) -> Result<Stmt, Error> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse` is never used
[INFO] [stderr]    --> src/parser.rs:224:8
[INFO] [stderr]     |
[INFO] [stderr] 224 | pub fn parse(tokens: Tokens) -> Result<AST, Error> {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_string` is never used
[INFO] [stderr]   --> src/reader.rs:36:8
[INFO] [stderr]    |
[INFO] [stderr] 36 |     fn parse_string(s: &str) -> AST {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `line` and `ch` are never read
[INFO] [stderr]   --> src/tokenize.rs:93:27
[INFO] [stderr]    |
[INFO] [stderr] 93 |     UnexpectedCharacter { line: usize, ch: char },
[INFO] [stderr]    |     -------------------   ^^^^         ^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ScanError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `UnterminatedString` is never constructed
[INFO] [stderr]   --> src/tokenize.rs:94:5
[INFO] [stderr]    |
[INFO] [stderr] 92 | pub enum ScanError {
[INFO] [stderr]    |          --------- variant in this enum
[INFO] [stderr] 93 |     UnexpectedCharacter { line: usize, ch: char },
[INFO] [stderr] 94 |     UnterminatedString { line: usize },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ScanError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/tokenize.rs:97:19
[INFO] [stderr]    |
[INFO] [stderr] 97 | pub struct Error (Vec<ScanError>);
[INFO] [stderr]    |            -----  ^^^^^^^^^^^^^^
[INFO] [stderr]    |            |
[INFO] [stderr]    |            field in this struct
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing this field
[INFO] [stderr]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `error` is never used
[INFO] [stderr]    --> src/tokenize.rs:126:8
[INFO] [stderr]     |
[INFO] [stderr] 114 | impl Scanner {
[INFO] [stderr]     | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 126 |     fn error(&mut self, err: ScanError) {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AST` is never constructed
[INFO] [stderr]  --> src/ast.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct AST {
[INFO] [stderr]   |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Stmt` is never used
[INFO] [stderr]    --> src/ast.rs:108:10
[INFO] [stderr]     |
[INFO] [stderr] 108 | pub enum Stmt {
[INFO] [stderr]     |          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `print`, `expression`, and `vardecl` are never used
[INFO] [stderr]    --> src/ast.rs:117:12
[INFO] [stderr]     |
[INFO] [stderr] 116 | impl Stmt {
[INFO] [stderr]     | --------- associated functions in this implementation
[INFO] [stderr] 117 |     pub fn print(expr: Expr) -> Stmt {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 121 |     pub fn expression(expr: Expr) -> Stmt {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub fn vardecl(name: impl Into<String>, initializer: Option<Expr>) -> Stmt {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `parent` and `vars` are never read
[INFO] [stderr]  --> src/environ.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct Environment<V: Clone> {
[INFO] [stderr]   |            ----------- fields in this struct
[INFO] [stderr] 6 |     parent: Option<Rc<Environment<V>>>,
[INFO] [stderr]   |     ^^^^^^
[INFO] [stderr] 7 |     vars: RefCell<HashMap<String, V>>,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `declare`, `lookup`, and `assign` are never used
[INFO] [stderr]   --> src/environ.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | impl<V: Clone> Environment<V> {
[INFO] [stderr]    | ----------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 16 |     pub fn declare(&self, name: &str, value: V) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     pub fn lookup(&self, name: &str) -> Option<V> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub fn assign(&self, name: &str, value: V) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `TSlash` is never constructed
[INFO] [stderr]   --> src/tokenize2.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr]  7 | pub enum TokenType {
[INFO] [stderr]    |          --------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 18 |     TSlash,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TokenType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `UnexpectedCharacter` and `UnterminatedString` are never constructed
[INFO] [stderr]   --> src/tokenize2.rs:84:5
[INFO] [stderr]    |
[INFO] [stderr] 83 | pub enum ScanError {
[INFO] [stderr]    |          --------- variants in this enum
[INFO] [stderr] 84 |     UnexpectedCharacter { line: usize, ch: char },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 85 |     UnterminatedString { line: usize },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ScanError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/tokenize2.rs:89:18
[INFO] [stderr]    |
[INFO] [stderr] 89 | pub struct Error(Vec<ScanError>);
[INFO] [stderr]    |            ----- ^^^^^^^^^^^^^^
[INFO] [stderr]    |            |
[INFO] [stderr]    |            field in this struct
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing this field
[INFO] [stderr]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `iter` is never used
[INFO] [stderr]   --> src/tokenize2.rs:93:12
[INFO] [stderr]    |
[INFO] [stderr] 92 | impl Error {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] 93 |     pub fn iter(&self) -> std::slice::Iter<'_, ScanError> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `lox` (bin "lox" test) generated 33 warnings (run `cargo fix --bin "lox" -p lox --tests` to apply 10 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lox-f3b2ecb40138b411)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test evaluate::tests::its_alive ... ok
[INFO] [stdout] test reader::tests::its_alive ... ok
[INFO] [stdout] test reader::tests::test_primary ... ok
[INFO] [stdout] test parser::tests::its_alive ... ok
[INFO] [stdout] test tokenize2::tests::identifiers ... ok
[INFO] [stdout] test tokenize2::tests::its_alive ... ok
[INFO] [stdout] test tokenize2::tests::numbers ... ok
[INFO] [stdout] test tokenize2::tests::single_character ... ok
[INFO] [stdout] test tokenize2::tests::two_character ... ok
[INFO] [stdout] test tokenize::tests::identifiers ... ok
[INFO] [stdout] test tokenize2::tests::strings ... ok
[INFO] [stdout] test tokenize::tests::numbers ... ok
[INFO] [stdout] test tokenize::tests::its_alive ... ok
[INFO] [stdout] test tokenize::tests::single_character ... ok
[INFO] [stdout] test tokenize::tests::strings ... ok
[INFO] [stdout] test reader::tests::test_binary ... ok
[INFO] [stdout] test tokenize::tests::two_characters ... ok
[INFO] [stdout] test tokenize::tests::keywords ... ok
[INFO] [stdout] test tokenize2::tests::keywords ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tokenize2::tests::keywords stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tokenize2::tests::keywords' (31) panicked at src/tokenize2.rs:374:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: [Token { toktype: TIdentifier, lexeme: "and", line: 1 }, Token { toktype: TIdentifier, lexeme: "class", line: 1 }, Token { toktype: TIdentifier, lexeme: "else", line: 1 }, Token { toktype: TIdentifier, lexeme: "false", line: 1 }, Token { toktype: TIdentifier, lexeme: "for", line: 1 }, Token { toktype: TIdentifier, lexeme: "fun", line: 1 }, Token { toktype: TIdentifier, lexeme: "if", line: 1 }, Token { toktype: TIdentifier, lexeme: "nil", line: 1 }, Token { toktype: TIdentifier, lexeme: "or", line: 1 }, Token { toktype: TIdentifier, lexeme: "print", line: 1 }, Token { toktype: TIdentifier, lexeme: "return", line: 1 }, Token { toktype: TIdentifier, lexeme: "super", line: 1 }, Token { toktype: TIdentifier, lexeme: "this", line: 1 }, Token { toktype: TIdentifier, lexeme: "true", line: 1 }, Token { toktype: TIdentifier, lexeme: "var", line: 1 }, Token { toktype: TIdentifier, lexeme: "while", line: 1 }, Token { toktype: TEof, lexeme: "", line: 1 }]
[INFO] [stdout]  right: [Token { toktype: TAnd, lexeme: "and", line: 1 }, Token { toktype: TClass, lexeme: "class", line: 1 }, Token { toktype: TElse, lexeme: "else", line: 1 }, Token { toktype: TFalse, lexeme: "false", line: 1 }, Token { toktype: TFor, lexeme: "for", line: 1 }, Token { toktype: TFun, lexeme: "fun", line: 1 }, Token { toktype: TIf, lexeme: "if", line: 1 }, Token { toktype: TNil, lexeme: "nil", line: 1 }, Token { toktype: TOr, lexeme: "or", line: 1 }, Token { toktype: TPrint, lexeme: "print", line: 1 }, Token { toktype: TReturn, lexeme: "return", line: 1 }, Token { toktype: TSuper, lexeme: "super", line: 1 }, Token { toktype: TThis, lexeme: "this", line: 1 }, Token { toktype: TTrue, lexeme: "true", line: 1 }, Token { toktype: TVar, lexeme: "var", line: 1 }, Token { toktype: TWhile, lexeme: "while", line: 1 }, Token { toktype: TEof, lexeme: "", line: 1 }]
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x629217a2fd32 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x629217a2fd32 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::trace_unsynchronized::<std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x629217a2fd32 - std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x629217a2fd32 - <<std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[585f66e14d78f9ba]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x629217a451ea - <core[585f66e14d78f9ba]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x629217a451ea - core[585f66e14d78f9ba]::fmt::write
[INFO] [stdout]    6:     0x629217a34b36 - std[3f03f8b59f91bef1]::io::default_write_fmt::<alloc[15e7b27aba85d2e2]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x629217a34b36 - <alloc[15e7b27aba85d2e2]::vec::Vec<u8> as std[3f03f8b59f91bef1]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x629217a0e4cf - <std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x629217a0e4cf - std[3f03f8b59f91bef1]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x629217a28069 - std[3f03f8b59f91bef1]::panicking::default_hook
[INFO] [stderr] error: test failed, to rerun pass `--bin lox`
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6292179c3a9e - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x6292179c3a9e - test[30224e0cb089acd2]::test_main_with_exit_callback::<test[30224e0cb089acd2]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x629217a28222 - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x629217a28222 - std[3f03f8b59f91bef1]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x629217a0e588 - std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x629217a03779 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_end_short_backtrace::<std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x629217a0f3dd - __rustc[caa99d26c7bae192]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x629217a458bc - core[585f66e14d78f9ba]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x629217a45773 - core[585f66e14d78f9ba]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x6292179a50f1 - core[585f66e14d78f9ba]::panicking::assert_failed::<alloc[15e7b27aba85d2e2]::vec::Vec<lox[8052fb7fdf1bef87]::tokenize2::Token>, alloc[15e7b27aba85d2e2]::vec::Vec<lox[8052fb7fdf1bef87]::tokenize2::Token>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x6292179b71f9 - lox[8052fb7fdf1bef87]::tokenize2::tests::keywords
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tokenize2.rs:374:9
[INFO] [stdout]   22:     0x6292179b1a07 - lox[8052fb7fdf1bef87]::tokenize2::tests::keywords::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tokenize2.rs:370:18
[INFO] [stdout]   23:     0x6292179ab6f6 - <lox[8052fb7fdf1bef87]::tokenize2::tests::keywords::{closure#0} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x6292179b7e4b - <fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x6292179b7e4b - test[30224e0cb089acd2]::__rust_begin_short_backtrace::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x6292179c46aa - test[30224e0cb089acd2]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x6292179c46aa - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x6292179c46aa - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x6292179c46aa - std[3f03f8b59f91bef1]::panicking::catch_unwind::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x6292179c46aa - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x6292179c46aa - test[30224e0cb089acd2]::run_test_in_process
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x6292179c46aa - test[30224e0cb089acd2]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x6292179beb74 - test[30224e0cb089acd2]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x6292179beb74 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_begin_short_backtrace::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x6292179c71a2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x6292179c71a2 - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x6292179c71a2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x6292179c71a2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::<(), core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x6292179c71a2 - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x6292179c71a2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x6292179c71a2 - <std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x629217a2f5df - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn core[585f66e14d78f9ba]::ops::function::FnOnce<(), Output = ()> + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x629217a2f5df - <std[3f03f8b59f91bef1]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   44:     0x7523e465faa4 - <unknown>
[INFO] [stdout]   45:     0x7523e46eca64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tokenize2::tests::keywords
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 18 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "771d64722af6d0aa46bbddb0aa1c485699931a3cd51291eb1cffb4cc48691d96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "771d64722af6d0aa46bbddb0aa1c485699931a3cd51291eb1cffb4cc48691d96", kill_on_drop: false }`
[INFO] [stdout] 771d64722af6d0aa46bbddb0aa1c485699931a3cd51291eb1cffb4cc48691d96
