[INFO] cloning repository https://github.com/ebrahim02-ag/lox-interpreter-with-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ebrahim02-ag/lox-interpreter-with-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Febrahim02-ag%2Flox-interpreter-with-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Febrahim02-ag%2Flox-interpreter-with-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 23be278a222ff5b6131ead01e76d580430b472eb
[INFO] checking ebrahim02-ag/lox-interpreter-with-rust against df1ae0f7dd168513de2d89beb2cb7a95d4fdc118 for pr-159343-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Febrahim02-ag%2Flox-interpreter-with-rust" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ebrahim02-ag/lox-interpreter-with-rust
[INFO] finished tweaking git repo https://github.com/ebrahim02-ag/lox-interpreter-with-rust
[INFO] tweaked toml for git repo https://github.com/ebrahim02-ag/lox-interpreter-with-rust written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ebrahim02-ag/lox-interpreter-with-rust on toolchain df1ae0f7dd168513de2d89beb2cb7a95d4fdc118
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+df1ae0f7dd168513de2d89beb2cb7a95d4fdc118" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ebrahim02-ag/lox-interpreter-with-rust 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" "+df1ae0f7dd168513de2d89beb2cb7a95d4fdc118" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 796dd5fa43685194977542c14a20099f2edcef1f3f58a6ca580a88c160d39d4c
[INFO] running `Command { std: "docker" "start" "796dd5fa43685194977542c14a20099f2edcef1f3f58a6ca580a88c160d39d4c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "796dd5fa43685194977542c14a20099f2edcef1f3f58a6ca580a88c160d39d4c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "796dd5fa43685194977542c14a20099f2edcef1f3f58a6ca580a88c160d39d4c" "/opt/rustwide/cargo-home/bin/cargo" "+df1ae0f7dd168513de2d89beb2cb7a95d4fdc118" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "796dd5fa43685194977542c14a20099f2edcef1f3f58a6ca580a88c160d39d4c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "796dd5fa43685194977542c14a20099f2edcef1f3f58a6ca580a88c160d39d4c" "/opt/rustwide/cargo-home/bin/cargo" "+df1ae0f7dd168513de2d89beb2cb7a95d4fdc118" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking interpreters v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `core::f32`
[INFO] [stdout]  --> src/scanner.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::f32;
[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: `self`
[INFO] [stdout]  --> src/parser.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::token_type::{self, TokenType};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::f32`
[INFO] [stdout]  --> src/scanner.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::f32;
[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: `self`
[INFO] [stdout]  --> src/parser.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::token_type::{self, TokenType};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `vist_callexpr`
[INFO] [stdout]   --> src/ast_printer.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl Visitor<String> for AstPrinter{
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `vist_callexpr` in implementation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/expr.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn vist_callexpr(&self, e: &Call) -> T;
[INFO] [stdout]    |     --------------------------------------- `vist_callexpr` from trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `vist_callexpr`
[INFO] [stdout]   --> src/ast_printer.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl Visitor<String> for AstPrinter{
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `vist_callexpr` in implementation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/expr.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn vist_callexpr(&self, e: &Call) -> T;
[INFO] [stdout]    |     --------------------------------------- `vist_callexpr` from trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `arity` has an incompatible type for trait
[INFO] [stdout]   --> src/object.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn arity(&self) {
[INFO] [stdout]    |                    ^ expected `usize`, found `()`
[INFO] [stdout]    |
[INFO] [stdout] note: type in trait
[INFO] [stdout]   --> src/lox_callable.rs:6:24
[INFO] [stdout]    |
[INFO] [stdout]  6 |     fn arity(&self) -> usize;
[INFO] [stdout]    |                        ^^^^^
[INFO] [stdout]    = note: expected signature `fn(&Object) -> usize`
[INFO] [stdout]               found signature `fn(&Object) -> ()`
[INFO] [stdout] help: change the output type to match the trait
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn arity(&self) -> usize {
[INFO] [stdout]    |                     ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `arity` has an incompatible type for trait
[INFO] [stdout]   --> src/object.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn arity(&self) {
[INFO] [stdout]    |                    ^ expected `usize`, found `()`
[INFO] [stdout]    |
[INFO] [stdout] note: type in trait
[INFO] [stdout]   --> src/lox_callable.rs:6:24
[INFO] [stdout]    |
[INFO] [stdout]  6 |     fn arity(&self) -> usize;
[INFO] [stdout]    |                        ^^^^^
[INFO] [stdout]    = note: expected signature `fn(&Object) -> usize`
[INFO] [stdout]               found signature `fn(&Object) -> ()`
[INFO] [stdout] help: change the output type to match the trait
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn arity(&self) -> usize {
[INFO] [stdout]    |                     ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0023]: this pattern has 1 field, but the corresponding tuple variant has 0 fields
[INFO] [stdout]    --> src/interpreter.rs:174:30
[INFO] [stdout]     |
[INFO] [stdout] 174 |             Object::Callable(i) => {},
[INFO] [stdout]     |                              ^ expected 0 fields, found 1
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/object.rs:11:5
[INFO] [stdout]     |
[INFO] [stdout]  11 |     Callable()
[INFO] [stdout]     |     -------- tuple variant has 0 fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0023]: this pattern has 1 field, but the corresponding tuple variant has 0 fields
[INFO] [stdout]    --> src/interpreter.rs:174:30
[INFO] [stdout]     |
[INFO] [stdout] 174 |             Object::Callable(i) => {},
[INFO] [stdout]     |                              ^ expected 0 fields, found 1
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/object.rs:11:5
[INFO] [stdout]     |
[INFO] [stdout]  11 |     Callable()
[INFO] [stdout]     |     -------- tuple variant has 0 fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/object.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn arity(&self) {
[INFO] [stdout]    |                    - expected `()` because of default return type
[INFO] [stdout] 19 |         return 0
[INFO] [stdout]    |                ^ expected `()`, found integer
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/object.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn arity(&self) {
[INFO] [stdout]    |                    - expected `()` because of default return type
[INFO] [stdout] 19 |         return 0
[INFO] [stdout]    |                ^ expected `()`, found integer
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stm`
[INFO] [stdout]   --> src/parser.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |             Err(stm) => {
[INFO] [stdout]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_stm`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stm`
[INFO] [stdout]   --> src/parser.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |             Err(stm) => {
[INFO] [stdout]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_stm`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]    --> src/interpreter.rs:221:13
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let obj = self.evaluate(&stmt.expression);
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `&Object::Callable` not covered
[INFO] [stdout]    --> src/interpreter.rs:273:15
[INFO] [stdout]     |
[INFO] [stdout] 273 |         match obj {
[INFO] [stdout]     |               ^^^ pattern `&Object::Callable` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `Object` defined here
[INFO] [stdout]    --> src/object.rs:6:10
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub enum Object {
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  11 |     Callable()
[INFO] [stdout]     |     -------- not covered
[INFO] [stdout]     = note: the matched value is of type `&Object`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 285 ~             Object::String(i) => i.to_owned(),
[INFO] [stdout] 286 ~             &Object::Callable => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interpreter`
[INFO] [stdout]   --> src/object.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn call(&self, interpreter: &Interpreter, arguments: Vec<Object>) -> Object {
[INFO] [stdout]    |                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interpreter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arguments`
[INFO] [stdout]   --> src/object.rs:15:47
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn call(&self, interpreter: &Interpreter, arguments: Vec<Object>) -> Object {
[INFO] [stdout]    |                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arguments`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/main.rs:66:60
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let contents: Vec<u8> = fs::read(path).unwrap_or_else(|err|{
[INFO] [stdout]    |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `printer`
[INFO] [stdout]    --> src/main.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let printer = ast_printer::AstPrinter;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_printer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]    --> src/interpreter.rs:221:13
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let obj = self.evaluate(&stmt.expression);
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `&Object::Callable` not covered
[INFO] [stdout]    --> src/interpreter.rs:273:15
[INFO] [stdout]     |
[INFO] [stdout] 273 |         match obj {
[INFO] [stdout]     |               ^^^ pattern `&Object::Callable` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `Object` defined here
[INFO] [stdout]    --> src/object.rs:6:10
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub enum Object {
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  11 |     Callable()
[INFO] [stdout]     |     -------- not covered
[INFO] [stdout]     = note: the matched value is of type `&Object`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 285 ~             Object::String(i) => i.to_owned(),
[INFO] [stdout] 286 ~             &Object::Callable => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interpreter`
[INFO] [stdout]   --> src/object.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn call(&self, interpreter: &Interpreter, arguments: Vec<Object>) -> Object {
[INFO] [stdout]    |                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interpreter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arguments`
[INFO] [stdout]   --> src/object.rs:15:47
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn call(&self, interpreter: &Interpreter, arguments: Vec<Object>) -> Object {
[INFO] [stdout]    |                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arguments`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0023, E0046, E0053, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/main.rs:66:60
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let contents: Vec<u8> = fs::read(path).unwrap_or_else(|err|{
[INFO] [stdout]    |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `printer`
[INFO] [stdout]    --> src/main.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let printer = ast_printer::AstPrinter;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_printer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `interpreters` (bin "interpreters") due to 5 previous errors; 8 warnings emitted
[INFO] [stdout] Some errors have detailed explanations: E0004, E0023, E0046, E0053, E0308.
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `interpreters` (bin "interpreters" test) due to 5 previous errors; 8 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "796dd5fa43685194977542c14a20099f2edcef1f3f58a6ca580a88c160d39d4c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "796dd5fa43685194977542c14a20099f2edcef1f3f58a6ca580a88c160d39d4c", kill_on_drop: false }`
[INFO] [stdout] 796dd5fa43685194977542c14a20099f2edcef1f3f58a6ca580a88c160d39d4c
