[INFO] cloning repository https://github.com/Hybridlo/interpreter-book
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Hybridlo/interpreter-book" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHybridlo%2Finterpreter-book", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHybridlo%2Finterpreter-book'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fb2c74428311b91018dcce8e42db6ad26cbd1b5c
[INFO] checking Hybridlo/interpreter-book against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHybridlo%2Finterpreter-book" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Hybridlo/interpreter-book
[INFO] finished tweaking git repo https://github.com/Hybridlo/interpreter-book
[INFO] tweaked toml for git repo https://github.com/Hybridlo/interpreter-book written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Hybridlo/interpreter-book 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/Hybridlo/interpreter-book 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-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 4d6e10e92d4b3b8141c83a09cf552b203443f9b24aeafaa9ccb2733cde77c1cc
[INFO] running `Command { std: "docker" "start" "4d6e10e92d4b3b8141c83a09cf552b203443f9b24aeafaa9ccb2733cde77c1cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4d6e10e92d4b3b8141c83a09cf552b203443f9b24aeafaa9ccb2733cde77c1cc", 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" "4d6e10e92d4b3b8141c83a09cf552b203443f9b24aeafaa9ccb2733cde77c1cc" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4d6e10e92d4b3b8141c83a09cf552b203443f9b24aeafaa9ccb2733cde77c1cc", 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" "4d6e10e92d4b3b8141c83a09cf552b203443f9b24aeafaa9ccb2733cde77c1cc" "/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.78
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling anyhow v1.0.80
[INFO] [stderr]     Checking either v1.10.0
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]     Checking interpreter_book v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/ast/expressions.rs:142:18
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 .intersperse(", ".to_string())
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]    --> src/main.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 + #![feature(iter_intersperse)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/ast/expressions.rs:196:18
[INFO] [stdout]     |
[INFO] [stdout] 196 |                 .intersperse(", ".to_string())
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]    --> src/main.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 + #![feature(iter_intersperse)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/ast/expressions.rs:217:18
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 .intersperse(", ".to_string())
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]    --> src/main.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 + #![feature(iter_intersperse)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]   --> src/object/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | /         r#"
[INFO] [stdout] 27 | |         parameters
[INFO] [stdout] 28 | |             .iter()
[INFO] [stdout] 29 | |             .map(ToString::to_string)
[INFO] [stdout] 30 | |             .intersperse(", ".to_string())
[INFO] [stdout] 31 | |             .collect::<String>()
[INFO] [stdout] 32 | |         "#
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]   --> src/main.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 + #![feature(iter_intersperse)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]   --> src/object/mod.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | /         r#"
[INFO] [stdout] 46 | |         _0
[INFO] [stdout] 47 | |             .iter()
[INFO] [stdout] 48 | |             .map(ToString::to_string)
[INFO] [stdout] 49 | |             .intersperse(", ".to_string())
[INFO] [stdout] 50 | |             .collect::<String>()
[INFO] [stdout] 51 | |         "#
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]   --> src/main.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 + #![feature(iter_intersperse)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]   --> src/repl.rs:35:22
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     .intersperse("\n\t".to_string())
[INFO] [stdout]    |                      ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]   --> src/main.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 + #![feature(iter_intersperse)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `errors` is never used
[INFO] [stdout]   --> src/parser.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn errors(&self) -> &[anyhow::Error] {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/ast/expressions.rs:142:18
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 .intersperse(", ".to_string())
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]    --> src/main.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 + #![feature(iter_intersperse)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/ast/expressions.rs:196:18
[INFO] [stdout]     |
[INFO] [stdout] 196 |                 .intersperse(", ".to_string())
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]    --> src/main.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 + #![feature(iter_intersperse)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/ast/expressions.rs:217:18
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 .intersperse(", ".to_string())
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]    --> src/main.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 + #![feature(iter_intersperse)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]   --> src/object/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | /         r#"
[INFO] [stdout] 27 | |         parameters
[INFO] [stdout] 28 | |             .iter()
[INFO] [stdout] 29 | |             .map(ToString::to_string)
[INFO] [stdout] 30 | |             .intersperse(", ".to_string())
[INFO] [stdout] 31 | |             .collect::<String>()
[INFO] [stdout] 32 | |         "#
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]   --> src/main.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 + #![feature(iter_intersperse)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]   --> src/object/mod.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | /         r#"
[INFO] [stdout] 46 | |         _0
[INFO] [stdout] 47 | |             .iter()
[INFO] [stdout] 48 | |             .map(ToString::to_string)
[INFO] [stdout] 49 | |             .intersperse(", ".to_string())
[INFO] [stdout] 50 | |             .collect::<String>()
[INFO] [stdout] 51 | |         "#
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]   --> src/main.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 + #![feature(iter_intersperse)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]   --> src/repl.rs:35:22
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     .intersperse("\n\t".to_string())
[INFO] [stdout]    |                      ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]   --> src/main.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 + #![feature(iter_intersperse)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `errors` is never used
[INFO] [stdout]   --> src/parser.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn errors(&self) -> &[anyhow::Error] {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Expression`
[INFO] [stdout]    --> src/parser.rs:938:34
[INFO] [stdout]     |
[INFO] [stdout] 938 |         assert_infix_expression(&stmt_expr.0.clone().into(), "x", InfixOperator::Plus, "y");
[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] 938 -         assert_infix_expression(&stmt_expr.0.clone().into(), "x", InfixOperator::Plus, "y");
[INFO] [stdout] 938 +         assert_infix_expression(&stmt_expr.0.clone(), "x", InfixOperator::Plus, "y");
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 938 -         assert_infix_expression(&stmt_expr.0.clone().into(), "x", InfixOperator::Plus, "y");
[INFO] [stdout] 938 +         assert_infix_expression(&<Expression as Into<_>>::into(stmt_expr.0.clone()), "x", InfixOperator::Plus, "y");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `interpreter_book` (bin "interpreter_book" test) due to 1 previous error; 7 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "4d6e10e92d4b3b8141c83a09cf552b203443f9b24aeafaa9ccb2733cde77c1cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4d6e10e92d4b3b8141c83a09cf552b203443f9b24aeafaa9ccb2733cde77c1cc", kill_on_drop: false }`
[INFO] [stdout] 4d6e10e92d4b3b8141c83a09cf552b203443f9b24aeafaa9ccb2733cde77c1cc
