[INFO] updating cached repository mehcode/lintel-nes [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/mehcode/lintel-nes [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/mehcode/lintel-nes" "work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/mehcode/lintel-nes"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/mehcode/lintel-nes'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/mehcode/lintel-nes" "work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/mehcode/lintel-nes"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/mehcode/lintel-nes'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] fbc2385fdf8ebd3a6a31bbd8f7dd044b307f6dd3 [INFO] sha for GitHub repo mehcode/lintel-nes: fbc2385fdf8ebd3a6a31bbd8f7dd044b307f6dd3 [INFO] validating manifest of mehcode/lintel-nes on toolchain master#60960a260f7b5c695fd0717311d72ce62dd4eb43 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of mehcode/lintel-nes on toolchain try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing mehcode/lintel-nes [INFO] finished frobbing mehcode/lintel-nes [INFO] frobbed toml for mehcode/lintel-nes written to work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/mehcode/lintel-nes/Cargo.toml [INFO] started frobbing mehcode/lintel-nes [INFO] finished frobbing mehcode/lintel-nes [INFO] frobbed toml for mehcode/lintel-nes written to work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/mehcode/lintel-nes/Cargo.toml [INFO] crate mehcode/lintel-nes already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking mehcode/lintel-nes against master#60960a260f7b5c695fd0717311d72ce62dd4eb43 for pr-63376 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-63376/worker-4/master#60960a260f7b5c695fd0717311d72ce62dd4eb43:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/mehcode/lintel-nes:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 47f68353730672926dc9ce6f50af739f8da65d79467434759b7a2d546a26e6d6 [INFO] running `"docker" "start" "-a" "47f68353730672926dc9ce6f50af739f8da65d79467434759b7a2d546a26e6d6"` [INFO] [stderr] Checking strfmt v0.1.5 [INFO] [stderr] Checking sdl2 v0.27.2 [INFO] [stderr] Checking env_logger v0.3.5 [INFO] [stderr] Checking lintel_nes v0.0.0 (/opt/crater/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/controller.rs:48:53 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn from_cartridge(cartridge: &Cartridge) -> Box { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:77:19 [INFO] [stderr] | [INFO] [stderr] 77 | 0x0000...0x1FFF => ram[(address & 0x07FF) as usize], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:80:19 [INFO] [stderr] | [INFO] [stderr] 80 | 0x6000...0x7FFF => cartridge.prg_ram[(address - 0x6000) as usize], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:83:19 [INFO] [stderr] | [INFO] [stderr] 83 | 0x8000...0xBFFF => cartridge.prg_rom[(address - 0x8000) as usize], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:86:19 [INFO] [stderr] | [INFO] [stderr] 86 | 0xC000...0xFFFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:112:19 [INFO] [stderr] | [INFO] [stderr] 112 | 0x0000...0x1FFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:117:19 [INFO] [stderr] | [INFO] [stderr] 117 | 0x6000...0x7FFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:138:19 [INFO] [stderr] | [INFO] [stderr] 138 | 0x0000...0x1FFF => cartridge.chr[address as usize], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:142:19 [INFO] [stderr] | [INFO] [stderr] 142 | 0x2000...0x3EFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:146:30 [INFO] [stderr] | [INFO] [stderr] 146 | 0x000...0x3FF => ram[address], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:147:30 [INFO] [stderr] | [INFO] [stderr] 147 | 0x400...0x7FF => ram[address - 0x400], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:148:30 [INFO] [stderr] | [INFO] [stderr] 148 | 0x800...0xBFF => ram[address - 0x400], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:149:30 [INFO] [stderr] | [INFO] [stderr] 149 | 0xC00...0xFFF => ram[address - 0x800], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:155:30 [INFO] [stderr] | [INFO] [stderr] 155 | 0x000...0x3FF => ram[address], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:156:30 [INFO] [stderr] | [INFO] [stderr] 156 | 0x400...0x7FF => ram[address], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:157:30 [INFO] [stderr] | [INFO] [stderr] 157 | 0x800...0xBFF => ram[address - 0x800], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:158:30 [INFO] [stderr] | [INFO] [stderr] 158 | 0xC00...0xFFF => ram[address - 0x800], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:166:19 [INFO] [stderr] | [INFO] [stderr] 166 | 0x3F00...0x3F1F => palette[((address as usize) - 0x3F00) & 0x1F], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:185:19 [INFO] [stderr] | [INFO] [stderr] 185 | 0x0000...0x1FFF if cartridge.chr_mutable => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:191:19 [INFO] [stderr] | [INFO] [stderr] 191 | 0x2000...0x3EFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:195:30 [INFO] [stderr] | [INFO] [stderr] 195 | 0x000...0x3FF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:198:30 [INFO] [stderr] | [INFO] [stderr] 198 | 0x400...0x7FF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:201:30 [INFO] [stderr] | [INFO] [stderr] 201 | 0x800...0xBFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:204:30 [INFO] [stderr] | [INFO] [stderr] 204 | 0xC00...0xFFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:212:30 [INFO] [stderr] | [INFO] [stderr] 212 | 0x000...0x3FF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:215:30 [INFO] [stderr] | [INFO] [stderr] 215 | 0x400...0x7FF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:218:30 [INFO] [stderr] | [INFO] [stderr] 218 | 0x800...0xBFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:221:30 [INFO] [stderr] | [INFO] [stderr] 221 | 0xC00...0xFFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:231:19 [INFO] [stderr] | [INFO] [stderr] 231 | 0x3F00...0x3F1F => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/mmu.rs:44:28 [INFO] [stderr] | [INFO] [stderr] 44 | controller: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn controller::Controller` [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/bus.rs:57:19 [INFO] [stderr] | [INFO] [stderr] 57 | 0x2000...0x3FFF => self.ppu.read(&mut self.mmu, address), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/bus.rs:60:19 [INFO] [stderr] | [INFO] [stderr] 60 | 0x4000...0x4013 | 0x4015 => self.apu.read(address), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/bus.rs:96:19 [INFO] [stderr] | [INFO] [stderr] 96 | 0x2000...0x3FFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/bus.rs:114:19 [INFO] [stderr] | [INFO] [stderr] 114 | 0x4000...0x4013 | 0x4015 => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:96:28 [INFO] [stderr] | [INFO] [stderr] 96 | on_refresh: Option ()>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(Frame) -> ()` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:208:52 [INFO] [stderr] | [INFO] [stderr] 208 | pub fn set_on_refresh(&mut self, callback: Box ()>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(Frame) -> ()` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:252:43 [INFO] [stderr] | [INFO] [stderr] 252 | fn fetch_nametable(&mut self, c: &mut Controller) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:257:43 [INFO] [stderr] | [INFO] [stderr] 257 | fn fetch_attribute(&mut self, c: &mut Controller) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:277:41 [INFO] [stderr] | [INFO] [stderr] 277 | fn fetch_tile_lo(&mut self, c: &mut Controller) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:300:41 [INFO] [stderr] | [INFO] [stderr] 300 | fn fetch_tile_hi(&mut self, c: &mut Controller) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:365:40 [INFO] [stderr] | [INFO] [stderr] 365 | fn render_pixel(&mut self, c: &mut Controller) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:390:36 [INFO] [stderr] | [INFO] [stderr] 390 | pub fn step(&mut self, c: &mut Controller, nmi_occurred: &mut bool) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:510:36 [INFO] [stderr] | [INFO] [stderr] 510 | pub fn read(&mut self, _: &mut Controller, address: u16) -> u8 { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:542:37 [INFO] [stderr] | [INFO] [stderr] 542 | pub fn write(&mut self, c: &mut Controller, address: u16, value: u8) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/machine.rs:21:58 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn set_on_video_refresh(&mut self, callback: Box ()>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(ppu::Frame) -> ()` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/controller.rs:48:53 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn from_cartridge(cartridge: &Cartridge) -> Box { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:77:19 [INFO] [stderr] | [INFO] [stderr] 77 | 0x0000...0x1FFF => ram[(address & 0x07FF) as usize], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:80:19 [INFO] [stderr] | [INFO] [stderr] 80 | 0x6000...0x7FFF => cartridge.prg_ram[(address - 0x6000) as usize], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:83:19 [INFO] [stderr] | [INFO] [stderr] 83 | 0x8000...0xBFFF => cartridge.prg_rom[(address - 0x8000) as usize], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:86:19 [INFO] [stderr] | [INFO] [stderr] 86 | 0xC000...0xFFFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:112:19 [INFO] [stderr] | [INFO] [stderr] 112 | 0x0000...0x1FFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:117:19 [INFO] [stderr] | [INFO] [stderr] 117 | 0x6000...0x7FFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:138:19 [INFO] [stderr] | [INFO] [stderr] 138 | 0x0000...0x1FFF => cartridge.chr[address as usize], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:142:19 [INFO] [stderr] | [INFO] [stderr] 142 | 0x2000...0x3EFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:146:30 [INFO] [stderr] | [INFO] [stderr] 146 | 0x000...0x3FF => ram[address], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:147:30 [INFO] [stderr] | [INFO] [stderr] 147 | 0x400...0x7FF => ram[address - 0x400], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:148:30 [INFO] [stderr] | [INFO] [stderr] 148 | 0x800...0xBFF => ram[address - 0x400], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:149:30 [INFO] [stderr] | [INFO] [stderr] 149 | 0xC00...0xFFF => ram[address - 0x800], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:155:30 [INFO] [stderr] | [INFO] [stderr] 155 | 0x000...0x3FF => ram[address], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:156:30 [INFO] [stderr] | [INFO] [stderr] 156 | 0x400...0x7FF => ram[address], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:157:30 [INFO] [stderr] | [INFO] [stderr] 157 | 0x800...0xBFF => ram[address - 0x800], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:158:30 [INFO] [stderr] | [INFO] [stderr] 158 | 0xC00...0xFFF => ram[address - 0x800], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:166:19 [INFO] [stderr] | [INFO] [stderr] 166 | 0x3F00...0x3F1F => palette[((address as usize) - 0x3F00) & 0x1F], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:185:19 [INFO] [stderr] | [INFO] [stderr] 185 | 0x0000...0x1FFF if cartridge.chr_mutable => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:191:19 [INFO] [stderr] | [INFO] [stderr] 191 | 0x2000...0x3EFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:195:30 [INFO] [stderr] | [INFO] [stderr] 195 | 0x000...0x3FF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:198:30 [INFO] [stderr] | [INFO] [stderr] 198 | 0x400...0x7FF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:201:30 [INFO] [stderr] | [INFO] [stderr] 201 | 0x800...0xBFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:204:30 [INFO] [stderr] | [INFO] [stderr] 204 | 0xC00...0xFFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:212:30 [INFO] [stderr] | [INFO] [stderr] 212 | 0x000...0x3FF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:215:30 [INFO] [stderr] | [INFO] [stderr] 215 | 0x400...0x7FF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:218:30 [INFO] [stderr] | [INFO] [stderr] 218 | 0x800...0xBFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:221:30 [INFO] [stderr] | [INFO] [stderr] 221 | 0xC00...0xFFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/controller.rs:231:19 [INFO] [stderr] | [INFO] [stderr] 231 | 0x3F00...0x3F1F => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/mmu.rs:44:28 [INFO] [stderr] | [INFO] [stderr] 44 | controller: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn controller::Controller` [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/bus.rs:57:19 [INFO] [stderr] | [INFO] [stderr] 57 | 0x2000...0x3FFF => self.ppu.read(&mut self.mmu, address), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/bus.rs:60:19 [INFO] [stderr] | [INFO] [stderr] 60 | 0x4000...0x4013 | 0x4015 => self.apu.read(address), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/bus.rs:96:19 [INFO] [stderr] | [INFO] [stderr] 96 | 0x2000...0x3FFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/bus.rs:114:19 [INFO] [stderr] | [INFO] [stderr] 114 | 0x4000...0x4013 | 0x4015 => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:96:28 [INFO] [stderr] | [INFO] [stderr] 96 | on_refresh: Option ()>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(Frame) -> ()` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:208:52 [INFO] [stderr] | [INFO] [stderr] 208 | pub fn set_on_refresh(&mut self, callback: Box ()>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(Frame) -> ()` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:252:43 [INFO] [stderr] | [INFO] [stderr] 252 | fn fetch_nametable(&mut self, c: &mut Controller) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:257:43 [INFO] [stderr] | [INFO] [stderr] 257 | fn fetch_attribute(&mut self, c: &mut Controller) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:277:41 [INFO] [stderr] | [INFO] [stderr] 277 | fn fetch_tile_lo(&mut self, c: &mut Controller) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:300:41 [INFO] [stderr] | [INFO] [stderr] 300 | fn fetch_tile_hi(&mut self, c: &mut Controller) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:365:40 [INFO] [stderr] | [INFO] [stderr] 365 | fn render_pixel(&mut self, c: &mut Controller) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:390:36 [INFO] [stderr] | [INFO] [stderr] 390 | pub fn step(&mut self, c: &mut Controller, nmi_occurred: &mut bool) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:510:36 [INFO] [stderr] | [INFO] [stderr] 510 | pub fn read(&mut self, _: &mut Controller, address: u16) -> u8 { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ppu.rs:542:37 [INFO] [stderr] | [INFO] [stderr] 542 | pub fn write(&mut self, c: &mut Controller, address: u16, value: u8) { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Controller` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/machine.rs:21:58 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn set_on_video_refresh(&mut self, callback: Box ()>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(ppu::Frame) -> ()` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/ppu.rs:407:50 [INFO] [stderr] | [INFO] [stderr] 407 | if self.line <= 239 && (1..257).contains(self.dots) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | expected reference, found u16 [INFO] [stderr] | help: consider borrowing here: `&self.dots` [INFO] [stderr] | [INFO] [stderr] = note: expected type `&_` [INFO] [stderr] found type `u16` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/ppu.rs:416:38 [INFO] [stderr] | [INFO] [stderr] 416 | if (2..258).contains(self.dots) || (322..338).contains(self.dots) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | expected reference, found u16 [INFO] [stderr] | help: consider borrowing here: `&self.dots` [INFO] [stderr] | [INFO] [stderr] = note: expected type `&_` [INFO] [stderr] found type `u16` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/ppu.rs:416:72 [INFO] [stderr] | [INFO] [stderr] 416 | if (2..258).contains(self.dots) || (322..338).contains(self.dots) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | expected reference, found u16 [INFO] [stderr] | help: consider borrowing here: `&self.dots` [INFO] [stderr] | [INFO] [stderr] = note: expected type `&_` [INFO] [stderr] found type `u16` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/ppu.rs:421:38 [INFO] [stderr] | [INFO] [stderr] 421 | if (1..257).contains(self.dots) || (321..337).contains(self.dots) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | expected reference, found u16 [INFO] [stderr] | help: consider borrowing here: `&self.dots` [INFO] [stderr] | [INFO] [stderr] = note: expected type `&_` [INFO] [stderr] found type `u16` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/ppu.rs:421:72 [INFO] [stderr] | [INFO] [stderr] 421 | if (1..257).contains(self.dots) || (321..337).contains(self.dots) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | expected reference, found u16 [INFO] [stderr] | help: consider borrowing here: `&self.dots` [INFO] [stderr] | [INFO] [stderr] = note: expected type `&_` [INFO] [stderr] found type `u16` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/ppu.rs:457:56 [INFO] [stderr] | [INFO] [stderr] 457 | if self.line == 261 && (280..305).contains(self.dots) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | expected reference, found u16 [INFO] [stderr] | help: consider borrowing here: `&self.dots` [INFO] [stderr] | [INFO] [stderr] = note: expected type `&_` [INFO] [stderr] found type `u16` [INFO] [stderr] [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0308`. [INFO] [stderr] error: Could not compile `lintel_nes`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/ppu.rs:407:50 [INFO] [stderr] | [INFO] [stderr] 407 | if self.line <= 239 && (1..257).contains(self.dots) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | expected reference, found u16 [INFO] [stderr] | help: consider borrowing here: `&self.dots` [INFO] [stderr] | [INFO] [stderr] = note: expected type `&_` [INFO] [stderr] found type `u16` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/ppu.rs:416:38 [INFO] [stderr] | [INFO] [stderr] 416 | if (2..258).contains(self.dots) || (322..338).contains(self.dots) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | expected reference, found u16 [INFO] [stderr] | help: consider borrowing here: `&self.dots` [INFO] [stderr] | [INFO] [stderr] = note: expected type `&_` [INFO] [stderr] found type `u16` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/ppu.rs:416:72 [INFO] [stderr] | [INFO] [stderr] 416 | if (2..258).contains(self.dots) || (322..338).contains(self.dots) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | expected reference, found u16 [INFO] [stderr] | help: consider borrowing here: `&self.dots` [INFO] [stderr] | [INFO] [stderr] = note: expected type `&_` [INFO] [stderr] found type `u16` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/ppu.rs:421:38 [INFO] [stderr] | [INFO] [stderr] 421 | if (1..257).contains(self.dots) || (321..337).contains(self.dots) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | expected reference, found u16 [INFO] [stderr] | help: consider borrowing here: `&self.dots` [INFO] [stderr] | [INFO] [stderr] = note: expected type `&_` [INFO] [stderr] found type `u16` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/ppu.rs:421:72 [INFO] [stderr] | [INFO] [stderr] 421 | if (1..257).contains(self.dots) || (321..337).contains(self.dots) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | expected reference, found u16 [INFO] [stderr] | help: consider borrowing here: `&self.dots` [INFO] [stderr] | [INFO] [stderr] = note: expected type `&_` [INFO] [stderr] found type `u16` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/ppu.rs:457:56 [INFO] [stderr] | [INFO] [stderr] 457 | if self.line == 261 && (280..305).contains(self.dots) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | expected reference, found u16 [INFO] [stderr] | help: consider borrowing here: `&self.dots` [INFO] [stderr] | [INFO] [stderr] = note: expected type `&_` [INFO] [stderr] found type `u16` [INFO] [stderr] [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0308`. [INFO] [stderr] error: Could not compile `lintel_nes`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "47f68353730672926dc9ce6f50af739f8da65d79467434759b7a2d546a26e6d6"` [INFO] running `"docker" "rm" "-f" "47f68353730672926dc9ce6f50af739f8da65d79467434759b7a2d546a26e6d6"` [INFO] [stdout] 47f68353730672926dc9ce6f50af739f8da65d79467434759b7a2d546a26e6d6