Repository: rust
Issue: ICE + other errors when trying to run `cargo test` on Arduino project, involving `vcell`
Labels: I-ICE,T-compiler,C-bug,O-AVR

<!--
Thank you for finding an Internal Compiler Error! 🧊  If possible, try to provide
a minimal verifiable example. You can read "Rust Bug Minimization Patterns" for
how to create smaller examples.

http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns/

-->

Weirdly enough, `cargo build` emits warnings, but completes successfully. This ICE only seems to occur with `cargo test`!

### Code

[Link to minimized repo](https://github.com/linclelinkpart5/ice-repro)
[Permalink to personal repo, in case more full context is needed](https://github.com/linclelinkpart5/macetech-led-shades/tree/97ea80b87c66838c942a344f16d13549791881ba)


### Meta
<!--
If you're using the stable version of the compiler, you should also check if the
bug also exists in the beta or nightly versions.
-->

`rustc --version --verbose`:
```
rustc 1.67.0-nightly (c1a859b25 2022-11-10)
binary: rustc
commit-hash: c1a859b25a95999ba276075bbd8e284ea675b41a
commit-date: 2022-11-10
host: x86_64-unknown-linux-gnu
release: 1.67.0-nightly
LLVM version: 15.0.4
```

### Error output

<details><summary><strong>Output & Backtrace</strong></summary>
<p>

```
ice-repro on  main is 📦 v0.1.0 via 🦀 v1.67.0-nightly 
❯ cargo test
   Compiling nb v1.0.0
   Compiling void v1.0.2
   Compiling cfg-if v0.1.10
   Compiling ufmt-write v0.1.0
   Compiling vcell v0.1.3
   Compiling cfg-if v1.0.0
   Compiling panic-halt v0.2.0
   Compiling bare-metal v0.2.5
error[E0152]: duplicate lang item in crate `core` (which `rustc_std_workspace_core` depends on): `sized`.
  |
  = note: the lang item is first defined in crate `core` (which `vcell` depends on)
  = note: first definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-3cf297aae6df8ec5.rmeta
  = note: second definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-7aa04c1e2a6fa0ce.rmeta

error[E0152]: duplicate lang item in crate `core` (which `rustc_std_workspace_core` depends on): `sized`.
  |
  = note: the lang item is first defined in crate `core` (which `ufmt_write` depends on)
  = note: first definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-3cf297aae6df8ec5.rmeta
  = note: second definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-7aa04c1e2a6fa0ce.rmeta

thread '<unnamed>' panicked at 'failed to find message in primary or fallback fluent bundles', compiler/rustc_errors/src/translation.rs:78:9
stack backtrace:
error[E0277]: the size for values of type `()` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/ufmt-write-0.1.0/src/lib.rs:27:41
    |
27  |     fn write_str(&mut self, s: &str) -> Result<(), Self::Error>;
    |                                         ^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `()`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:17
    |
504 | pub enum Result<T, E> {
    |                 ^ required by this bound in `Result`

   0:     0x7ff06e3d7520 - std::backtrace_rs::backtrace::libunwind::trace::h1c0259b0e54a0ec7
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7ff06e3d7520 - std::backtrace_rs::backtrace::trace_unsynchronized::hef156fa43f257fff
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7ff06e3d7520 - std::sys_common::backtrace::_print_fmt::h14c30be4df8a453b
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/sys_common/backtrace.rs:65:5
error[E0152]: duplicate lang item in crate `core` (which `rustc_std_workspace_core` depends on): `sized`.
  |
  = note: the lang item is first defined in crate `core` (which `nb` depends on)
  = note: first definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-3cf297aae6df8ec5.rmeta
  = note: second definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-7aa04c1e2a6fa0ce.rmeta

   3:     0x7ff06e3d7520 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6bc9ef49ac207d73
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/sys_common/backtrace.rs:44:22
error[E0277]: the size for values of type `<Self as uWrite>::Error` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/ufmt-write-0.1.0/src/lib.rs:27:41
    |
27  |     fn write_str(&mut self, s: &str) -> Result<(), Self::Error>;
    |                                         ^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `<Self as uWrite>::Error`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:20
    |
504 | pub enum Result<T, E> {
    |                    ^ required by this bound in `Result`
help: consider further restricting the associated type
    |
27  |     fn write_str(&mut self, s: &str) -> Result<(), Self::Error> where <Self as uWrite>::Error: Sized;
    |                                                                 ++++++++++++++++++++++++++++++++++++

error[E0277]: the size for values of type `()` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/ufmt-write-0.1.0/src/lib.rs:34:42
    |
34  |     fn write_char(&mut self, c: char) -> Result<(), Self::Error> {
    |                                          ^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `()`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:17
    |
504 | pub enum Result<T, E> {
    |                 ^ required by this bound in `Result`

error[E0277]: the size for values of type `<Self as uWrite>::Error` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/ufmt-write-0.1.0/src/lib.rs:34:42
    |
34  |     fn write_char(&mut self, c: char) -> Result<(), Self::Error> {
    |                                          ^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `<Self as uWrite>::Error`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:20
    |
504 | pub enum Result<T, E> {
    |                    ^ required by this bound in `Result`
help: consider further restricting the associated type
    |
34  |     fn write_char(&mut self, c: char) -> Result<(), Self::Error> where <Self as uWrite>::Error: Sized {
    |                                                                  ++++++++++++++++++++++++++++++++++++

   4:     0x7ff06e43963e - core::fmt::write::h670e2d8b480677bf
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/core/src/fmt/mod.rs:1209:17
   5:     0x7ff06e3c7795 - std::io::Write::write_fmt::h96cca416c9a25a8f
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/io/mod.rs:1682:15
   6:     0x7ff06e3d72e5 - std::sys_common::backtrace::_print::h209eac292799b1d3
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7ff06e3d72e5 - std::sys_common::backtrace::print::h02ded1b579fe176b
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7ff06e3da0bf - std::panicking::default_hook::{{closure}}::h8511971ca7cce5b1
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/panicking.rs:267:22
   9:     0x7ff06e3d9dfa - std::panicking::default_hook::h8bc8dfd96a84f923
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/panicking.rs:286:9
  10:     0x7ff06e3da8cc - std::panicking::rust_panic_with_hook::h9f2bfce9b4c1819d
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/panicking.rs:688:13
  11:     0x7ff06e3da667 - std::panicking::begin_panic_handler::{{closure}}::h167b5f05f9579bc1
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/panicking.rs:579:13
  12:     0x7ff06e3d79cc - std::sys_common::backtrace::__rust_end_short_backtrace::h99451dfb597ab6ac
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/sys_common/backtrace.rs:137:18
  13:     0x7ff06e3da382 - rust_begin_unwind
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/panicking.rs:575:5
  14:     0x7ff06e436023 - core::panicking::panic_fmt::hf9d641a075644e68
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/core/src/panicking.rs:65:14
  15:     0x7ff06e436171 - core::panicking::panic_display::h4d285fa2a7b26f2a
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/core/src/panicking.rs:139:5
  16:     0x7ff06e43611b - core::panicking::panic_str::h79efa26adb712718
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/core/src/panicking.rs:123:5
  17:     0x7ff06e435d96 - core::option::expect_failed::h8f4b55925d9edc3f
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/core/src/option.rs:1879:5
Some errors have detailed explanations: E0152, E0277.
For more information about an error, try `rustc --explain E0152`.
error[E0152]: duplicate lang item in crate `core` (which `rustc_std_workspace_core` depends on): `sized`.
  |
  = note: the lang item is first defined in crate `core` (which `bare_metal` depends on)
  = note: first definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-3cf297aae6df8ec5.rmeta
  = note: second definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-7aa04c1e2a6fa0ce.rmeta

error: could not compile `ufmt-write` due to 5 previous errors
warning: build failed, waiting for other jobs to finish...
error[E0152]: duplicate lang item in crate `core` (which `rustc_std_workspace_core` depends on): `sized`.
  |
  = note: the lang item is first defined in crate `core` (which `void` depends on)
  = note: first definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-3cf297aae6df8ec5.rmeta
  = note: second definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-7aa04c1e2a6fa0ce.rmeta

error[E0152]: duplicate lang item in crate `core` (which `rustc_std_workspace_core` depends on): `sized`.
  |
  = note: the lang item is first defined in crate `core` (which `panic_halt` depends on)
  = note: first definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-3cf297aae6df8ec5.rmeta
  = note: second definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-7aa04c1e2a6fa0ce.rmeta

error[E0152]: duplicate lang item in crate `core` (which `rustc_std_workspace_core` depends on): `sized`.
  |
  = note: the lang item is first defined in crate `core` (which `cfg_if` depends on)
  = note: first definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-3cf297aae6df8ec5.rmeta
  = note: second definition in `core` loaded from /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-7aa04c1e2a6fa0ce.rmeta

error[E0277]: the size for values of type `Error<E>` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/nb-1.0.0/src/lib.rs:198:10
    |
198 | #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
    |          ^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `Error<E>`
note: required by a bound in `Clone`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/clone.rs:110:18
    |
110 | pub trait Clone: Sized {
    |                  ^^^^^ required by this bound in `Clone`
    = note: this error originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info)

error: argument should be `&PanicInfo`
  --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/panic-halt-0.2.0/src/lib.rs:31:17
   |
31 | fn panic(_info: &PanicInfo) -> ! {
   |                 ^^^^^^^^^^

error[E0277]: the size for values of type `Error<E>` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/nb-1.0.0/src/lib.rs:198:17
    |
198 | #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
    |                 ^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `Error<E>`
note: required by a bound in `core::marker::Copy`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/marker.rs:389:17
    |
389 | pub trait Copy: Clone {
    |                 ^^^^^ required by this bound in `core::marker::Copy`
    = note: this error originates in the derive macro `Copy` (in Nightly builds, run with -Z macro-backtrace for more info)

For more information about this error, try `rustc --explain E0152`.
error[E0277]: the size for values of type `E` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/nb-1.0.0/src/lib.rs:232:9
    |
232 | impl<E> From<E> for Error<E> {
    |         ^^^^^^^ doesn't have a size known at compile-time
    |
note: required by a bound in `From`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:543:16
    |
543 | pub trait From<T>: Sized {
    |                ^ required by this bound in `From`
help: consider restricting type parameter `E`
    |
232 | impl<E: core::marker::Sized> From<E> for Error<E> {
    |       +++++++++++++++++++++

error[E0277]: the size for values of type `Error<E>` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/nb-1.0.0/src/lib.rs:232:9
    |
232 | impl<E> From<E> for Error<E> {
    |         ^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `Error<E>`
note: required by a bound in `From`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:543:20
    |
543 | pub trait From<T>: Sized {
    |                    ^^^^^ required by this bound in `From`

error[E0277]: the size for values of type `core::cmp::Ordering` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/nb-1.0.0/src/lib.rs:198:38
    |
198 | #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
    |                                      ^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `core::cmp::Ordering`
note: required by a bound in `Option`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:518:17
    |
518 | pub enum Option<T> {
    |                 ^ required by this bound in `Option`
    = note: this error originates in the derive macro `PartialOrd` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the size for values of type `()` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/bare-metal-0.2.5/src/lib.rs:10:10
    |
10  | #[derive(Debug)]
    |          ^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `()`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:17
    |
504 | pub enum Result<T, E> {
    |                 ^ required by this bound in `Result`
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the size for values of type `core::fmt::Error` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/bare-metal-0.2.5/src/lib.rs:10:10
    |
10  | #[derive(Debug)]
    |          ^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `core::fmt::Error`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:20
    |
504 | pub enum Result<T, E> {
    |                    ^ required by this bound in `Result`
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the size for values of type `()` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/nb-1.0.0/src/lib.rs:210:46
    |
210 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
    |                                              ^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `()`
note: required by a bound in `core::result::Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:17
    |
504 | pub enum Result<T, E> {
    |                 ^ required by this bound in `core::result::Result`

error[E0277]: the size for values of type `core::fmt::Error` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/nb-1.0.0/src/lib.rs:210:46
    |
210 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
    |                                              ^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `core::fmt::Error`
note: required by a bound in `core::result::Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:20
    |
504 | pub enum Result<T, E> {
    |                    ^ required by this bound in `core::result::Result`

error[E0277]: the size for values of type `(E,)` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/nb-1.0.0/src/lib.rs:223:12
    |
223 |         F: FnOnce(E) -> T,
    |            ^^^^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `(E,)`
note: required by a bound in `FnOnce`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:502:18
    |
502 | pub trait FnOnce<Args: Tuple> {
    |                  ^^^^ required by this bound in `FnOnce`

error: could not compile `cfg-if` due to previous error
error[E0277]: `(E,)` is not a tuple
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/nb-1.0.0/src/lib.rs:223:12
    |
223 |         F: FnOnce(E) -> T,
    |            ^^^^^^^^^^^^^^ the trait `Tuple` is not implemented for `(E,)`
    |
note: required by a bound in `FnOnce`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:502:24
    |
502 | pub trait FnOnce<Args: Tuple> {
    |                        ^^^^^ required by this bound in `FnOnce`

error: could not compile `panic-halt` due to 2 previous errors
  18:     0x7ff070c0960e - <rustc_errors[a1ce8dcef9ff7a7d]::emitter::EmitterWriter as rustc_errors[a1ce8dcef9ff7a7d]::translation::Translate>::translate_message
  19:     0x7ff070c09112 - <rustc_errors[a1ce8dcef9ff7a7d]::emitter::EmitterWriter>::msg_to_buffer
  20:     0x7ff070c14276 - <rustc_errors[a1ce8dcef9ff7a7d]::emitter::EmitterWriter>::emit_message_default
  21:     0x7ff070c008d3 - <rustc_errors[a1ce8dcef9ff7a7d]::emitter::EmitterWriter as rustc_errors[a1ce8dcef9ff7a7d]::emitter::Emitter>::emit_diagnostic
  22:     0x7ff070bfe2c2 - <rustc_errors[a1ce8dcef9ff7a7d]::json::Diagnostic>::from_errors_diagnostic
  23:     0x7ff070bfd86c - <rustc_errors[a1ce8dcef9ff7a7d]::json::JsonEmitter as rustc_errors[a1ce8dcef9ff7a7d]::emitter::Emitter>::emit_diagnostic
  24:     0x7ff06f8a788a - <rustc_errors[a1ce8dcef9ff7a7d]::HandlerInner>::emit_diagnostic
  25:     0x7ff0703bcf21 - <rustc_errors[a1ce8dcef9ff7a7d]::Handler>::emit_diagnostic
  26:     0x7ff07037a34d - <rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed as rustc_errors[a1ce8dcef9ff7a7d]::diagnostic_builder::EmissionGuarantee>::diagnostic_builder_emit_producing_guarantee
  27:     0x7ff071ce26dc - <rustc_session[47f761f7ecc78e0d]::parse::ParseSess>::emit_err::<rustc_passes[1a3c8d413335c20c]::errors::DuplicateDiagnosticItemInCrate>
  28:     0x7ff070a28156 - rustc_passes[1a3c8d413335c20c]::diagnostic_items::collect_item
  29:     0x7ff070a2797d - rustc_passes[1a3c8d413335c20c]::diagnostic_items::all_diagnostic_items
  30:     0x7ff070df4bbb - rustc_query_system[731acdfd61cbbb95]::query::plumbing::try_execute_query::<rustc_query_impl[5d8cc954b14a6b51]::plumbing::QueryCtxt, rustc_query_system[731acdfd61cbbb95]::query::caches::ArenaCache<(), rustc_hir[b8f1839d7a3a65f1]::diagnostic_items::DiagnosticItems>>
error: could not compile `nb` due to 10 previous errors
error: could not compile `bare-metal` due to 3 previous errors
  31:     0x7ff070df48a7 - rustc_query_system[731acdfd61cbbb95]::query::plumbing::get_query::<rustc_query_impl[5d8cc954b14a6b51]::queries::all_diagnostic_items, rustc_query_impl[5d8cc954b14a6b51]::plumbing::QueryCtxt>
  32:     0x7ff070133418 - <rustc_middle[ef15c0f09f0ff036]::ty::context::TyCtxt>::get_diagnostic_item
  33:     0x7ff072164d7c - <rustc_infer[183205aa2824036]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[1a866c97ed6ff1a8]::traits::error_reporting::suggestions::TypeErrCtxtExt>::suggest_add_reference_to_arg
  34:     0x7ff072177a80 - <rustc_infer[183205aa2824036]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[1a866c97ed6ff1a8]::traits::error_reporting::TypeErrCtxtExt>::report_selection_error
  35:     0x7ff072180568 - <rustc_infer[183205aa2824036]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[1a866c97ed6ff1a8]::traits::error_reporting::InferCtxtPrivExt>::report_fulfillment_error
  36:     0x7ff07217485f - <rustc_infer[183205aa2824036]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[1a866c97ed6ff1a8]::traits::error_reporting::TypeErrCtxtExt>::report_fulfillment_errors
  37:     0x7ff06f851ef3 - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_argument_types
  38:     0x7ff06f81d989 - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_call
  39:     0x7ff06fed1f39 - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  40:     0x7ff06ff4b180 - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_expr_struct_fields
  41:     0x7ff06fed4f36 - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  42:     0x7ff06ff143dc - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_block_with_expected
  43:     0x7ff06fed246a - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  44:     0x7ff06fd0ff86 - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_return_expr
  45:     0x7ff06fd07f4c - rustc_hir_typeck[6da16006badde0e1]::check::check_fn
  46:     0x7ff06fcf3cdb - <rustc_hir_typeck[6da16006badde0e1]::inherited::InheritedBuilder>::enter::<rustc_hir_typeck[6da16006badde0e1]::typeck_with_fallback<rustc_hir_typeck[6da16006badde0e1]::typeck::{closure#0}>::{closure#0}::{closure#1}, &rustc_middle[ef15c0f09f0ff036]::ty::context::TypeckResults>
  47:     0x7ff06fce69dd - rustc_hir_typeck[6da16006badde0e1]::typeck
  48:     0x7ff06fce4bef - rustc_query_system[731acdfd61cbbb95]::query::plumbing::try_execute_query::<rustc_query_impl[5d8cc954b14a6b51]::plumbing::QueryCtxt, rustc_query_system[731acdfd61cbbb95]::query::caches::DefaultCache<rustc_span[2c66fb4e929445ca]::def_id::LocalDefId, &rustc_middle[ef15c0f09f0ff036]::ty::context::TypeckResults>>
  49:     0x7ff070d79008 - rustc_data_structures[fcbea81f06a7da6b]::sync::par_for_each_in::<&[rustc_span[2c66fb4e929445ca]::def_id::LocalDefId], <rustc_middle[ef15c0f09f0ff036]::hir::map::Map>::par_body_owners<rustc_hir_typeck[6da16006badde0e1]::typeck_item_bodies::{closure#0}>::{closure#0}>
  50:     0x7ff070d78ce3 - rustc_hir_typeck[6da16006badde0e1]::typeck_item_bodies
  51:     0x7ff070c6f64a - rustc_query_system[731acdfd61cbbb95]::query::plumbing::try_execute_query::<rustc_query_impl[5d8cc954b14a6b51]::plumbing::QueryCtxt, rustc_query_system[731acdfd61cbbb95]::query::caches::DefaultCache<(), ()>>
  52:     0x7ff070c6f347 - rustc_query_system[731acdfd61cbbb95]::query::plumbing::get_query::<rustc_query_impl[5d8cc954b14a6b51]::queries::typeck_item_bodies, rustc_query_impl[5d8cc954b14a6b51]::plumbing::QueryCtxt>
  53:     0x7ff06fa38b0a - <rustc_session[47f761f7ecc78e0d]::session::Session>::time::<(), rustc_hir_analysis[7cbe4a3e57699ef0]::check_crate::{closure#7}>
  54:     0x7ff06fa3824b - rustc_hir_analysis[7cbe4a3e57699ef0]::check_crate
  55:     0x7ff06fa37e7b - rustc_interface[d2b1e7858cec3daa]::passes::analysis
  56:     0x7ff070dd11e4 - rustc_query_system[731acdfd61cbbb95]::query::plumbing::try_execute_query::<rustc_query_impl[5d8cc954b14a6b51]::plumbing::QueryCtxt, rustc_query_system[731acdfd61cbbb95]::query::caches::DefaultCache<(), core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>>
  57:     0x7ff070dd0ee7 - rustc_query_system[731acdfd61cbbb95]::query::plumbing::get_query::<rustc_query_impl[5d8cc954b14a6b51]::queries::analysis, rustc_query_impl[5d8cc954b14a6b51]::plumbing::QueryCtxt>
  58:     0x7ff070880b8e - <rustc_interface[d2b1e7858cec3daa]::passes::QueryContext>::enter::<rustc_driver[766838ccb0cc5547]::run_compiler::{closure#1}::{closure#2}::{closure#3}, core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>
  59:     0x7ff07087dc5f - <rustc_interface[d2b1e7858cec3daa]::interface::Compiler>::enter::<rustc_driver[766838ccb0cc5547]::run_compiler::{closure#1}::{closure#2}, core[4e899ad432e99573]::result::Result<core[4e899ad432e99573]::option::Option<rustc_interface[d2b1e7858cec3daa]::queries::Linker>, rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>
  60:     0x7ff070878c92 - rustc_span[2c66fb4e929445ca]::with_source_map::<core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>, rustc_interface[d2b1e7858cec3daa]::interface::run_compiler<core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>, rustc_driver[766838ccb0cc5547]::run_compiler::{closure#1}>::{closure#0}::{closure#1}>
  61:     0x7ff07087876c - <scoped_tls[a162aae2f2befadc]::ScopedKey<rustc_span[2c66fb4e929445ca]::SessionGlobals>>::set::<rustc_interface[d2b1e7858cec3daa]::interface::run_compiler<core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>, rustc_driver[766838ccb0cc5547]::run_compiler::{closure#1}>::{closure#0}, core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>
  62:     0x7ff070877d58 - std[60fbac34357a1008]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[d2b1e7858cec3daa]::util::run_in_thread_pool_with_globals<rustc_interface[d2b1e7858cec3daa]::interface::run_compiler<core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>, rustc_driver[766838ccb0cc5547]::run_compiler::{closure#1}>::{closure#0}, core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>
  63:     0x7ff070877a7c - <<std[60fbac34357a1008]::thread::Builder>::spawn_unchecked_<rustc_interface[d2b1e7858cec3daa]::util::run_in_thread_pool_with_globals<rustc_interface[d2b1e7858cec3daa]::interface::run_compiler<core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>, rustc_driver[766838ccb0cc5547]::run_compiler::{closure#1}>::{closure#0}, core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>::{closure#1} as core[4e899ad432e99573]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
error[E0277]: the size for values of type `Void` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:28:10
    |
28  | #[derive(Copy)]
    |          ^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `Void`
note: required by a bound in `core::marker::Copy`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/marker.rs:389:17
    |
389 | pub trait Copy: Clone {
    |                 ^^^^^ required by this bound in `core::marker::Copy`
    = note: this error originates in the derive macro `Copy` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the size for values of type `Void` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:31:6
    |
31  | impl Clone for Void {
    |      ^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `Void`
note: required by a bound in `Clone`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/clone.rs:110:18
    |
110 | pub trait Clone: Sized {
    |                  ^^^^^ required by this bound in `Clone`

error[E0277]: the size for values of type `Result<T, Void>` cannot be known at compilation time
  --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:90:9
   |
90 | impl<T> ResultVoidExt<T> for Result<T, Void> {
   |         ^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
   |
   = help: the trait `Sized` is not implemented for `Result<T, Void>`
note: required by a bound in `ResultVoidExt`
  --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:85:29
   |
85 | pub trait ResultVoidExt<T>: Sized {
   |                             ^^^^^ required by this bound in `ResultVoidExt`

error[E0277]: the size for values of type `T` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:90:30
    |
90  | impl<T> ResultVoidExt<T> for Result<T, Void> {
    |                              ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
    |
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:17
    |
504 | pub enum Result<T, E> {
    |                 ^ required by this bound in `Result`
help: consider restricting type parameter `T`
    |
90  | impl<T: core::marker::Sized> ResultVoidExt<T> for Result<T, Void> {
    |       +++++++++++++++++++++

error[E0277]: the size for values of type `Void` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:90:30
    |
90  | impl<T> ResultVoidExt<T> for Result<T, Void> {
    |                              ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `Void`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:20
    |
504 | pub enum Result<T, E> {
    |                    ^ required by this bound in `Result`

error: could not compile `cfg-if` due to previous error
error[E0277]: the size for values of type `Result<Void, E>` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:109:9
    |
109 | impl<E> ResultVoidErrExt<E> for Result<Void, E> {
    |         ^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `Result<Void, E>`
note: required by a bound in `ResultVoidErrExt`
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:104:32
    |
104 | pub trait ResultVoidErrExt<E>: Sized {
    |                                ^^^^^ required by this bound in `ResultVoidErrExt`

error[E0277]: the size for values of type `Void` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:109:33
    |
109 | impl<E> ResultVoidErrExt<E> for Result<Void, E> {
    |                                 ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `Void`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:17
    |
504 | pub enum Result<T, E> {
    |                 ^ required by this bound in `Result`

  64:     0x7ff072309563 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h9c5bc954debcee72
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/alloc/src/boxed.rs:2000:9
  65:     0x7ff072309563 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::he1973107145a5c1d
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/alloc/src/boxed.rs:2000:9
  66:     0x7ff072309563 - std::sys::unix::thread::Thread::new::thread_start::h3f40abd87f665b17
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/sys/unix/thread.rs:108:17
error[E0277]: the size for values of type `E` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:109:33
    |
109 | impl<E> ResultVoidErrExt<E> for Result<Void, E> {
    |                                 ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
    |
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:20
    |
504 | pub enum Result<T, E> {
    |                    ^ required by this bound in `Result`
help: consider restricting type parameter `E`
    |
109 | impl<E: core::marker::Sized> ResultVoidErrExt<E> for Result<Void, E> {
    |       +++++++++++++++++++++

error[E0277]: the size for values of type `()` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:38:46
    |
38  |     fn fmt(&self, _: &mut fmt::Formatter) -> fmt::Result {
    |                                              ^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `()`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:17
    |
504 | pub enum Result<T, E> {
    |                 ^ required by this bound in `Result`

error[E0277]: the size for values of type `core::fmt::Error` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:38:46
    |
38  |     fn fmt(&self, _: &mut fmt::Formatter) -> fmt::Result {
    |                                              ^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `core::fmt::Error`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:20
    |
504 | pub enum Result<T, E> {
    |                    ^ required by this bound in `Result`

error[E0277]: the size for values of type `()` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:44:46
    |
44  |     fn fmt(&self, _: &mut fmt::Formatter) -> fmt::Result {
    |                                              ^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `()`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:17
    |
504 | pub enum Result<T, E> {
    |                 ^ required by this bound in `Result`

error[E0277]: the size for values of type `core::fmt::Error` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:44:46
    |
44  |     fn fmt(&self, _: &mut fmt::Formatter) -> fmt::Result {
    |                                              ^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `core::fmt::Error`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:20
    |
504 | pub enum Result<T, E> {
    |                    ^ required by this bound in `Result`

error[E0277]: the size for values of type `core::cmp::Ordering` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:56:37
    |
56  |     fn partial_cmp(&self, _: &T) -> Option<cmp::Ordering> {
    |                                     ^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `core::cmp::Ordering`
note: required by a bound in `Option`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:518:17
    |
518 | pub enum Option<T> {
    |                 ^ required by this bound in `Option`

error[E0277]: the size for values of type `T` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:95:20
    |
95  |     fn void_unwrap(self) -> T {
    |                    ^^^^ doesn't have a size known at compile-time
    |
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:17
    |
504 | pub enum Result<T, E> {
    |                 ^ required by this bound in `Result`
help: consider restricting type parameter `T`
    |
90  | impl<T: core::marker::Sized> ResultVoidExt<T> for Result<T, Void> {
    |       +++++++++++++++++++++

error[E0277]: the size for values of type `Void` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:95:20
    |
95  |     fn void_unwrap(self) -> T {
    |                    ^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `Void`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:20
    |
504 | pub enum Result<T, E> {
    |                    ^ required by this bound in `Result`

error[E0277]: the size for values of type `Void` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:114:24
    |
114 |     fn void_unwrap_err(self) -> E {
    |                        ^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `Void`
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:17
    |
504 | pub enum Result<T, E> {
    |                 ^ required by this bound in `Result`

error[E0277]: the size for values of type `E` cannot be known at compilation time
   --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs:114:24
    |
114 |     fn void_unwrap_err(self) -> E {
    |                        ^^^^ doesn't have a size known at compile-time
    |
note: required by a bound in `Result`
   --> /home/mark/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:504:20
    |
504 | pub enum Result<T, E> {
    |                    ^ required by this bound in `Result`
help: consider restricting type parameter `E`
    |
109 | impl<E: core::marker::Sized> ResultVoidErrExt<E> for Result<Void, E> {
    |       +++++++++++++++++++++

error: could not compile `void` due to 18 previous errors
  67:     0x7ff06e11ab43 - start_thread
                               at ./nptl/./nptl/pthread_create.c:442:8
  68:     0x7ff06e1aca00 - clone3
                               at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
  69:                0x0 - <unknown>
error: internal compiler error: the following error was constructed but not emitted

error[E0277]: the size for values of type `T` cannot be known at compilation time
  --> /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/vcell-0.1.3/src/lib.rs:25:47
   |
25 |         VolatileCell { value: UnsafeCell::new(value) }
   |                                               ^^^^^

thread '<unnamed>' panicked at 'error was constructed but not emitted', compiler/rustc_errors/src/diagnostic_builder.rs:676:21
stack backtrace:
   0:     0x7ff06e3d7520 - std::backtrace_rs::backtrace::libunwind::trace::h1c0259b0e54a0ec7
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7ff06e3d7520 - std::backtrace_rs::backtrace::trace_unsynchronized::hef156fa43f257fff
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7ff06e3d7520 - std::sys_common::backtrace::_print_fmt::h14c30be4df8a453b
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7ff06e3d7520 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6bc9ef49ac207d73
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7ff06e43963e - core::fmt::write::h670e2d8b480677bf
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/core/src/fmt/mod.rs:1209:17
   5:     0x7ff06e3c7795 - std::io::Write::write_fmt::h96cca416c9a25a8f
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/io/mod.rs:1682:15
   6:     0x7ff06e3d72e5 - std::sys_common::backtrace::_print::h209eac292799b1d3
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7ff06e3d72e5 - std::sys_common::backtrace::print::h02ded1b579fe176b
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7ff06e3da0bf - std::panicking::default_hook::{{closure}}::h8511971ca7cce5b1
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/panicking.rs:267:22
   9:     0x7ff06e3d9dfa - std::panicking::default_hook::h8bc8dfd96a84f923
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/panicking.rs:286:9
  10:     0x7ff06e3da8cc - std::panicking::rust_panic_with_hook::h9f2bfce9b4c1819d
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/panicking.rs:688:13
  11:     0x7ff06e3da621 - std::panicking::begin_panic_handler::{{closure}}::h167b5f05f9579bc1
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/panicking.rs:577:13
  12:     0x7ff06e3d79cc - std::sys_common::backtrace::__rust_end_short_backtrace::h99451dfb597ab6ac
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/sys_common/backtrace.rs:137:18
  13:     0x7ff06e3da382 - rust_begin_unwind
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/panicking.rs:575:5
  14:     0x7ff06e436023 - core::panicking::panic_fmt::hf9d641a075644e68
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/core/src/panicking.rs:65:14
  15:     0x7ff0702ed59b - <rustc_errors[a1ce8dcef9ff7a7d]::diagnostic_builder::DiagnosticBuilderInner as core[4e899ad432e99573]::ops::drop::Drop>::drop
  16:     0x7ff07215fa9d - core[4e899ad432e99573]::ptr::drop_in_place::<rustc_errors[a1ce8dcef9ff7a7d]::diagnostic_builder::DiagnosticBuilder<rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>
  17:     0x7ff07217a3aa - <rustc_infer[183205aa2824036]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[1a866c97ed6ff1a8]::traits::error_reporting::TypeErrCtxtExt>::report_selection_error
  18:     0x7ff072180568 - <rustc_infer[183205aa2824036]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[1a866c97ed6ff1a8]::traits::error_reporting::InferCtxtPrivExt>::report_fulfillment_error
  19:     0x7ff07217485f - <rustc_infer[183205aa2824036]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[1a866c97ed6ff1a8]::traits::error_reporting::TypeErrCtxtExt>::report_fulfillment_errors
  20:     0x7ff06f851ef3 - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_argument_types
  21:     0x7ff06f81d989 - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_call
  22:     0x7ff06fed1f39 - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  23:     0x7ff06ff4b180 - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_expr_struct_fields
  24:     0x7ff06fed4f36 - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  25:     0x7ff06ff143dc - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_block_with_expected
  26:     0x7ff06fed246a - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  27:     0x7ff06fd0ff86 - <rustc_hir_typeck[6da16006badde0e1]::fn_ctxt::FnCtxt>::check_return_expr
  28:     0x7ff06fd07f4c - rustc_hir_typeck[6da16006badde0e1]::check::check_fn
  29:     0x7ff06fcf3cdb - <rustc_hir_typeck[6da16006badde0e1]::inherited::InheritedBuilder>::enter::<rustc_hir_typeck[6da16006badde0e1]::typeck_with_fallback<rustc_hir_typeck[6da16006badde0e1]::typeck::{closure#0}>::{closure#0}::{closure#1}, &rustc_middle[ef15c0f09f0ff036]::ty::context::TypeckResults>
  30:     0x7ff06fce69dd - rustc_hir_typeck[6da16006badde0e1]::typeck
  31:     0x7ff06fce4bef - rustc_query_system[731acdfd61cbbb95]::query::plumbing::try_execute_query::<rustc_query_impl[5d8cc954b14a6b51]::plumbing::QueryCtxt, rustc_query_system[731acdfd61cbbb95]::query::caches::DefaultCache<rustc_span[2c66fb4e929445ca]::def_id::LocalDefId, &rustc_middle[ef15c0f09f0ff036]::ty::context::TypeckResults>>
  32:     0x7ff070d79008 - rustc_data_structures[fcbea81f06a7da6b]::sync::par_for_each_in::<&[rustc_span[2c66fb4e929445ca]::def_id::LocalDefId], <rustc_middle[ef15c0f09f0ff036]::hir::map::Map>::par_body_owners<rustc_hir_typeck[6da16006badde0e1]::typeck_item_bodies::{closure#0}>::{closure#0}>
  33:     0x7ff070d78ce3 - rustc_hir_typeck[6da16006badde0e1]::typeck_item_bodies
  34:     0x7ff070c6f64a - rustc_query_system[731acdfd61cbbb95]::query::plumbing::try_execute_query::<rustc_query_impl[5d8cc954b14a6b51]::plumbing::QueryCtxt, rustc_query_system[731acdfd61cbbb95]::query::caches::DefaultCache<(), ()>>
  35:     0x7ff070c6f347 - rustc_query_system[731acdfd61cbbb95]::query::plumbing::get_query::<rustc_query_impl[5d8cc954b14a6b51]::queries::typeck_item_bodies, rustc_query_impl[5d8cc954b14a6b51]::plumbing::QueryCtxt>
  36:     0x7ff06fa38b0a - <rustc_session[47f761f7ecc78e0d]::session::Session>::time::<(), rustc_hir_analysis[7cbe4a3e57699ef0]::check_crate::{closure#7}>
  37:     0x7ff06fa3824b - rustc_hir_analysis[7cbe4a3e57699ef0]::check_crate
  38:     0x7ff06fa37e7b - rustc_interface[d2b1e7858cec3daa]::passes::analysis
  39:     0x7ff070dd11e4 - rustc_query_system[731acdfd61cbbb95]::query::plumbing::try_execute_query::<rustc_query_impl[5d8cc954b14a6b51]::plumbing::QueryCtxt, rustc_query_system[731acdfd61cbbb95]::query::caches::DefaultCache<(), core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>>
  40:     0x7ff070dd0ee7 - rustc_query_system[731acdfd61cbbb95]::query::plumbing::get_query::<rustc_query_impl[5d8cc954b14a6b51]::queries::analysis, rustc_query_impl[5d8cc954b14a6b51]::plumbing::QueryCtxt>
  41:     0x7ff070880b8e - <rustc_interface[d2b1e7858cec3daa]::passes::QueryContext>::enter::<rustc_driver[766838ccb0cc5547]::run_compiler::{closure#1}::{closure#2}::{closure#3}, core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>
  42:     0x7ff07087dc5f - <rustc_interface[d2b1e7858cec3daa]::interface::Compiler>::enter::<rustc_driver[766838ccb0cc5547]::run_compiler::{closure#1}::{closure#2}, core[4e899ad432e99573]::result::Result<core[4e899ad432e99573]::option::Option<rustc_interface[d2b1e7858cec3daa]::queries::Linker>, rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>
  43:     0x7ff070878c92 - rustc_span[2c66fb4e929445ca]::with_source_map::<core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>, rustc_interface[d2b1e7858cec3daa]::interface::run_compiler<core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>, rustc_driver[766838ccb0cc5547]::run_compiler::{closure#1}>::{closure#0}::{closure#1}>
  44:     0x7ff07087876c - <scoped_tls[a162aae2f2befadc]::ScopedKey<rustc_span[2c66fb4e929445ca]::SessionGlobals>>::set::<rustc_interface[d2b1e7858cec3daa]::interface::run_compiler<core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>, rustc_driver[766838ccb0cc5547]::run_compiler::{closure#1}>::{closure#0}, core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>
  45:     0x7ff070877d58 - std[60fbac34357a1008]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[d2b1e7858cec3daa]::util::run_in_thread_pool_with_globals<rustc_interface[d2b1e7858cec3daa]::interface::run_compiler<core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>, rustc_driver[766838ccb0cc5547]::run_compiler::{closure#1}>::{closure#0}, core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>
  46:     0x7ff070877a7c - <<std[60fbac34357a1008]::thread::Builder>::spawn_unchecked_<rustc_interface[d2b1e7858cec3daa]::util::run_in_thread_pool_with_globals<rustc_interface[d2b1e7858cec3daa]::interface::run_compiler<core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>, rustc_driver[766838ccb0cc5547]::run_compiler::{closure#1}>::{closure#0}, core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[4e899ad432e99573]::result::Result<(), rustc_errors[a1ce8dcef9ff7a7d]::ErrorGuaranteed>>::{closure#1} as core[4e899ad432e99573]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  47:     0x7ff072309563 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h9c5bc954debcee72
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/alloc/src/boxed.rs:2000:9
  48:     0x7ff072309563 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::he1973107145a5c1d
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/alloc/src/boxed.rs:2000:9
  49:     0x7ff072309563 - std::sys::unix::thread::Thread::new::thread_start::h3f40abd87f665b17
                               at /rustc/c1a859b25a95999ba276075bbd8e284ea675b41a/library/std/src/sys/unix/thread.rs:108:17
  50:     0x7ff06e11ab43 - start_thread
                               at ./nptl/./nptl/pthread_create.c:442:8
  51:     0x7ff06e1aca00 - clone3
                               at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
  52:                0x0 - <unknown>
thread panicked while panicking. aborting.
error: could not compile `vcell` due to 2 previous errors

Caused by:
  process didn't exit successfully: `rustc --crate-name vcell /home/mark/.cargo/registry/src/github.com-1ecc6299db9ec823/vcell-0.1.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=s -C linker-plugin-lto -C debuginfo=2 -C debug-assertions=on -C metadata=759351f247192a54 -C extra-filename=-759351f247192a54 --out-dir /home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps --target /home/mark/Projects/rust/ice-repro/avr-atmega328p.json -L dependency=/home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps -L dependency=/home/mark/Projects/rust/ice-repro/target/debug/deps --extern 'noprelude:compiler_builtins=/home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcompiler_builtins-a2b92db059b15fe1.rmeta' --extern 'noprelude:core=/home/mark/Projects/rust/ice-repro/target/avr-atmega328p/debug/deps/libcore-3cf297aae6df8ec5.rmeta' -Z unstable-options --cap-lints allow` (signal: 6, SIGABRT: process abort signal)
```

</p>
</details>