[INFO] cloning repository https://github.com/eklavya/rustylox
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/eklavya/rustylox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Feklavya%2Frustylox", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Feklavya%2Frustylox'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 15cbcff8a64b13eaf2ad64be99cc0fd4defa34fd
[INFO] checking eklavya/rustylox against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Feklavya%2Frustylox" "/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/eklavya/rustylox
[INFO] finished tweaking git repo https://github.com/eklavya/rustylox
[INFO] tweaked toml for git repo https://github.com/eklavya/rustylox written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/eklavya/rustylox on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/eklavya/rustylox 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" "+a5689b034ad287112f709693384a37f1377eb9cc" "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/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1b0f2fb94fd51abcdfddad433e6492b4cd8c15b9815eab78f4acf6ad3fc25e83
[INFO] running `Command { std: "docker" "start" "1b0f2fb94fd51abcdfddad433e6492b4cd8c15b9815eab78f4acf6ad3fc25e83", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1b0f2fb94fd51abcdfddad433e6492b4cd8c15b9815eab78f4acf6ad3fc25e83", 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" "1b0f2fb94fd51abcdfddad433e6492b4cd8c15b9815eab78f4acf6ad3fc25e83" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1b0f2fb94fd51abcdfddad433e6492b4cd8c15b9815eab78f4acf6ad3fc25e83", 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" "1b0f2fb94fd51abcdfddad433e6492b4cd8c15b9815eab78f4acf6ad3fc25e83" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.14
[INFO] [stderr]    Compiling serde v1.0.110
[INFO] [stderr]    Compiling syn v1.0.23
[INFO] [stderr]    Compiling quote v1.0.6
[INFO] [stderr]    Compiling toml v0.5.6
[INFO] [stderr]    Compiling derivative v2.1.1
[INFO] [stderr]    Compiling proc-macro-crate v0.1.4
[INFO] [stderr]    Compiling num_enum_derive v0.5.0
[INFO] [stderr]     Checking num_enum v0.5.0
[INFO] [stderr]     Checking rustylox v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/obj.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::mem;
[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/vm.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::obj::{self, ObjString, ObjType, Object};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/obj.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::mem;
[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/vm.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::obj::{self, ObjString, ObjType, Object};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/vm.rs:229:21
[INFO] [stdout]     |
[INFO] [stdout] 224 |                     (ObjType::OString, ObjType::OString) => {
[INFO] [stdout]     |                     ------------------------------------ matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 229 |                     _ => false,
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_long` and `free` are never used
[INFO] [stdout]   --> src/chunk.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Chunk {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn write_long(&mut self, num: u16, line: i32) -> () {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn free(&mut self) -> () {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `PARSE_RULES_DBG` is never used
[INFO] [stdout]    --> src/compiler.rs:256:11
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl<'source_lifetime> Compiler<'source_lifetime> {
[INFO] [stdout]     | ------------------------------------------------- associated constant in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 256 |     const PARSE_RULES_DBG: [&'static str; 44] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `dealloc` is never used
[INFO] [stdout]   --> src/gc.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl GC {
[INFO] [stdout]    | ------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn dealloc(ptr: *mut u8, layout: Layout) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_obj_type` is never used
[INFO] [stdout]   --> src/obj.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn is_obj_type(v: Value, obj_type: ObjType) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `show_stack` is never used
[INFO] [stdout]    --> src/vm.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl VM {
[INFO] [stdout]     | ------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn show_stack(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `u8`
[INFO] [stdout]    --> src/compiler.rs:645:13
[INFO] [stdout]     |
[INFO] [stdout] 645 |             constant.into()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 645 -             constant.into()
[INFO] [stdout] 645 +             constant
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 645 -             constant.into()
[INFO] [stdout] 645 +             <u8 as Into<_>>::into(constant)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]   --> src/main.rs:46:28
[INFO] [stdout]    |
[INFO] [stdout] 46 |         if input.trim().eq(":exit".into()) {
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 46 -         if input.trim().eq(":exit".into()) {
[INFO] [stdout] 46 +         if input.trim().eq(":exit") {
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 46 -         if input.trim().eq(":exit".into()) {
[INFO] [stdout] 46 +         if input.trim().eq(<&str as Into<_>>::into(":exit")) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         stdout().flush();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let _ = stdout().flush();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         reader.read_line(&mut input);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let _ = reader.read_line(&mut input);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/compiler.rs:641:12
[INFO] [stdout]     |
[INFO] [stdout] 641 |         if constant > 255 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rustylox` (bin "rustylox") due to 2 previous errors; 11 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/vm.rs:229:21
[INFO] [stdout]     |
[INFO] [stdout] 224 |                     (ObjType::OString, ObjType::OString) => {
[INFO] [stdout]     |                     ------------------------------------ matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 229 |                     _ => false,
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_long` and `free` are never used
[INFO] [stdout]   --> src/chunk.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Chunk {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn write_long(&mut self, num: u16, line: i32) -> () {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn free(&mut self) -> () {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `PARSE_RULES_DBG` is never used
[INFO] [stdout]    --> src/compiler.rs:256:11
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl<'source_lifetime> Compiler<'source_lifetime> {
[INFO] [stdout]     | ------------------------------------------------- associated constant in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 256 |     const PARSE_RULES_DBG: [&'static str; 44] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `dealloc` is never used
[INFO] [stdout]   --> src/gc.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl GC {
[INFO] [stdout]    | ------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn dealloc(ptr: *mut u8, layout: Layout) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_obj_type` is never used
[INFO] [stdout]   --> src/obj.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn is_obj_type(v: Value, obj_type: ObjType) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `show_stack` is never used
[INFO] [stdout]    --> src/vm.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl VM {
[INFO] [stdout]     | ------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn show_stack(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `u8`
[INFO] [stdout]    --> src/compiler.rs:645:13
[INFO] [stdout]     |
[INFO] [stdout] 645 |             constant.into()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 645 -             constant.into()
[INFO] [stdout] 645 +             constant
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 645 -             constant.into()
[INFO] [stdout] 645 +             <u8 as Into<_>>::into(constant)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]   --> src/main.rs:46:28
[INFO] [stdout]    |
[INFO] [stdout] 46 |         if input.trim().eq(":exit".into()) {
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 46 -         if input.trim().eq(":exit".into()) {
[INFO] [stdout] 46 +         if input.trim().eq(":exit") {
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 46 -         if input.trim().eq(":exit".into()) {
[INFO] [stdout] 46 +         if input.trim().eq(<&str as Into<_>>::into(":exit")) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         stdout().flush();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let _ = stdout().flush();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         reader.read_line(&mut input);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let _ = reader.read_line(&mut input);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/compiler.rs:641:12
[INFO] [stdout]     |
[INFO] [stdout] 641 |         if constant > 255 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rustylox` (bin "rustylox" test) due to 2 previous errors; 11 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "1b0f2fb94fd51abcdfddad433e6492b4cd8c15b9815eab78f4acf6ad3fc25e83", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1b0f2fb94fd51abcdfddad433e6492b4cd8c15b9815eab78f4acf6ad3fc25e83", kill_on_drop: false }`
[INFO] [stdout] 1b0f2fb94fd51abcdfddad433e6492b4cd8c15b9815eab78f4acf6ad3fc25e83
