[INFO] cloning repository https://github.com/Jovasa/AoC2020 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Jovasa/AoC2020" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJovasa%2FAoC2020", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJovasa%2FAoC2020'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a82d22b4389da71d425a2c939e6dab84530f4ef9 [INFO] checking Jovasa/AoC2020/a82d22b4389da71d425a2c939e6dab84530f4ef9 against master#f609b7e0586f81fefb3523e3e17adf779ac416be for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJovasa%2FAoC2020" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Jovasa/AoC2020 on toolchain f609b7e0586f81fefb3523e3e17adf779ac416be [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Jovasa/AoC2020 [INFO] finished tweaking git repo https://github.com/Jovasa/AoC2020 [INFO] tweaked toml for git repo https://github.com/Jovasa/AoC2020 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/Jovasa/AoC2020 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" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded strum v0.20.0 [INFO] [stderr] Downloaded strum_macros v0.20.1 [INFO] [stderr] Downloaded syn v1.0.54 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 906d5e9792cb04ec6877e01470416adaf1596941e30d08d5d3158b18c01bba60 [INFO] running `Command { std: "docker" "start" "-a" "906d5e9792cb04ec6877e01470416adaf1596941e30d08d5d3158b18c01bba60", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "906d5e9792cb04ec6877e01470416adaf1596941e30d08d5d3158b18c01bba60", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "906d5e9792cb04ec6877e01470416adaf1596941e30d08d5d3158b18c01bba60", kill_on_drop: false }` [INFO] [stdout] 906d5e9792cb04ec6877e01470416adaf1596941e30d08d5d3158b18c01bba60 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0e9e5a0be482408807023b63d09fffa6a9fe4fac3059f10c18bdadea61c6dbce [INFO] running `Command { std: "docker" "start" "-a" "0e9e5a0be482408807023b63d09fffa6a9fe4fac3059f10c18bdadea61c6dbce", kill_on_drop: false }` [INFO] [stderr] Compiling syn v1.0.54 [INFO] [stderr] Compiling unicode-segmentation v1.7.1 [INFO] [stderr] Checking regex-syntax v0.6.21 [INFO] [stderr] Checking strum v0.20.0 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Checking thread_local v1.0.1 [INFO] [stderr] Checking itertools v0.9.0 [INFO] [stderr] Compiling heck v0.3.1 [INFO] [stderr] Checking regex v1.4.2 [INFO] [stderr] Compiling strum_macros v0.20.1 [INFO] [stderr] Checking aoc2020 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: couldn't read src/day17.rs: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around index expression [INFO] [stdout] --> src/day10.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | jolt_difs[(data[i] - data[i - 1])] += 1; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 14 - jolt_difs[(data[i] - data[i - 1])] += 1; [INFO] [stdout] 14 + jolt_difs[data[i] - data[i - 1]] += 1; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `aoc2020` (bin "day17") due to 2 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `first` is never used [INFO] [stdout] --> src/day14.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn first() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `first` is never used [INFO] [stdout] --> src/day14.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn first() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day20.rs:62:16 [INFO] [stdout] | [INFO] [stdout] 62 | fn match_edges(mut first: TileRef, mut other: TileRef) -> bool { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day20.rs:62:36 [INFO] [stdout] | [INFO] [stdout] 62 | fn match_edges(mut first: TileRef, mut other: TileRef) -> bool { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `Ref<'_, Tile>` [INFO] [stdout] --> src/day20.rs:73:16 [INFO] [stdout] | [INFO] [stdout] 73 | if first.borrow().get_edge(&my_edge) == other.borrow().get_edge(&other_edge) { [INFO] [stdout] | ^^^^^^^^^^^^^^ ------------------ value moved due to this method call [INFO] [stdout] | | [INFO] [stdout] | move occurs because value has type `Tile`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: `Tile::get_edge` takes ownership of the receiver `self`, which moves value [INFO] [stdout] --> src/day20.rs:51:17 [INFO] [stdout] | [INFO] [stdout] 51 | fn get_edge(self, edge: &Edge) -> String{ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `Ref<'_, Tile>` [INFO] [stdout] --> src/day20.rs:73:53 [INFO] [stdout] | [INFO] [stdout] 73 | if first.borrow().get_edge(&my_edge) == other.borrow().get_edge(&other_edge) { [INFO] [stdout] | ^^^^^^^^^^^^^^ --------------------- value moved due to this method call [INFO] [stdout] | | [INFO] [stdout] | move occurs because value has type `Tile`, which does not implement the `Copy` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `other` [INFO] [stdout] --> src/day20.rs:75:17 [INFO] [stdout] | [INFO] [stdout] 62 | fn match_edges(mut first: TileRef, mut other: TileRef) -> bool { [INFO] [stdout] | --------- move occurs because `other` has type `Rc>`, which does not implement the `Copy` trait [INFO] [stdout] 63 | for my_edge in Edge::iter() { [INFO] [stdout] | --------------------------- inside of this loop [INFO] [stdout] ... [INFO] [stdout] 68 | for other_edge in Edge::iter() { [INFO] [stdout] | ------------------------------ inside of this loop [INFO] [stdout] ... [INFO] [stdout] 74 | first.borrow_mut().neighbors.insert(my_edge, Some(other)); [INFO] [stdout] | ----- value moved here [INFO] [stdout] 75 | other.borrow_mut().neighbors.insert(other_edge, Some(first)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: verify that your loop breaking logic is correct [INFO] [stdout] --> src/day20.rs:65:21 [INFO] [stdout] | [INFO] [stdout] 63 | for my_edge in Edge::iter() { [INFO] [stdout] | --------------------------- [INFO] [stdout] 64 | match first.borrow().neighbors.get(&my_edge).unwrap() { [INFO] [stdout] 65 | None => continue, [INFO] [stdout] | ^^^^^^^^ this `continue` advances the loop at line 63 [INFO] [stdout] ... [INFO] [stdout] 68 | for other_edge in Edge::iter() { [INFO] [stdout] | ------------------------------ [INFO] [stdout] 69 | match other.borrow().neighbors.get(&other_edge).unwrap() { [INFO] [stdout] 70 | None => continue, [INFO] [stdout] | ^^^^^^^^ this `continue` advances the loop at line 68 [INFO] [stdout] = note: borrow occurs due to deref coercion to `RefCell` [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 63 ~ let mut value = Some(other); [INFO] [stdout] 64 ~ for my_edge in Edge::iter() { [INFO] [stdout] 65 | match first.borrow().neighbors.get(&my_edge).unwrap() { [INFO] [stdout] ... [INFO] [stdout] 74 | if first.borrow().get_edge(&my_edge) == other.borrow().get_edge(&other_edge) { [INFO] [stdout] 75 ~ first.borrow_mut().neighbors.insert(my_edge, value); [INFO] [stdout] | [INFO] [stdout] help: clone the value to increment its reference count [INFO] [stdout] | [INFO] [stdout] 74 | first.borrow_mut().neighbors.insert(my_edge, Some(other.clone())); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 3 previous errors; 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0382, E0507. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0382`. [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day20.rs:62:16 [INFO] [stdout] | [INFO] [stdout] 62 | fn match_edges(mut first: TileRef, mut other: TileRef) -> bool { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day20.rs:62:36 [INFO] [stdout] | [INFO] [stdout] 62 | fn match_edges(mut first: TileRef, mut other: TileRef) -> bool { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `Ref<'_, Tile>` [INFO] [stdout] --> src/day20.rs:73:16 [INFO] [stdout] | [INFO] [stdout] 73 | if first.borrow().get_edge(&my_edge) == other.borrow().get_edge(&other_edge) { [INFO] [stdout] | ^^^^^^^^^^^^^^ ------------------ value moved due to this method call [INFO] [stdout] | | [INFO] [stdout] | move occurs because value has type `Tile`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: `Tile::get_edge` takes ownership of the receiver `self`, which moves value [INFO] [stdout] --> src/day20.rs:51:17 [INFO] [stdout] | [INFO] [stdout] 51 | fn get_edge(self, edge: &Edge) -> String{ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `Ref<'_, Tile>` [INFO] [stdout] --> src/day20.rs:73:53 [INFO] [stdout] | [INFO] [stdout] 73 | if first.borrow().get_edge(&my_edge) == other.borrow().get_edge(&other_edge) { [INFO] [stdout] | ^^^^^^^^^^^^^^ --------------------- value moved due to this method call [INFO] [stdout] | | [INFO] [stdout] | move occurs because value has type `Tile`, which does not implement the `Copy` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `other` [INFO] [stdout] --> src/day20.rs:75:17 [INFO] [stdout] | [INFO] [stdout] 62 | fn match_edges(mut first: TileRef, mut other: TileRef) -> bool { [INFO] [stdout] | --------- move occurs because `other` has type `Rc>`, which does not implement the `Copy` trait [INFO] [stdout] 63 | for my_edge in Edge::iter() { [INFO] [stdout] | --------------------------- inside of this loop [INFO] [stdout] ... [INFO] [stdout] 68 | for other_edge in Edge::iter() { [INFO] [stdout] | ------------------------------ inside of this loop [INFO] [stdout] ... [INFO] [stdout] 74 | first.borrow_mut().neighbors.insert(my_edge, Some(other)); [INFO] [stdout] | ----- value moved here [INFO] [stdout] 75 | other.borrow_mut().neighbors.insert(other_edge, Some(first)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: verify that your loop breaking logic is correct [INFO] [stdout] --> src/day20.rs:65:21 [INFO] [stdout] | [INFO] [stdout] 63 | for my_edge in Edge::iter() { [INFO] [stdout] | --------------------------- [INFO] [stdout] 64 | match first.borrow().neighbors.get(&my_edge).unwrap() { [INFO] [stdout] 65 | None => continue, [INFO] [stdout] | ^^^^^^^^ this `continue` advances the loop at line 63 [INFO] [stdout] ... [INFO] [stdout] 68 | for other_edge in Edge::iter() { [INFO] [stdout] | ------------------------------ [INFO] [stdout] 69 | match other.borrow().neighbors.get(&other_edge).unwrap() { [INFO] [stdout] 70 | None => continue, [INFO] [stdout] | ^^^^^^^^ this `continue` advances the loop at line 68 [INFO] [stdout] = note: borrow occurs due to deref coercion to `RefCell` [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 63 ~ let mut value = Some(other); [INFO] [stdout] 64 ~ for my_edge in Edge::iter() { [INFO] [stdout] 65 | match first.borrow().neighbors.get(&my_edge).unwrap() { [INFO] [stdout] ... [INFO] [stdout] 74 | if first.borrow().get_edge(&my_edge) == other.borrow().get_edge(&other_edge) { [INFO] [stdout] 75 ~ first.borrow_mut().neighbors.insert(my_edge, value); [INFO] [stdout] | [INFO] [stdout] help: clone the value to increment its reference count [INFO] [stdout] | [INFO] [stdout] 74 | first.borrow_mut().neighbors.insert(my_edge, Some(other.clone())); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 3 previous errors; 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0382, E0507. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0382`. [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/day16.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | k.advance_by(1); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 28 | let _ = k.advance_by(1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `aoc2020` (bin "day20" test) due to 4 previous errors; 2 warnings emitted [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `aoc2020` (bin "day20") due to 4 previous errors; 2 warnings emitted [INFO] running `Command { std: "docker" "inspect" "0e9e5a0be482408807023b63d09fffa6a9fe4fac3059f10c18bdadea61c6dbce", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0e9e5a0be482408807023b63d09fffa6a9fe4fac3059f10c18bdadea61c6dbce", kill_on_drop: false }` [INFO] [stdout] 0e9e5a0be482408807023b63d09fffa6a9fe4fac3059f10c18bdadea61c6dbce