[INFO] cloning repository https://github.com/walston/chess-keypad [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/walston/chess-keypad" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwalston%2Fchess-keypad", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwalston%2Fchess-keypad'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4cf1be0c178d7b5ab377899acd82850d54d63d97 [INFO] checking walston/chess-keypad against try#45d8b6e68beee1c9c1ce92ae258a7e02f8f13aa4 for pr-83744 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwalston%2Fchess-keypad" "/workspace/builds/worker-3/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/walston/chess-keypad on toolchain 45d8b6e68beee1c9c1ce92ae258a7e02f8f13aa4 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+45d8b6e68beee1c9c1ce92ae258a7e02f8f13aa4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/walston/chess-keypad [INFO] finished tweaking git repo https://github.com/walston/chess-keypad [INFO] tweaked toml for git repo https://github.com/walston/chess-keypad written to /workspace/builds/worker-3/source/Cargo.toml [INFO] crate git repo https://github.com/walston/chess-keypad already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+45d8b6e68beee1c9c1ce92ae258a7e02f8f13aa4" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+45d8b6e68beee1c9c1ce92ae258a7e02f8f13aa4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 39ef5a16586824be39ef0874380a542d866dede5731cc9d561bbec3955d857a1 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "39ef5a16586824be39ef0874380a542d866dede5731cc9d561bbec3955d857a1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "39ef5a16586824be39ef0874380a542d866dede5731cc9d561bbec3955d857a1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "39ef5a16586824be39ef0874380a542d866dede5731cc9d561bbec3955d857a1", kill_on_drop: false }` [INFO] [stdout] 39ef5a16586824be39ef0874380a542d866dede5731cc9d561bbec3955d857a1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+45d8b6e68beee1c9c1ce92ae258a7e02f8f13aa4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d2ee48e37e64f7c7de0d36f725b1692c5c99a4614e5d0c4df1675932e5c3752c [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "d2ee48e37e64f7c7de0d36f725b1692c5c99a4614e5d0c4df1675932e5c3752c", kill_on_drop: false }` [INFO] [stderr] Checking chess-keypad v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: enum is never used: `Key` [INFO] [stdout] --> src/lib.rs:1:6 [INFO] [stdout] | [INFO] [stdout] 1 | enum Key { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Piece` [INFO] [stdout] --> src/lib.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub type Piece = dyn Move; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `dyn pieces::Move` cannot be known at compilation time [INFO] [stdout] --> src/lib.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let pieces: Vec = vec![Rook{}, Knight{}, Bishop{}, Queen{}, King{}]; [INFO] [stdout] | ^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `dyn pieces::Move` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `pieces::Move` cannot be made into an object [INFO] [stdout] --> src/lib.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let pieces: Vec = vec![Rook{}, Knight{}, Bishop{}, Queen{}, King{}]; [INFO] [stdout] | ^^^^^^^^^^^^^ `pieces::Move` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | pub trait Move { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 27 | fn next(_start: &char) -> Option> { [INFO] [stdout] | ^^^^ ...because associated function `next` has no `self` parameter [INFO] [stdout] help: consider turning `next` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 27 | fn next(&self, _start: &char) -> Option> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: alternatively, consider constraining `next` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 27 | fn next(_start: &char) -> Option> where Self: Sized { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/lib.rs:150:42 [INFO] [stdout] | [INFO] [stdout] 150 | let pieces: Vec = vec![Rook{}, Knight{}, Bishop{}, Queen{}, King{}]; [INFO] [stdout] | ^^^^^^ expected trait object `dyn pieces::Move`, found struct `pieces::Rook` [INFO] [stdout] | [INFO] [stdout] = note: expected trait object `dyn pieces::Move` [INFO] [stdout] found struct `pieces::Rook` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `dyn pieces::Move` cannot be known at compilation time [INFO] [stdout] --> src/lib.rs:150:37 [INFO] [stdout] | [INFO] [stdout] 150 | let pieces: Vec = vec![Rook{}, Knight{}, Bishop{}, Queen{}, King{}]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `dyn pieces::Move` [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `dyn pieces::Move` cannot be known at compilation time [INFO] [stdout] --> src/lib.rs:150:37 [INFO] [stdout] | [INFO] [stdout] 150 | let pieces: Vec = vec![Rook{}, Knight{}, Bishop{}, Queen{}, King{}]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `dyn pieces::Move` [INFO] [stdout] = note: slice and array elements must have `Sized` type [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `pieces::Move` cannot be made into an object [INFO] [stdout] --> src/lib.rs:150:37 [INFO] [stdout] | [INFO] [stdout] 150 | let pieces: Vec = vec![Rook{}, Knight{}, Bishop{}, Queen{}, King{}]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `pieces::Move` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | pub trait Move { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 27 | fn next(_start: &char) -> Option> { [INFO] [stdout] | ^^^^ ...because associated function `next` has no `self` parameter [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider turning `next` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 27 | fn next(&self, _start: &char) -> Option> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: alternatively, consider constraining `next` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 27 | fn next(_start: &char) -> Option> where Self: Sized { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `dyn pieces::Move` cannot be known at compilation time [INFO] [stdout] --> src/lib.rs:150:37 [INFO] [stdout] | [INFO] [stdout] 150 | let pieces: Vec = vec![Rook{}, Knight{}, Bishop{}, Queen{}, King{}]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `dyn pieces::Move` [INFO] [stdout] = note: slice and array elements must have `Sized` type [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `dyn pieces::Move` cannot be known at compilation time [INFO] [stdout] --> src/lib.rs:150:37 [INFO] [stdout] | [INFO] [stdout] 150 | let pieces: Vec = vec![Rook{}, Knight{}, Bishop{}, Queen{}, King{}]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `dyn pieces::Move` [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `pieces::Move` cannot be made into an object [INFO] [stdout] --> src/lib.rs:150:37 [INFO] [stdout] | [INFO] [stdout] 150 | let pieces: Vec = vec![Rook{}, Knight{}, Bishop{}, Queen{}, King{}]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `pieces::Move` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | pub trait Move { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 27 | fn next(_start: &char) -> Option> { [INFO] [stdout] | ^^^^ ...because associated function `next` has no `self` parameter [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider turning `next` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 27 | fn next(&self, _start: &char) -> Option> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: alternatively, consider constraining `next` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 27 | fn next(_start: &char) -> Option> where Self: Sized { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `iter` found for struct `Vec` in the current scope [INFO] [stdout] --> src/lib.rs:153:29 [INFO] [stdout] | [INFO] [stdout] 153 | for piece in pieces.iter() { [INFO] [stdout] | ^^^^ method not found in `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 10 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0038, E0277, E0308, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0038`. [INFO] [stdout] [INFO] [stderr] error: could not compile `chess-keypad` [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `Command { std: "docker" "inspect" "d2ee48e37e64f7c7de0d36f725b1692c5c99a4614e5d0c4df1675932e5c3752c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d2ee48e37e64f7c7de0d36f725b1692c5c99a4614e5d0c4df1675932e5c3752c", kill_on_drop: false }` [INFO] [stdout] d2ee48e37e64f7c7de0d36f725b1692c5c99a4614e5d0c4df1675932e5c3752c