[INFO] cloning repository https://github.com/ryota0624/rust_algorithm_picture_book_impl [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ryota0624/rust_algorithm_picture_book_impl" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fryota0624%2Frust_algorithm_picture_book_impl", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fryota0624%2Frust_algorithm_picture_book_impl'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d5d0eb89bf4a10233f0ed916d3d7a7dec6fd09dc [INFO] checking ryota0624/rust_algorithm_picture_book_impl against master#506512391b1a75ae450d36c9420978402a91abcc for pr-125384 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fryota0624%2Frust_algorithm_picture_book_impl" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/ryota0624/rust_algorithm_picture_book_impl on toolchain 506512391b1a75ae450d36c9420978402a91abcc [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+506512391b1a75ae450d36c9420978402a91abcc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/ryota0624/rust_algorithm_picture_book_impl [INFO] finished tweaking git repo https://github.com/ryota0624/rust_algorithm_picture_book_impl [INFO] tweaked toml for git repo https://github.com/ryota0624/rust_algorithm_picture_book_impl written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/ryota0624/rust_algorithm_picture_book_impl 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" "+506512391b1a75ae450d36c9420978402a91abcc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:beeedbb442662e57d416641ecc3200b38e573c25b057896194468d05594dd835" "/opt/rustwide/cargo-home/bin/cargo" "+506512391b1a75ae450d36c9420978402a91abcc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7fade72f2377d6ffccaea33f7fe5f44459d61c3c3ef9e4d99b7e995764346bfc [INFO] running `Command { std: "docker" "start" "-a" "7fade72f2377d6ffccaea33f7fe5f44459d61c3c3ef9e4d99b7e995764346bfc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7fade72f2377d6ffccaea33f7fe5f44459d61c3c3ef9e4d99b7e995764346bfc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7fade72f2377d6ffccaea33f7fe5f44459d61c3c3ef9e4d99b7e995764346bfc", kill_on_drop: false }` [INFO] [stdout] 7fade72f2377d6ffccaea33f7fe5f44459d61c3c3ef9e4d99b7e995764346bfc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:beeedbb442662e57d416641ecc3200b38e573c25b057896194468d05594dd835" "/opt/rustwide/cargo-home/bin/cargo" "+506512391b1a75ae450d36c9420978402a91abcc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 76c120254802d189a2a0b59993205c7d4deeead8ca37b6a8d0ea373994c3115a [INFO] running `Command { std: "docker" "start" "-a" "76c120254802d189a2a0b59993205c7d4deeead8ca37b6a8d0ea373994c3115a", kill_on_drop: false }` [INFO] [stderr] Checking rust_algorithm_picture_book_impl v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0507]: cannot move out of a shared reference [INFO] [stdout] --> src/data_structure/list.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | self.next.as_ref() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents [INFO] [stdout] | move occurs because value has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] 13 | .map(|n| n.tail_size() + 1) [INFO] [stdout] | -------------------------- value moved due to this method call [INFO] [stdout] | [INFO] [stdout] note: `Option::::map` takes ownership of the receiver `self`, which moves value [INFO] [stdout] --> /rustc/506512391b1a75ae450d36c9420978402a91abcc/library/core/src/option.rs:1067:22 [INFO] [stdout] help: you could `clone` the value and consume it, if the `ListItem: Clone` trait bound could be satisfied [INFO] [stdout] | [INFO] [stdout] 12 | > as Clone>::clone(&self.next.as_ref()) [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `n` [INFO] [stdout] --> src/data_structure/list.rs:26:31 [INFO] [stdout] | [INFO] [stdout] 26 | .and_then(|n| n.index_at(i - 1)) [INFO] [stdout] | -^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `n` is borrowed here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of a shared reference [INFO] [stdout] --> src/data_structure/list.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | self.next.as_ref() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents [INFO] [stdout] | move occurs because value has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] 26 | .and_then(|n| n.index_at(i - 1)) [INFO] [stdout] | ------------------------------- value moved due to this method call [INFO] [stdout] | [INFO] [stdout] note: `Option::::and_then` takes ownership of the receiver `self`, which moves value [INFO] [stdout] --> /rustc/506512391b1a75ae450d36c9420978402a91abcc/library/core/src/option.rs:1407:27 [INFO] [stdout] help: you could `clone` the value and consume it, if the `ListItem: Clone` trait bound could be satisfied [INFO] [stdout] | [INFO] [stdout] 25 | > as Clone>::clone(&self.next.as_ref()) [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.value` which is behind a shared reference [INFO] [stdout] --> src/data_structure/list.rs:33:47 [INFO] [stdout] | [INFO] [stdout] 33 | None => Box::new(ListItem{ value: self.value, next: Box::new(None) }) [INFO] [stdout] | ^^^^^^^^^^ move occurs because `self.value` has type `T`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: if `T` implemented `Clone`, you could clone the value [INFO] [stdout] --> src/data_structure/list.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | impl ListItem { [INFO] [stdout] | ^ consider constraining this type parameter with `Clone` [INFO] [stdout] ... [INFO] [stdout] 33 | None => Box::new(ListItem{ value: self.value, next: Box::new(None) }) [INFO] [stdout] | ---------- you could clone this value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of a shared reference [INFO] [stdout] --> src/data_structure/list.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | self.head.as_ref().map(|h| h.tail_size()).unwrap_or(0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ---------------------- value moved due to this method call [INFO] [stdout] | | [INFO] [stdout] | help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents [INFO] [stdout] | move occurs because value has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: `Option::::map` takes ownership of the receiver `self`, which moves value [INFO] [stdout] --> /rustc/506512391b1a75ae450d36c9420978402a91abcc/library/core/src/option.rs:1067:22 [INFO] [stdout] help: you could `clone` the value and consume it, if the `ListItem: Clone` trait bound could be satisfied [INFO] [stdout] | [INFO] [stdout] 41 | > as Clone>::clone(&self.head.as_ref()).map(|h| h.tail_size()).unwrap_or(0) [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `h` [INFO] [stdout] --> src/data_structure/list.rs:45:41 [INFO] [stdout] | [INFO] [stdout] 45 | self.head.as_ref().and_then(|h| h.index_at(i)) [INFO] [stdout] | -^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `h` is borrowed here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of a shared reference [INFO] [stdout] --> src/data_structure/list.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | self.head.as_ref().and_then(|h| h.index_at(i)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ --------------------------- value moved due to this method call [INFO] [stdout] | | [INFO] [stdout] | help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents [INFO] [stdout] | move occurs because value has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: `Option::::and_then` takes ownership of the receiver `self`, which moves value [INFO] [stdout] --> /rustc/506512391b1a75ae450d36c9420978402a91abcc/library/core/src/option.rs:1407:27 [INFO] [stdout] help: you could `clone` the value and consume it, if the `ListItem: Clone` trait bound could be satisfied [INFO] [stdout] | [INFO] [stdout] 45 | > as Clone>::clone(&self.head.as_ref()).and_then(|h| h.index_at(i)) [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 7 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0507, E0515. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0507`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rust_algorithm_picture_book_impl` (lib) due to 8 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0507]: cannot move out of a shared reference [INFO] [stdout] --> src/data_structure/list.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | self.next.as_ref() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents [INFO] [stdout] | move occurs because value has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] 13 | .map(|n| n.tail_size() + 1) [INFO] [stdout] | -------------------------- value moved due to this method call [INFO] [stdout] | [INFO] [stdout] note: `Option::::map` takes ownership of the receiver `self`, which moves value [INFO] [stdout] --> /rustc/506512391b1a75ae450d36c9420978402a91abcc/library/core/src/option.rs:1067:22 [INFO] [stdout] help: you could `clone` the value and consume it, if the `ListItem: Clone` trait bound could be satisfied [INFO] [stdout] | [INFO] [stdout] 12 | > as Clone>::clone(&self.next.as_ref()) [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `n` [INFO] [stdout] --> src/data_structure/list.rs:26:31 [INFO] [stdout] | [INFO] [stdout] 26 | .and_then(|n| n.index_at(i - 1)) [INFO] [stdout] | -^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `n` is borrowed here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of a shared reference [INFO] [stdout] --> src/data_structure/list.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | self.next.as_ref() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents [INFO] [stdout] | move occurs because value has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] 26 | .and_then(|n| n.index_at(i - 1)) [INFO] [stdout] | ------------------------------- value moved due to this method call [INFO] [stdout] | [INFO] [stdout] note: `Option::::and_then` takes ownership of the receiver `self`, which moves value [INFO] [stdout] --> /rustc/506512391b1a75ae450d36c9420978402a91abcc/library/core/src/option.rs:1407:27 [INFO] [stdout] help: you could `clone` the value and consume it, if the `ListItem: Clone` trait bound could be satisfied [INFO] [stdout] | [INFO] [stdout] 25 | > as Clone>::clone(&self.next.as_ref()) [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.value` which is behind a shared reference [INFO] [stdout] --> src/data_structure/list.rs:33:47 [INFO] [stdout] | [INFO] [stdout] 33 | None => Box::new(ListItem{ value: self.value, next: Box::new(None) }) [INFO] [stdout] | ^^^^^^^^^^ move occurs because `self.value` has type `T`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: if `T` implemented `Clone`, you could clone the value [INFO] [stdout] --> src/data_structure/list.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | impl ListItem { [INFO] [stdout] | ^ consider constraining this type parameter with `Clone` [INFO] [stdout] ... [INFO] [stdout] 33 | None => Box::new(ListItem{ value: self.value, next: Box::new(None) }) [INFO] [stdout] | ---------- you could clone this value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of a shared reference [INFO] [stdout] --> src/data_structure/list.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | self.head.as_ref().map(|h| h.tail_size()).unwrap_or(0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ---------------------- value moved due to this method call [INFO] [stdout] | | [INFO] [stdout] | help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents [INFO] [stdout] | move occurs because value has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: `Option::::map` takes ownership of the receiver `self`, which moves value [INFO] [stdout] --> /rustc/506512391b1a75ae450d36c9420978402a91abcc/library/core/src/option.rs:1067:22 [INFO] [stdout] help: you could `clone` the value and consume it, if the `ListItem: Clone` trait bound could be satisfied [INFO] [stdout] | [INFO] [stdout] 41 | > as Clone>::clone(&self.head.as_ref()).map(|h| h.tail_size()).unwrap_or(0) [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `h` [INFO] [stdout] --> src/data_structure/list.rs:45:41 [INFO] [stdout] | [INFO] [stdout] 45 | self.head.as_ref().and_then(|h| h.index_at(i)) [INFO] [stdout] | -^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `h` is borrowed here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of a shared reference [INFO] [stdout] --> src/data_structure/list.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | self.head.as_ref().and_then(|h| h.index_at(i)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ --------------------------- value moved due to this method call [INFO] [stdout] | | [INFO] [stdout] | help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents [INFO] [stdout] | move occurs because value has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: `Option::::and_then` takes ownership of the receiver `self`, which moves value [INFO] [stdout] --> /rustc/506512391b1a75ae450d36c9420978402a91abcc/library/core/src/option.rs:1407:27 [INFO] [stdout] help: you could `clone` the value and consume it, if the `ListItem: Clone` trait bound could be satisfied [INFO] [stdout] | [INFO] [stdout] 45 | > as Clone>::clone(&self.head.as_ref()).and_then(|h| h.index_at(i)) [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 7 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0507, E0515. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0507`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rust_algorithm_picture_book_impl` (lib test) due to 8 previous errors [INFO] running `Command { std: "docker" "inspect" "76c120254802d189a2a0b59993205c7d4deeead8ca37b6a8d0ea373994c3115a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "76c120254802d189a2a0b59993205c7d4deeead8ca37b6a8d0ea373994c3115a", kill_on_drop: false }` [INFO] [stdout] 76c120254802d189a2a0b59993205c7d4deeead8ca37b6a8d0ea373994c3115a