[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#ff1737bb00913444173658b4e0b274fd79aabf66 for pr-132712-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJovasa%2FAoC2020" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Jovasa/AoC2020 on toolchain ff1737bb00913444173658b4e0b274fd79aabf66 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ff1737bb00913444173658b4e0b274fd79aabf66" "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-4-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" "+ff1737bb00913444173658b4e0b274fd79aabf66" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded syn v1.0.54 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+ff1737bb00913444173658b4e0b274fd79aabf66" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0c8cac3d4d75302b3bc21e23d6faf79a6b847020eb87a0412302de6737b59738 [INFO] running `Command { std: "docker" "start" "-a" "0c8cac3d4d75302b3bc21e23d6faf79a6b847020eb87a0412302de6737b59738", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0c8cac3d4d75302b3bc21e23d6faf79a6b847020eb87a0412302de6737b59738", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0c8cac3d4d75302b3bc21e23d6faf79a6b847020eb87a0412302de6737b59738", kill_on_drop: false }` [INFO] [stdout] 0c8cac3d4d75302b3bc21e23d6faf79a6b847020eb87a0412302de6737b59738 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=allow" "-e" "RUSTDOCFLAGS=--cap-lints=allow" "-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+ff1737bb00913444173658b4e0b274fd79aabf66" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b4dbb9d58a3b72860de55081520fdf7c6861545131ee9680d89eb4d1402b2bee [INFO] running `Command { std: "docker" "start" "-a" "b4dbb9d58a3b72860de55081520fdf7c6861545131ee9680d89eb4d1402b2bee", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling memchr v2.3.4 [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] Checking thread_local v1.0.1 [INFO] [stderr] Checking itertools v0.9.0 [INFO] [stderr] Compiling heck v0.3.1 [INFO] [stderr] Checking aho-corasick v0.7.15 [INFO] [stderr] Compiling quote v1.0.7 [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] [stderr] error: could not compile `aoc2020` (bin "day17") due to 1 previous error [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [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[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[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] 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] Some errors have detailed explanations: E0382, E0507. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0382`. [INFO] [stdout] [INFO] [stderr] error: could not compile `aoc2020` (bin "day20") due to 3 previous errors [INFO] [stderr] error: could not compile `aoc2020` (bin "day20" test) due to 3 previous errors [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/day7.rs:59:28 [INFO] [stdout] | [INFO] [stdout] 59 | temp.add_upper(t); [INFO] [stdout] | --------- ^ expected `Bag<'_>`, found `&Bag<'_>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/day7.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | fn add_upper(&mut self, other: Bag<'_>){ [INFO] [stdout] | ^^^^^^^^^ -------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/day7.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 23 | fn add_upper(&mut self, other: Bag<'_>){ [INFO] [stdout] | --------- ----- has type `Bag<'1>` [INFO] [stdout] | | [INFO] [stdout] | has type `&mut Bag<'2>` [INFO] [stdout] 24 | self.can_contain_this.push(&other); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ argument requires that `'1` must outlive `'2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `other` does not live long enough [INFO] [stdout] --> src/day7.rs:24:36 [INFO] [stdout] | [INFO] [stdout] 23 | fn add_upper(&mut self, other: Bag<'_>){ [INFO] [stdout] | --------- ----- binding `other` declared here [INFO] [stdout] | | [INFO] [stdout] | has type `&mut Bag<'2>` [INFO] [stdout] 24 | self.can_contain_this.push(&other); [INFO] [stdout] | ---------------------------^^^^^^- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `other` is borrowed for `'2` [INFO] [stdout] 25 | } [INFO] [stdout] | - `other` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0308, E0597. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0308`. [INFO] [stdout] [INFO] [stderr] error: could not compile `aoc2020` (bin "day7" test) due to 3 previous errors [INFO] running `Command { std: "docker" "inspect" "b4dbb9d58a3b72860de55081520fdf7c6861545131ee9680d89eb4d1402b2bee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b4dbb9d58a3b72860de55081520fdf7c6861545131ee9680d89eb4d1402b2bee", kill_on_drop: false }` [INFO] [stdout] b4dbb9d58a3b72860de55081520fdf7c6861545131ee9680d89eb4d1402b2bee