[INFO] cloning repository https://github.com/jquesnelle/ironnes [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jquesnelle/ironnes" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjquesnelle%2Fironnes", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjquesnelle%2Fironnes'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 37ef230fa4c239be9e437ccdfae1f7891295f87e [INFO] testing jquesnelle/ironnes against beta-2022-04-10 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjquesnelle%2Fironnes" "/workspace/builds/worker-18/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-18/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/jquesnelle/ironnes on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/jquesnelle/ironnes [INFO] finished tweaking git repo https://github.com/jquesnelle/ironnes [INFO] tweaked toml for git repo https://github.com/jquesnelle/ironnes written to /workspace/builds/worker-18/source/Cargo.toml [INFO] crate git repo https://github.com/jquesnelle/ironnes already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-18/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-18/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5d480376fbd9f09f3db696c569def60948e03b459324969b60c82d87bb12f698 [INFO] running `Command { std: "docker" "start" "-a" "5d480376fbd9f09f3db696c569def60948e03b459324969b60c82d87bb12f698", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5d480376fbd9f09f3db696c569def60948e03b459324969b60c82d87bb12f698", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5d480376fbd9f09f3db696c569def60948e03b459324969b60c82d87bb12f698", kill_on_drop: false }` [INFO] [stdout] 5d480376fbd9f09f3db696c569def60948e03b459324969b60c82d87bb12f698 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-18/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-18/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5cb47253cfb966b2395cb157dcd22c142674675f6c25053007b2b1c21f73dc8c [INFO] running `Command { std: "docker" "start" "-a" "5cb47253cfb966b2395cb157dcd22c142674675f6c25053007b2b1c21f73dc8c", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling ironnes v0.0.1 (/opt/rustwide/workdir) [INFO] [stdout] error: expected one of `!`, `(`, `+`, `::`, `;`, `<`, or `]`, found `,` [INFO] [stdout] --> src/rom/mod.rs:24:18 [INFO] [stdout] | [INFO] [stdout] 24 | pub header: [u8, ..16], [INFO] [stdout] | ^ expected one of 7 possible tokens [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: invalid suffix `i` for number literal [INFO] [stdout] --> src/rom/mod.rs:69:30 [INFO] [stdout] | [INFO] [stdout] 69 | rom.prg.grow(prg_size, &(0i as u8)); [INFO] [stdout] | ^^ invalid suffix `i` [INFO] [stdout] | [INFO] [stdout] = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: invalid suffix `i` for number literal [INFO] [stdout] --> src/rom/mod.rs:76:32 [INFO] [stdout] | [INFO] [stdout] 76 | rom.chr.grow(chr_size, &(0i as u8)); [INFO] [stdout] | ^^ invalid suffix `i` [INFO] [stdout] | [INFO] [stdout] = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: invalid suffix `i` for number literal [INFO] [stdout] --> src/rom/mod.rs:95:26 [INFO] [stdout] | [INFO] [stdout] 95 | name_buf.grow(128, &(0i as u8)); [INFO] [stdout] | ^^ invalid suffix `i` [INFO] [stdout] | [INFO] [stdout] = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `$emu:expr` is followed by `$arg:tt`, which is not allowed for `expr` fragments [INFO] [stdout] --> src/lib.rs:22:16 [INFO] [stdout] | [INFO] [stdout] 22 | ($emu:expr $($arg:tt)*) => ( [INFO] [stdout] | ^^^^^^^ not allowed after `expr` fragments [INFO] [stdout] | [INFO] [stdout] = note: allowed there are: `=>`, `,` or `;` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `$emu:expr` is followed by `$arg:tt`, which is not allowed for `expr` fragments [INFO] [stdout] --> src/lib.rs:29:16 [INFO] [stdout] | [INFO] [stdout] 29 | ($emu:expr $($arg:tt)*) => ( [INFO] [stdout] | ^^^^^^^ not allowed after `expr` fragments [INFO] [stdout] | [INFO] [stdout] = note: allowed there are: `=>`, `,` or `;` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0463]: can't find crate for `term` [INFO] [stdout] --> src/log/mod.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | extern crate term; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ can't find crate [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `std::io::File` [INFO] [stdout] --> src/rom/mod.rs:18:15 [INFO] [stdout] | [INFO] [stdout] 18 | use std::io::{File}; [INFO] [stdout] | ^^^^ no `File` in `io` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `log::Normal` [INFO] [stdout] --> src/emulator/mod.rs:18:16 [INFO] [stdout] | [INFO] [stdout] 18 | use log::{Log, Normal}; [INFO] [stdout] | ^^^^^^ no `Normal` in `log` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Error` in this scope [INFO] [stdout] --> src/log/mod.rs:33:23 [INFO] [stdout] | [INFO] [stdout] 33 | self.log(message, Error); [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 18 | use log::Level::Error; [INFO] [stdout] | [INFO] [stdout] 18 | use std::fmt::Error; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Normal` in this scope [INFO] [stdout] --> src/log/mod.rs:37:23 [INFO] [stdout] | [INFO] [stdout] 37 | self.log(message, Normal); [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 18 | use log::Level::Normal; [INFO] [stdout] | [INFO] [stdout] 18 | use std::num::FpCategory::Normal; [INFO] [stdout] | [INFO] [stdout] 18 | use std::path::Component::Normal; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected value, found derive macro `Debug` [INFO] [stdout] --> src/log/mod.rs:41:23 [INFO] [stdout] | [INFO] [stdout] 41 | self.log(message, Debug); [INFO] [stdout] | ^^^^^ not a value [INFO] [stdout] | [INFO] [stdout] help: consider importing this unit variant instead [INFO] [stdout] | [INFO] [stdout] 18 | use log::Level::Debug; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `int` in this scope [INFO] [stdout] --> src/log/mod.rs:45:17 [INFO] [stdout] | [INFO] [stdout] 45 | if level as int <= self.log_level as int { [INFO] [stdout] | ^^^ [INFO] [stdout] | | [INFO] [stdout] | not found in this scope [INFO] [stdout] | help: perhaps you intended to use this type: `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `int` in this scope [INFO] [stdout] --> src/log/mod.rs:45:42 [INFO] [stdout] | [INFO] [stdout] 45 | if level as int <= self.log_level as int { [INFO] [stdout] | ^^^ [INFO] [stdout] | | [INFO] [stdout] | not found in this scope [INFO] [stdout] | help: perhaps you intended to use this type: `i32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Path` in this scope [INFO] [stdout] --> src/rom/mod.rs:34:22 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn load(path: &Path, emulator: &Emulator) -> Result>, String> { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 18 | use std::path::Path; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `uint` in this scope [INFO] [stdout] --> src/rom/mod.rs:68:38 [INFO] [stdout] | [INFO] [stdout] 68 | let prg_size = (rom.header[4] as uint) * 1024 * 16; [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `uint` in this scope [INFO] [stdout] --> src/rom/mod.rs:75:40 [INFO] [stdout] | [INFO] [stdout] 75 | let chr_size = (rom.header[5] as uint) * 1024 * 8; [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Path` in this scope [INFO] [stdout] --> src/emulator/mod.rs:39:37 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn load_rom(&mut self, path: &Path) -> Result<(), String> { [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 18 | use std::path::Path; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0573]: expected type, found module `NROM` [INFO] [stdout] --> src/board/mod.rs:32:82 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn load_board(emulator: &Emulator, rom_ref: &Rc>) -> Result, String> { [INFO] [stdout] | ^^^^ help: a struct with a similar name exists: `Nrom` [INFO] [stdout] | [INFO] [stdout] ::: src/board/NROM.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Nrom { [INFO] [stdout] | --------------- similarly named struct `Nrom` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0554]: `#![feature]` may not be used on the beta release channel [INFO] [stdout] --> src/lib.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | #![feature(macro_rules)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the attribute [INFO] [stdout] | [INFO] [stdout] = help: the feature `macro_rules` has been stable since 1.0.0 and no longer requires an attribute to enable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stdout] --> src/board/mod.rs:39:10 [INFO] [stdout] | [INFO] [stdout] 39 | 0 => box Nrom::new(None::, rom_ref), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #49733 for more information [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `macro_rules` has been stable since 1.0.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | #![feature(macro_rules)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/emulator/mod.rs:27:21 [INFO] [stdout] | [INFO] [stdout] 27 | board: Option> [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 27 - board: Option> [INFO] [stdout] 27 + board: Option> [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Board` cannot be made into an object [INFO] [stdout] --> src/emulator/mod.rs:27:21 [INFO] [stdout] | [INFO] [stdout] 27 | board: Option> [INFO] [stdout] | ^^^^^ `Board` 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/board/mod.rs:28:6 [INFO] [stdout] | [INFO] [stdout] 26 | pub trait Board { [INFO] [stdout] | ----- this trait cannot be made into an object... [INFO] [stdout] 27 | //see my SO question: http://stackoverflow.com/questions/25563667/implementing-rust-traits-cause-struct-to-not-be-found [INFO] [stdout] 28 | fn new(_dummy: Option, rom: &Rc>) -> Self; [INFO] [stdout] | ^^^ ...because associated function `new` has no `self` parameter [INFO] [stdout] help: consider turning `new` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 28 | fn new(&self, _dummy: Option, rom: &Rc>) -> Self; [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `new` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 28 | fn new(_dummy: Option, rom: &Rc>) -> Self where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Self` cannot be known at compilation time [INFO] [stdout] --> src/board/mod.rs:28:18 [INFO] [stdout] | [INFO] [stdout] 28 | fn new(_dummy: Option, rom: &Rc>) -> Self; [INFO] [stdout] | ^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Option` [INFO] [stdout] help: consider further restricting `Self` [INFO] [stdout] | [INFO] [stdout] 28 | fn new(_dummy: Option, rom: &Rc>) -> Self where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 23 previous errors; 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0038, E0277, E0412, E0423, E0425, E0432, E0463, E0554, E0573... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0038`. [INFO] [stdout] [INFO] [stderr] error: could not compile `ironnes` due to 24 previous errors; 2 warnings emitted [INFO] running `Command { std: "docker" "inspect" "5cb47253cfb966b2395cb157dcd22c142674675f6c25053007b2b1c21f73dc8c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5cb47253cfb966b2395cb157dcd22c142674675f6c25053007b2b1c21f73dc8c", kill_on_drop: false }` [INFO] [stdout] 5cb47253cfb966b2395cb157dcd22c142674675f6c25053007b2b1c21f73dc8c