[INFO] updating cached repository https://github.com/imondrag/toy_os
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] 08d34b5ca9700f2d708a7498175e7f1609391cff
[INFO] checking imondrag/toy_os against master#bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fimondrag%2Ftoy_os" "/workspace/builds/worker-14/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-14/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/imondrag/toy_os on toolchain bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking git repo https://github.com/imondrag/toy_os
[INFO] finished tweaking git repo https://github.com/imondrag/toy_os
[INFO] tweaked toml for git repo https://github.com/imondrag/toy_os written to /workspace/builds/worker-14/source/Cargo.toml
[INFO] crate git repo https://github.com/imondrag/toy_os already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] e103fba06fcc249c3fe7709bc4e31323d732cc05c9ee2cbd6408c9cd36ab1892
[INFO] running `"docker" "start" "-a" "e103fba06fcc249c3fe7709bc4e31323d732cc05c9ee2cbd6408c9cd36ab1892"`
[INFO] [stderr]    Compiling unicode-width v0.1.5
[INFO] [stderr]     Checking ux v0.1.3
[INFO] [stderr]     Checking bit_field v0.9.0
[INFO] [stderr]     Checking os_bootinfo v0.2.1
[INFO] [stderr]     Checking usize_conversions v0.2.0
[INFO] [stderr]     Checking bitflags v1.0.4
[INFO] [stderr]     Checking zero v0.1.2
[INFO] [stderr]     Checking cpuio v0.2.0
[INFO] [stderr]     Checking spin v0.4.10
[INFO] [stderr]     Checking font8x8 v0.2.4
[INFO] [stderr]     Checking nodrop v0.1.13
[INFO] [stderr]     Checking pc-keyboard v0.3.1
[INFO] [stderr]     Checking volatile v0.2.5
[INFO] [stderr]     Checking array-init v0.0.4
[INFO] [stderr]     Checking xmas-elf v0.6.2
[INFO] [stderr]     Checking pic8259_simple v0.1.1
[INFO] [stderr]    Compiling getopts v0.2.18
[INFO] [stderr]    Compiling libc v0.2.45
[INFO] [stderr]     Checking lazy_static v1.2.0
[INFO] [stderr]    Compiling pulldown-cmark v0.0.3
[INFO] [stderr]    Compiling rand v0.4.3
[INFO] [stderr]    Compiling tempdir v0.3.7
[INFO] [stderr]    Compiling skeptic v0.5.0
[INFO] [stderr]    Compiling fixedvec v0.2.3
[INFO] [stderr]     Checking x86_64 v0.2.14
[INFO] [stderr]     Checking x86_64 v0.3.4
[INFO] [stderr]     Checking bootloader v0.3.11
[INFO] [stderr]     Checking uart_16550 v0.1.0
[INFO] [stderr]     Checking toy_os v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused variable: `stack_frame`
[INFO] [stderr]   --> src/interrupts.rs:91:5
[INFO] [stderr]    |
[INFO] [stderr] 91 |     stack_frame: &mut ExceptionStackFrame,
[INFO] [stderr]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stack_frame`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `TIMER_INTERRUPT_ID`
[INFO] [stderr]   --> src/interrupts.rs:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | const TIMER_INTERRUPT_ID: u8 = PIC1_OFFSET;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `timer_interrupt_handler`
[INFO] [stderr]   --> src/interrupts.rs:90:27
[INFO] [stderr]    |
[INFO] [stderr] 90 | extern "x86-interrupt" fn timer_interrupt_handler(
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:76:5
[INFO] [stderr]    |
[INFO] [stderr] 76 |     writeln!(Writer, "\n\nEXCEPTION: BREAKPOINT");
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:77:5
[INFO] [stderr]    |
[INFO] [stderr] 77 |     writeln!(Writer, "{:#?}", stack_frame);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:84:5
[INFO] [stderr]    |
[INFO] [stderr] 84 |     writeln!(Writer, "\n\nEXCEPTION: DOUBLE FAULT");
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:85:5
[INFO] [stderr]    |
[INFO] [stderr] 85 |     writeln!(Writer, "{:#?}", stack_frame);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:86:5
[INFO] [stderr]    |
[INFO] [stderr] 86 |     writeln!(Writer, "ERROR_CODE: {:#x}", error_code);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:93:5
[INFO] [stderr]    |
[INFO] [stderr] 93 |     write!(Writer, ".");
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]    --> src/interrupts.rs:115:13
[INFO] [stderr]     |
[INFO] [stderr] 115 | /             match key {
[INFO] [stderr] 116 | |                 DecodedKey::Unicode(character) => write!(Writer, "{}", character),
[INFO] [stderr] 117 | |                 DecodedKey::RawKey(key) => write!(Writer, "{:?}", key),
[INFO] [stderr] 118 | |             };
[INFO] [stderr]     | |______________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: variable `port3D4` should have a snake case name
[INFO] [stderr]    --> src/vga_buffer/mod.rs:111:17
[INFO] [stderr]     |
[INFO] [stderr] 111 |         let mut port3D4 = Port::new(0x3D4);
[INFO] [stderr]     |                 ^^^^^^^ help: convert the identifier to snake case: `port3_d4`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `port3D5` should have a snake case name
[INFO] [stderr]    --> src/vga_buffer/mod.rs:112:17
[INFO] [stderr]     |
[INFO] [stderr] 112 |         let mut port3D5 = Port::new(0x3D5);
[INFO] [stderr]     |                 ^^^^^^^ help: convert the identifier to snake case: `port3_d5`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stack_frame`
[INFO] [stderr]   --> src/interrupts.rs:91:5
[INFO] [stderr]    |
[INFO] [stderr] 91 |     stack_frame: &mut ExceptionStackFrame,
[INFO] [stderr]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stack_frame`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `TIMER_INTERRUPT_ID`
[INFO] [stderr]   --> src/interrupts.rs:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | const TIMER_INTERRUPT_ID: u8 = PIC1_OFFSET;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `timer_interrupt_handler`
[INFO] [stderr]   --> src/interrupts.rs:90:27
[INFO] [stderr]    |
[INFO] [stderr] 90 | extern "x86-interrupt" fn timer_interrupt_handler(
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:76:5
[INFO] [stderr]    |
[INFO] [stderr] 76 |     writeln!(Writer, "\n\nEXCEPTION: BREAKPOINT");
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:77:5
[INFO] [stderr]    |
[INFO] [stderr] 77 |     writeln!(Writer, "{:#?}", stack_frame);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:84:5
[INFO] [stderr]    |
[INFO] [stderr] 84 |     writeln!(Writer, "\n\nEXCEPTION: DOUBLE FAULT");
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:85:5
[INFO] [stderr]    |
[INFO] [stderr] 85 |     writeln!(Writer, "{:#?}", stack_frame);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:86:5
[INFO] [stderr]    |
[INFO] [stderr] 86 |     writeln!(Writer, "ERROR_CODE: {:#x}", error_code);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:93:5
[INFO] [stderr]    |
[INFO] [stderr] 93 |     write!(Writer, ".");
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interrupts.rs:115:13
[INFO] [stderr]     |
[INFO] [stderr] 115 | /             match key {
[INFO] [stderr] 116 | |                 DecodedKey::Unicode(character) => write!(Writer, "{}", character),
[INFO] [stderr] 117 | |                 DecodedKey::RawKey(key) => write!(Writer, "{:?}", key),
[INFO] [stderr] 118 | |             };
[INFO] [stderr]     | |______________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: variable `port3D4` should have a snake case name
[INFO] [stderr]    --> src/vga_buffer/mod.rs:111:17
[INFO] [stderr]     |
[INFO] [stderr] 111 |         let mut port3D4 = Port::new(0x3D4);
[INFO] [stderr]     |                 ^^^^^^^ help: convert the identifier to snake case: `port3_d4`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `port3D5` should have a snake case name
[INFO] [stderr]    --> src/vga_buffer/mod.rs:112:17
[INFO] [stderr]     |
[INFO] [stderr] 112 |         let mut port3D5 = Port::new(0x3D5);
[INFO] [stderr]     |                 ^^^^^^^ help: convert the identifier to snake case: `port3_d5`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stack_frame`
[INFO] [stderr]   --> src/interrupts.rs:91:5
[INFO] [stderr]    |
[INFO] [stderr] 91 |     stack_frame: &mut ExceptionStackFrame,
[INFO] [stderr]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stack_frame`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `TIMER_INTERRUPT_ID`
[INFO] [stderr]   --> src/interrupts.rs:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | const TIMER_INTERRUPT_ID: u8 = PIC1_OFFSET;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `timer_interrupt_handler`
[INFO] [stderr]   --> src/interrupts.rs:90:27
[INFO] [stderr]    |
[INFO] [stderr] 90 | extern "x86-interrupt" fn timer_interrupt_handler(
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:76:5
[INFO] [stderr]    |
[INFO] [stderr] 76 |     writeln!(Writer, "\n\nEXCEPTION: BREAKPOINT");
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:77:5
[INFO] [stderr]    |
[INFO] [stderr] 77 |     writeln!(Writer, "{:#?}", stack_frame);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:84:5
[INFO] [stderr]    |
[INFO] [stderr] 84 |     writeln!(Writer, "\n\nEXCEPTION: DOUBLE FAULT");
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:85:5
[INFO] [stderr]    |
[INFO] [stderr] 85 |     writeln!(Writer, "{:#?}", stack_frame);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:86:5
[INFO] [stderr]    |
[INFO] [stderr] 86 |     writeln!(Writer, "ERROR_CODE: {:#x}", error_code);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]   --> src/interrupts.rs:93:5
[INFO] [stderr]    |
[INFO] [stderr] 93 |     write!(Writer, ".");
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `core::result::Result` that must be used
[INFO] [stderr]    --> src/interrupts.rs:115:13
[INFO] [stderr]     |
[INFO] [stderr] 115 | /             match key {
[INFO] [stderr] 116 | |                 DecodedKey::Unicode(character) => write!(Writer, "{}", character),
[INFO] [stderr] 117 | |                 DecodedKey::RawKey(key) => write!(Writer, "{:?}", key),
[INFO] [stderr] 118 | |             };
[INFO] [stderr]     | |______________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: variable `port3D4` should have a snake case name
[INFO] [stderr]    --> src/vga_buffer/mod.rs:111:17
[INFO] [stderr]     |
[INFO] [stderr] 111 |         let mut port3D4 = Port::new(0x3D4);
[INFO] [stderr]     |                 ^^^^^^^ help: convert the identifier to snake case: `port3_d4`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `port3D5` should have a snake case name
[INFO] [stderr]    --> src/vga_buffer/mod.rs:112:17
[INFO] [stderr]     |
[INFO] [stderr] 112 |         let mut port3D5 = Port::new(0x3D5);
[INFO] [stderr]     |                 ^^^^^^^ help: convert the identifier to snake case: `port3_d5`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `x86_64::registers::model_specific::Efer: core::fmt::LowerHex` is not satisfied
[INFO] [stderr]   --> src/main.rs:30:50
[INFO] [stderr]    |
[INFO] [stderr] 30 |     writeln!(Writer, "These are my flags: {:x}", msr);
[INFO] [stderr]    |                                                  ^^^ the trait `core::fmt::LowerHex` is not implemented for `x86_64::registers::model_specific::Efer`
[INFO] [stderr]    |
[INFO] [stderr]    = note: required by `core::fmt::LowerHex::fmt`
[INFO] [stderr]    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to previous error
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0277`.
[INFO] [stderr] error: could not compile `toy_os`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error[E0277]: the trait bound `x86_64::registers::model_specific::Efer: core::fmt::LowerHex` is not satisfied
[INFO] [stderr]   --> src/main.rs:30:50
[INFO] [stderr]    |
[INFO] [stderr] 30 |     writeln!(Writer, "These are my flags: {:x}", msr);
[INFO] [stderr]    |                                                  ^^^ the trait `core::fmt::LowerHex` is not implemented for `x86_64::registers::model_specific::Efer`
[INFO] [stderr]    |
[INFO] [stderr]    = note: required by `core::fmt::LowerHex::fmt`
[INFO] [stderr]    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to previous error
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0277`.
[INFO] [stderr] error: could not compile `toy_os`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "e103fba06fcc249c3fe7709bc4e31323d732cc05c9ee2cbd6408c9cd36ab1892"`
[INFO] running `"docker" "rm" "-f" "e103fba06fcc249c3fe7709bc4e31323d732cc05c9ee2cbd6408c9cd36ab1892"`
[INFO] [stdout] e103fba06fcc249c3fe7709bc4e31323d732cc05c9ee2cbd6408c9cd36ab1892
