[INFO] fetching crate dcpu16 0.4.0...
[INFO] checking dcpu16-0.4.0 against master#36b21637e93b038453924d3c66821089e71d8baa for pr-143164
[INFO] extracting crate dcpu16 0.4.0 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate dcpu16 0.4.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate dcpu16 0.4.0
[INFO] tweaked toml for crates.io crate dcpu16 0.4.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate dcpu16 0.4.0 on toolchain 36b21637e93b038453924d3c66821089e71d8baa
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 2 packages to latest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently
[INFO] [stderr] disables Cargo from automatically inferring other binary targets.
[INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following
[INFO] [stderr] files will be included as a binary target:
[INFO] [stderr] 
[INFO] [stderr] * src/bin/cli.rs
[INFO] [stderr] 
[INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be
[INFO] [stderr] ready to be compiled as a binary target today. You can future-proof yourself
[INFO] [stderr] and disable this warning by adding `autobins = false` to your [package]
[INFO] [stderr] section. You may also move the files to a location where Cargo would not
[INFO] [stderr] automatically infer them to be a target, such as in subfolders.
[INFO] [stderr] 
[INFO] [stderr] For more information on this warning you can consult
[INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330
[INFO] [stderr] warning: An explicit [[test]] section is specified in Cargo.toml which currently
[INFO] [stderr] disables Cargo from automatically inferring other test targets.
[INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following
[INFO] [stderr] files will be included as a test target:
[INFO] [stderr] 
[INFO] [stderr] * tests/test_assembler.rs
[INFO] [stderr] * tests/test_emulator.rs
[INFO] [stderr] 
[INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be
[INFO] [stderr] ready to be compiled as a test target today. You can future-proof yourself
[INFO] [stderr] and disable this warning by adding `autotests = false` to your [package]
[INFO] [stderr] section. You may also move the files to a location where Cargo would not
[INFO] [stderr] automatically infer them to be a target, such as in subfolders.
[INFO] [stderr] 
[INFO] [stderr] For more information on this warning you can consult
[INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c8307b0b5caf1b252ca1c6acef020a10fdf2279f3c03cb5d8aaee5f88510d2a1
[INFO] running `Command { std: "docker" "start" "-a" "c8307b0b5caf1b252ca1c6acef020a10fdf2279f3c03cb5d8aaee5f88510d2a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c8307b0b5caf1b252ca1c6acef020a10fdf2279f3c03cb5d8aaee5f88510d2a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c8307b0b5caf1b252ca1c6acef020a10fdf2279f3c03cb5d8aaee5f88510d2a1", kill_on_drop: false }`
[INFO] [stdout] c8307b0b5caf1b252ca1c6acef020a10fdf2279f3c03cb5d8aaee5f88510d2a1
[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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d20b607cb11cbbd87925166f051371ac7d05a29a1b8a6034c44364b6c24ff8f3
[INFO] running `Command { std: "docker" "start" "-a" "d20b607cb11cbbd87925166f051371ac7d05a29a1b8a6034c44364b6c24ff8f3", kill_on_drop: false }`
[INFO] [stderr] warning: An explicit [[bin]] section is specified in Cargo.toml which currently
[INFO] [stderr] disables Cargo from automatically inferring other binary targets.
[INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following
[INFO] [stderr] files will be included as a binary target:
[INFO] [stderr] 
[INFO] [stderr] * src/bin/cli.rs
[INFO] [stderr] 
[INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be
[INFO] [stderr] ready to be compiled as a binary target today. You can future-proof yourself
[INFO] [stderr] and disable this warning by adding `autobins = false` to your [package]
[INFO] [stderr] section. You may also move the files to a location where Cargo would not
[INFO] [stderr] automatically infer them to be a target, such as in subfolders.
[INFO] [stderr] 
[INFO] [stderr] For more information on this warning you can consult
[INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330
[INFO] [stderr] warning: An explicit [[test]] section is specified in Cargo.toml which currently
[INFO] [stderr] disables Cargo from automatically inferring other test targets.
[INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following
[INFO] [stderr] files will be included as a test target:
[INFO] [stderr] 
[INFO] [stderr] * tests/test_assembler.rs
[INFO] [stderr] * tests/test_emulator.rs
[INFO] [stderr] 
[INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be
[INFO] [stderr] ready to be compiled as a test target today. You can future-proof yourself
[INFO] [stderr] and disable this warning by adding `autotests = false` to your [package]
[INFO] [stderr] section. You may also move the files to a location where Cargo would not
[INFO] [stderr] automatically infer them to be a target, such as in subfolders.
[INFO] [stderr] 
[INFO] [stderr] For more information on this warning you can consult
[INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking unicode-width v0.2.1
[INFO] [stderr]     Checking getopts v0.2.23
[INFO] [stderr]     Checking dcpu16 v0.4.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/dcpu.rs:146:18
[INFO] [stdout]     |
[INFO] [stdout] 146 |             0x00 ... 0x07 => { self.reg[identifier] = value; },
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/dcpu.rs:147:18
[INFO] [stdout]     |
[INFO] [stdout] 147 |             0x08 ... 0x0f => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/dcpu.rs:152:18
[INFO] [stdout]     |
[INFO] [stdout] 152 |             0x10 ... 0x17 => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/dcpu.rs:185:18
[INFO] [stdout]     |
[INFO] [stdout] 185 |             0x00 ... 0x07  => { self.reg[identifier as usize] },
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/dcpu.rs:186:18
[INFO] [stdout]     |
[INFO] [stdout] 186 |             0x08 ... 0x0f => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/dcpu.rs:190:18
[INFO] [stdout]     |
[INFO] [stdout] 190 |             0x10 ... 0x17 => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/dcpu.rs:648:9
[INFO] [stdout]     |
[INFO] [stdout] 648 |         try!(file.read_to_end(&mut buffer));
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/assembler.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |         'A' ... 'Z' | 'a' ... 'z' | '_' | '0' ... '9' => true,
[INFO] [stdout]     |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/assembler.rs:262:27
[INFO] [stdout]     |
[INFO] [stdout] 262 |         'A' ... 'Z' | 'a' ... 'z' | '_' | '0' ... '9' => true,
[INFO] [stdout]     |                           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/assembler.rs:262:47
[INFO] [stdout]     |
[INFO] [stdout] 262 |         'A' ... 'Z' | 'a' ... 'z' | '_' | '0' ... '9' => true,
[INFO] [stdout]     |                                               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/assembler.rs:410:17
[INFO] [stdout]     |
[INFO] [stdout] 410 |             '0' ... '9' | '-' => {
[INFO] [stdout]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:673:17
[INFO] [stdout]     |
[INFO] [stdout] 673 |     let ttype = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:689:16
[INFO] [stdout]     |
[INFO] [stdout] 689 |             Ok(try!(process_value(value, !lvalue)))
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:695:24
[INFO] [stdout]     |
[INFO] [stdout] 695 |                     Ok(try!(process_value(*label, !lvalue)))
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:710:26
[INFO] [stdout]     |
[INFO] [stdout] 710 |             let ttype0 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/assembler.rs:775:9
[INFO] [stdout]      |
[INFO] [stdout] 775  | /         /**
[INFO] [stdout] 776  | |           * This whole business needs refactoring. Every case is handled by
[INFO] [stdout] 777  | |           * an explicit case, which is extremely verbose.
[INFO] [stdout] 778  | |           */
[INFO] [stdout]      | |____________^
[INFO] [stdout] 779  |
[INFO] [stdout] 780  | /         TokenType::LeftBracket => {
[INFO] [stdout] 781  | |             *cur += 1;
[INFO] [stdout] 782  | |             let ttype0 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout] 783  | |             match *ttype0 {
[INFO] [stdout] ...    |
[INFO] [stdout] 1044 | |         }
[INFO] [stdout]      | |_________- rustdoc does not generate documentation for match arms
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `/* */` for a plain comment
[INFO] [stdout]      = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:782:26
[INFO] [stdout]     |
[INFO] [stdout] 782 |             let ttype0 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:786:34
[INFO] [stdout]     |
[INFO] [stdout] 786 |                     let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:795:42
[INFO] [stdout]     |
[INFO] [stdout] 795 | ...                   let ttype2 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:799:50
[INFO] [stdout]     |
[INFO] [stdout] 799 | ...                   let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:818:50
[INFO] [stdout]     |
[INFO] [stdout] 818 | ...                   let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:865:34
[INFO] [stdout]     |
[INFO] [stdout] 865 |                     let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:874:42
[INFO] [stdout]     |
[INFO] [stdout] 874 | ...                   let ttype2 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:878:50
[INFO] [stdout]     |
[INFO] [stdout] 878 | ...                   let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/dcpu.rs:146:18
[INFO] [stdout]     |
[INFO] [stdout] 146 |             0x00 ... 0x07 => { self.reg[identifier] = value; },
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/dcpu.rs:147:18
[INFO] [stdout]     |
[INFO] [stdout] 147 |             0x08 ... 0x0f => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/dcpu.rs:152:18
[INFO] [stdout]     |
[INFO] [stdout] 152 |             0x10 ... 0x17 => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/dcpu.rs:185:18
[INFO] [stdout]     |
[INFO] [stdout] 185 |             0x00 ... 0x07  => { self.reg[identifier as usize] },
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/dcpu.rs:186:18
[INFO] [stdout]     |
[INFO] [stdout] 186 |             0x08 ... 0x0f => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/dcpu.rs:190:18
[INFO] [stdout]     |
[INFO] [stdout] 190 |             0x10 ... 0x17 => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/dcpu.rs:648:9
[INFO] [stdout]     |
[INFO] [stdout] 648 |         try!(file.read_to_end(&mut buffer));
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/assembler.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |         'A' ... 'Z' | 'a' ... 'z' | '_' | '0' ... '9' => true,
[INFO] [stdout]     |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/assembler.rs:262:27
[INFO] [stdout]     |
[INFO] [stdout] 262 |         'A' ... 'Z' | 'a' ... 'z' | '_' | '0' ... '9' => true,
[INFO] [stdout]     |                           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/assembler.rs:262:47
[INFO] [stdout]     |
[INFO] [stdout] 262 |         'A' ... 'Z' | 'a' ... 'z' | '_' | '0' ... '9' => true,
[INFO] [stdout]     |                                               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/assembler.rs:410:17
[INFO] [stdout]     |
[INFO] [stdout] 410 |             '0' ... '9' | '-' => {
[INFO] [stdout]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:673:17
[INFO] [stdout]     |
[INFO] [stdout] 673 |     let ttype = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:689:16
[INFO] [stdout]     |
[INFO] [stdout] 689 |             Ok(try!(process_value(value, !lvalue)))
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:695:24
[INFO] [stdout]     |
[INFO] [stdout] 695 |                     Ok(try!(process_value(*label, !lvalue)))
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:710:26
[INFO] [stdout]     |
[INFO] [stdout] 710 |             let ttype0 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:897:50
[INFO] [stdout]     |
[INFO] [stdout] 897 | ...                   let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:944:34
[INFO] [stdout]     |
[INFO] [stdout] 944 |                     let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:960:42
[INFO] [stdout]     |
[INFO] [stdout] 960 | ...                   let ttype2 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:964:50
[INFO] [stdout]     |
[INFO] [stdout] 964 | ...                   let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:992:50
[INFO] [stdout]     |
[INFO] [stdout] 992 | ...                   let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1073:17
[INFO] [stdout]      |
[INFO] [stdout] 1073 |     let ttype = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]      |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1109:17
[INFO] [stdout]      |
[INFO] [stdout] 1109 |     let ttype = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]      |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1115:13
[INFO] [stdout]      |
[INFO] [stdout] 1115 |             try!(check_comma(line_no, tokens, cur));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1119:13
[INFO] [stdout]      |
[INFO] [stdout] 1119 |             try!(check_end_of_line(line_no, tokens, cur));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1113:21
[INFO] [stdout]      |
[INFO] [stdout] 1113 |             let b = try!(parse_value(line_no, tokens, cur, cpu, true));
[INFO] [stdout]      |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1117:21
[INFO] [stdout]      |
[INFO] [stdout] 1117 |             let a = try!(parse_value(line_no, tokens, cur, cpu, false));
[INFO] [stdout]      |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1164:17
[INFO] [stdout]      |
[INFO] [stdout] 1164 |     let ttype = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]      |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1171:13
[INFO] [stdout]      |
[INFO] [stdout] 1171 |             try!(check_end_of_line(line_no, tokens, cur));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1169:21
[INFO] [stdout]      |
[INFO] [stdout] 1169 |             let a = try!(parse_value(line_no, tokens, cur, cpu, false));
[INFO] [stdout]      |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1213:13
[INFO] [stdout]      |
[INFO] [stdout] 1213 |             try!(check_comma(line_no, tokens, cur));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1217:21
[INFO] [stdout]      |
[INFO] [stdout] 1217 |         let ttype = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]      |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1268:5
[INFO] [stdout]      |
[INFO] [stdout] 1268 |     try!(check_comma(line_no, tokens, cur));
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1286:5
[INFO] [stdout]      |
[INFO] [stdout] 1286 |     try!(check_end_of_line(line_no, tokens, cur));
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1252:17
[INFO] [stdout]      |
[INFO] [stdout] 1252 |     let ttype = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]      |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1270:18
[INFO] [stdout]      |
[INFO] [stdout] 1270 |     let ttype2 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]      |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1301:11
[INFO] [stdout]      |
[INFO] [stdout] 1301 |     match try!(fetch_token_type(line_no, tokens, *cur)) {
[INFO] [stdout]      |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1303:13
[INFO] [stdout]      |
[INFO] [stdout] 1303 |             try!(parse_basic_opcode(line_no, tokens, cur, cpu));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1307:13
[INFO] [stdout]      |
[INFO] [stdout] 1307 |             try!(parse_special_opcode(line_no, tokens, cur, cpu));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1311:13
[INFO] [stdout]      |
[INFO] [stdout] 1311 |             try!(parse_data_opcode(line_no, tokens, cur, cpu));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1315:13
[INFO] [stdout]      |
[INFO] [stdout] 1315 |             try!(parse_data_fill_opcode(line_no, tokens, cur, cpu));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1320:19
[INFO] [stdout]      |
[INFO] [stdout] 1320 |             match try!(fetch_token_type(line_no, tokens, *cur)) {
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1329:24
[INFO] [stdout]      |
[INFO] [stdout] 1329 |                     Ok(try!(parse_line(line_no, tokens, cpu, cur)))
[INFO] [stdout]      |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1367:9
[INFO] [stdout]      |
[INFO] [stdout] 1367 |         try!(parse_line(line_no, &tokens, cpu, &mut cur));
[INFO] [stdout]      |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:114:14
[INFO] [stdout]     |
[INFO] [stdout] 114 |         0x00 ... 0x07  => { 
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:118:14
[INFO] [stdout]     |
[INFO] [stdout] 118 |         0x08 ... 0x0f => { 
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:123:14
[INFO] [stdout]     |
[INFO] [stdout] 123 |         0x10 ... 0x17 => {
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/devices/keyboard_generic.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |         a @ 0x61 ... 0x7a => a - 32,
[INFO] [stdout]    |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/devices/keyboard_generic.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 |         a @ 0x5b ... 0x5d => a + 32,
[INFO] [stdout]    |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/assembler.rs:775:9
[INFO] [stdout]      |
[INFO] [stdout] 775  | /         /**
[INFO] [stdout] 776  | |           * This whole business needs refactoring. Every case is handled by
[INFO] [stdout] 777  | |           * an explicit case, which is extremely verbose.
[INFO] [stdout] 778  | |           */
[INFO] [stdout]      | |____________^
[INFO] [stdout] 779  |
[INFO] [stdout] 780  | /         TokenType::LeftBracket => {
[INFO] [stdout] 781  | |             *cur += 1;
[INFO] [stdout] 782  | |             let ttype0 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout] 783  | |             match *ttype0 {
[INFO] [stdout] ...    |
[INFO] [stdout] 1044 | |         }
[INFO] [stdout]      | |_________- rustdoc does not generate documentation for match arms
[INFO] [stdout]      |
[INFO] [stdout]      = help: use `/* */` for a plain comment
[INFO] [stdout]      = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:782:26
[INFO] [stdout]     |
[INFO] [stdout] 782 |             let ttype0 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:786:34
[INFO] [stdout]     |
[INFO] [stdout] 786 |                     let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:795:42
[INFO] [stdout]     |
[INFO] [stdout] 795 | ...                   let ttype2 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:799:50
[INFO] [stdout]     |
[INFO] [stdout] 799 | ...                   let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:818:50
[INFO] [stdout]     |
[INFO] [stdout] 818 | ...                   let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:865:34
[INFO] [stdout]     |
[INFO] [stdout] 865 |                     let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:874:42
[INFO] [stdout]     |
[INFO] [stdout] 874 | ...                   let ttype2 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:878:50
[INFO] [stdout]     |
[INFO] [stdout] 878 | ...                   let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:897:50
[INFO] [stdout]     |
[INFO] [stdout] 897 | ...                   let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:944:34
[INFO] [stdout]     |
[INFO] [stdout] 944 |                     let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:960:42
[INFO] [stdout]     |
[INFO] [stdout] 960 | ...                   let ttype2 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:964:50
[INFO] [stdout]     |
[INFO] [stdout] 964 | ...                   let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/assembler.rs:992:50
[INFO] [stdout]     |
[INFO] [stdout] 992 | ...                   let ttype1 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1073:17
[INFO] [stdout]      |
[INFO] [stdout] 1073 |     let ttype = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]      |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1109:17
[INFO] [stdout]      |
[INFO] [stdout] 1109 |     let ttype = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]      |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1115:13
[INFO] [stdout]      |
[INFO] [stdout] 1115 |             try!(check_comma(line_no, tokens, cur));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1119:13
[INFO] [stdout]      |
[INFO] [stdout] 1119 |             try!(check_end_of_line(line_no, tokens, cur));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1113:21
[INFO] [stdout]      |
[INFO] [stdout] 1113 |             let b = try!(parse_value(line_no, tokens, cur, cpu, true));
[INFO] [stdout]      |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1117:21
[INFO] [stdout]      |
[INFO] [stdout] 1117 |             let a = try!(parse_value(line_no, tokens, cur, cpu, false));
[INFO] [stdout]      |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1164:17
[INFO] [stdout]      |
[INFO] [stdout] 1164 |     let ttype = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]      |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1171:13
[INFO] [stdout]      |
[INFO] [stdout] 1171 |             try!(check_end_of_line(line_no, tokens, cur));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1169:21
[INFO] [stdout]      |
[INFO] [stdout] 1169 |             let a = try!(parse_value(line_no, tokens, cur, cpu, false));
[INFO] [stdout]      |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1213:13
[INFO] [stdout]      |
[INFO] [stdout] 1213 |             try!(check_comma(line_no, tokens, cur));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1217:21
[INFO] [stdout]      |
[INFO] [stdout] 1217 |         let ttype = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]      |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1268:5
[INFO] [stdout]      |
[INFO] [stdout] 1268 |     try!(check_comma(line_no, tokens, cur));
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1286:5
[INFO] [stdout]      |
[INFO] [stdout] 1286 |     try!(check_end_of_line(line_no, tokens, cur));
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1252:17
[INFO] [stdout]      |
[INFO] [stdout] 1252 |     let ttype = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]      |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1270:18
[INFO] [stdout]      |
[INFO] [stdout] 1270 |     let ttype2 = try!(fetch_token_type(line_no, tokens, *cur));
[INFO] [stdout]      |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1301:11
[INFO] [stdout]      |
[INFO] [stdout] 1301 |     match try!(fetch_token_type(line_no, tokens, *cur)) {
[INFO] [stdout]      |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1303:13
[INFO] [stdout]      |
[INFO] [stdout] 1303 |             try!(parse_basic_opcode(line_no, tokens, cur, cpu));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1307:13
[INFO] [stdout]      |
[INFO] [stdout] 1307 |             try!(parse_special_opcode(line_no, tokens, cur, cpu));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1311:13
[INFO] [stdout]      |
[INFO] [stdout] 1311 |             try!(parse_data_opcode(line_no, tokens, cur, cpu));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1315:13
[INFO] [stdout]      |
[INFO] [stdout] 1315 |             try!(parse_data_fill_opcode(line_no, tokens, cur, cpu));
[INFO] [stdout]      |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1320:19
[INFO] [stdout]      |
[INFO] [stdout] 1320 |             match try!(fetch_token_type(line_no, tokens, *cur)) {
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1329:24
[INFO] [stdout]      |
[INFO] [stdout] 1329 |                     Ok(try!(parse_line(line_no, tokens, cpu, cur)))
[INFO] [stdout]      |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]     --> src/assembler.rs:1367:9
[INFO] [stdout]      |
[INFO] [stdout] 1367 |         try!(parse_line(line_no, &tokens, cpu, &mut cur));
[INFO] [stdout]      |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:114:14
[INFO] [stdout]     |
[INFO] [stdout] 114 |         0x00 ... 0x07  => { 
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:118:14
[INFO] [stdout]     |
[INFO] [stdout] 118 |         0x08 ... 0x0f => { 
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:123:14
[INFO] [stdout]     |
[INFO] [stdout] 123 |         0x10 ... 0x17 => {
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/devices/keyboard_generic.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |         a @ 0x61 ... 0x7a => a - 32,
[INFO] [stdout]    |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated trait `std::ascii::AsciiExt`: use inherent methods instead
[INFO] [stdout]  --> src/assembler.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ascii::AsciiExt;
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/dcpu.rs:56:37
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub devices: Rc<Vec<RefCell<Box<Device>>>>,
[INFO] [stdout]    |                                     ^^^^^^
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub devices: Rc<Vec<RefCell<Box<dyn Device>>>>,
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/devices/keyboard_generic.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 |         a @ 0x5b ... 0x5d => a + 32,
[INFO] [stdout]    |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/dcpu.rs:38:26
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn as_any(&self) -> &Any;
[INFO] [stdout]    |                          ^^^
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn as_any(&self) -> &dyn Any;
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/dcpu.rs:39:38
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn as_any_mut(&mut self) -> &mut Any;
[INFO] [stdout]    |                                      ^^^
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn as_any_mut(&mut self) -> &mut dyn Any;
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated trait `std::ascii::AsciiExt`: use inherent methods instead
[INFO] [stdout]  --> src/assembler.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ascii::AsciiExt;
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/devices/monitor_lem1802.rs:262:26
[INFO] [stdout]     |
[INFO] [stdout] 262 |     fn as_any(&self) -> &Any {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 262 |     fn as_any(&self) -> &dyn Any {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/devices/monitor_lem1802.rs:266:38
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn as_any_mut(&mut self) -> &mut Any {
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn as_any_mut(&mut self) -> &mut dyn Any {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/devices/clock_generic.rs:78:26
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn as_any(&self) -> &Any {
[INFO] [stdout]    |                          ^^^
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn as_any(&self) -> &dyn Any {
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/dcpu.rs:56:37
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub devices: Rc<Vec<RefCell<Box<Device>>>>,
[INFO] [stdout]    |                                     ^^^^^^
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub devices: Rc<Vec<RefCell<Box<dyn Device>>>>,
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/dcpu.rs:38:26
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn as_any(&self) -> &Any;
[INFO] [stdout]    |                          ^^^
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn as_any(&self) -> &dyn Any;
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/dcpu.rs:39:38
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn as_any_mut(&mut self) -> &mut Any;
[INFO] [stdout]    |                                      ^^^
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn as_any_mut(&mut self) -> &mut dyn Any;
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/devices/clock_generic.rs:82:38
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn as_any_mut(&mut self) -> &mut Any {
[INFO] [stdout]    |                                      ^^^
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn as_any_mut(&mut self) -> &mut dyn Any {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/devices/keyboard_generic.rs:129:26
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn as_any(&self) -> &Any {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn as_any(&self) -> &dyn Any {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/devices/keyboard_generic.rs:133:38
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn as_any_mut(&mut self) -> &mut Any {
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn as_any_mut(&mut self) -> &mut dyn Any {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/devices/floppy_m35fd.rs:298:26
[INFO] [stdout]     |
[INFO] [stdout] 298 |     fn as_any(&self) -> &Any {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 298 |     fn as_any(&self) -> &dyn Any {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/devices/floppy_m35fd.rs:302:38
[INFO] [stdout]     |
[INFO] [stdout] 302 |     fn as_any_mut(&mut self) -> &mut Any {
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 302 |     fn as_any_mut(&mut self) -> &mut dyn Any {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/dcpu.rs:251:46
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub fn add_device(&mut self, device: Box<Device>) -> () {
[INFO] [stdout]     |                                              ^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub fn add_device(&mut self, device: Box<dyn Device>) -> () {
[INFO] [stdout]     |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/devices/monitor_lem1802.rs:262:26
[INFO] [stdout]     |
[INFO] [stdout] 262 |     fn as_any(&self) -> &Any {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 262 |     fn as_any(&self) -> &dyn Any {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/devices/monitor_lem1802.rs:266:38
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn as_any_mut(&mut self) -> &mut Any {
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn as_any_mut(&mut self) -> &mut dyn Any {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/devices/clock_generic.rs:78:26
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn as_any(&self) -> &Any {
[INFO] [stdout]    |                          ^^^
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn as_any(&self) -> &dyn Any {
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/devices/clock_generic.rs:82:38
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn as_any_mut(&mut self) -> &mut Any {
[INFO] [stdout]    |                                      ^^^
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn as_any_mut(&mut self) -> &mut dyn Any {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/devices/keyboard_generic.rs:129:26
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn as_any(&self) -> &Any {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn as_any(&self) -> &dyn Any {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/devices/keyboard_generic.rs:133:38
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn as_any_mut(&mut self) -> &mut Any {
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn as_any_mut(&mut self) -> &mut dyn Any {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/devices/floppy_m35fd.rs:298:26
[INFO] [stdout]     |
[INFO] [stdout] 298 |     fn as_any(&self) -> &Any {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 298 |     fn as_any(&self) -> &dyn Any {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/devices/floppy_m35fd.rs:302:38
[INFO] [stdout]     |
[INFO] [stdout] 302 |     fn as_any_mut(&mut self) -> &mut Any {
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 302 |     fn as_any_mut(&mut self) -> &mut dyn Any {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/dcpu.rs:251:46
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub fn add_device(&mut self, device: Box<Device>) -> () {
[INFO] [stdout]     |                                              ^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub fn add_device(&mut self, device: Box<dyn Device>) -> () {
[INFO] [stdout]     |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ascii::AsciiExt`
[INFO] [stdout]  --> src/assembler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ascii::AsciiExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ascii::AsciiExt`
[INFO] [stdout]  --> src/assembler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ascii::AsciiExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/devices/monitor_lem1802.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |             let mut slice = &mut v[..];
[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/devices/monitor_lem1802.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |             let mut slice = &mut v[..];
[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: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/disassembler.rs:54:72
[INFO] [stdout]    |
[INFO] [stdout] 54 |             println!("Could not open file {}: {}", path.display(), why.description());
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/assembler.rs:58:72
[INFO] [stdout]    |
[INFO] [stdout] 58 |             println!("Could not open file {}: {}", path.display(), why.description());
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/assembler.rs:79:80
[INFO] [stdout]    |
[INFO] [stdout] 79 |                     println!("Could not open file {}: {}", path.display(), why.description());
[INFO] [stdout]    |                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/disassembler.rs:54:72
[INFO] [stdout]    |
[INFO] [stdout] 54 |             println!("Could not open file {}: {}", path.display(), why.description());
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/assembler.rs:58:72
[INFO] [stdout]    |
[INFO] [stdout] 58 |             println!("Could not open file {}: {}", path.display(), why.description());
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/assembler.rs:79:80
[INFO] [stdout]    |
[INFO] [stdout] 79 |                     println!("Could not open file {}: {}", path.display(), why.description());
[INFO] [stdout]    |                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.38s
[INFO] running `Command { std: "docker" "inspect" "d20b607cb11cbbd87925166f051371ac7d05a29a1b8a6034c44364b6c24ff8f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d20b607cb11cbbd87925166f051371ac7d05a29a1b8a6034c44364b6c24ff8f3", kill_on_drop: false }`
[INFO] [stdout] d20b607cb11cbbd87925166f051371ac7d05a29a1b8a6034c44364b6c24ff8f3
