rust-lang / rust-lang/rust

[ICE]: `vtable trait ref should be normalized`

Open
#152,416 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug I-ICE requires-debug-assertions requires-nightly S-bug-has-test S-has-mcve T-compiler
Dominant language
Rust
Stars
119k
Forks
16.2k
PR merge metrics
PR metrics pending

Description

auto-reduced (treereduce-rust):

//@compile-flags: -Zunstable-options
use std::{error::Error, io, path::PathBuf};

trait Game {
    fn load(&mut self, path: PathBuf) -> std::result::Result<(), impl std::error::Error>;

    fn get_archives(&self) -> Vec<Box<&dyn Archive<impl AssetID, impl Asset>>>;
}

trait AssetID {
    fn full_name(&self) -> String;
}

trait Asset {}

trait Archive<I: AssetID, A: Asset> {
    fn name(&self) -> &String;
}

struct NorthlightAssetID {}

impl AssetID for NorthlightAssetID {
    fn full_name(&self) -> String {
        String::new()
    }
}

struct NorthlightAsset {}

impl Asset for NorthlightAsset {}

struct NorthlightGame {}

impl NorthlightGame {
    fn new() -> Self {
        NorthlightGame {}
    }
}

impl Game for NorthlightGame {
    fn load(&mut self, path: PathBuf) -> std::result::Result<(), impl std::error::Error> {
        if !path.exists() {
            return Err(io::Error::new(io::ErrorKind::NotFound, "file not exist"));
        }

        Ok(())
    }

    fn get_archives(&self) -> Vec<Box<&dyn Archive<NorthlightAssetID, NorthlightAsset>>> {
        let mut res = vec![];
        res
    }
}

enum Games {
    Northlight(NorthlightGame),
}

impl Game for Games {
    fn load(&mut self, path: PathBuf) -> std::result::Result<(), impl std::error::Error> {
        match self {
            Self::Northlight(game) => game.load(path),
        }
    }

    fn get_archives(&self) -> Vec<Box<&dyn Archive<impl AssetID, impl Asset>>> {
        match self {
            Self::Northlight(game) => game.get_archives(),
        }
    }
}

fn main() -> Result<(), Box<dyn Error>> {
    let mut game = Games::Northlight(NorthlightGame::new());

    for archive in game.get_archives() {
        println!("{}:", archive.name());
    }

    Ok(())
}

original code

original:

use std::{error::Error, io, path::PathBuf};

trait Game {
    fn load(&mut self, path: PathBuf) -> std::result::Result<(), impl std::error::Error>;

    fn get_archives(&self) -> Vec<Box<&dyn Archive<impl AssetID, impl Asset>>>;
}

trait AssetID {
    fn full_name(&self) -> String;
}

trait Asset {}

trait Archive<I: AssetID, A: Asset> {
    fn name(&self) -> &String;

    fn get_identifiers(&self) -> &Vec<I>;

    fn get(&self, id: I) -> Option<A>;
}

struct NorthlightAssetID {}

impl AssetID for NorthlightAssetID {
    fn full_name(&self) -> String {
        String::new()
    }
}

struct NorthlightAsset {}

impl Asset for NorthlightAsset {}

struct NorthlightArchive {}

impl Archive<NorthlightAssetID, NorthlightAsset> for NorthlightArchive {
    fn name(&self) -> &String {
        todo!()
    }

    fn get_identifiers(&self) -> &Vec<NorthlightAssetID> {
        todo!()
    }

    fn get(&self, id: NorthlightAssetID) -> Option<NorthlightAsset> {
        todo!()
    }
}

struct NorthlightGame {}

impl NorthlightGame {
    fn new() -> Self {
        NorthlightGame {  }
    }
}

impl Game for NorthlightGame {
    fn load(&mut self, path: PathBuf) -> std::result::Result<(), impl std::error::Error> {
        if !path.exists() {
            return Err(io::Error::new(io::ErrorKind::NotFound, "file not exist"));
        }

        Ok(())
    }

    fn get_archives(&self) -> Vec<Box<&dyn Archive<NorthlightAssetID, NorthlightAsset>>> {
        let mut res = vec![];
        res
    }
}

enum Games {
    Northlight(NorthlightGame),
}

impl Game for Games {
    fn load(&mut self, path: PathBuf) -> std::result::Result<(), impl std::error::Error> {
        match self {
            Self::Northlight(game) => game.load(path),
        }
    }

    fn get_archives(&self) -> Vec<Box<&dyn Archive<impl AssetID, impl Asset>>> {
        match self {
            Self::Northlight(game) => game.get_archives(),
        }
    }
}

fn main() -> Result<(), Box<dyn Error>> {
    let mut game = Games::Northlight(NorthlightGame::new());

    let _ = game.load(PathBuf::from(
        "/home/marijn/.local/share/Steam/steamapps/common/Alan Wake/AlanWake.exe",
    ));

    for archive in game.get_archives() {
        println!("{}:", archive.name());
        for asset in archive.get_identifiers() {
            println!("\t{}", asset.full_name());
        }
    }

    Ok(())
}

Version information

rustc 1.95.0-nightly (18d13b533 2026-02-09)
binary: rustc
commit-hash: 18d13b5332916ffca8eadb9106d54b5b434e9978
commit-date: 2026-02-09
host: x86_64-unknown-linux-gnu
release: 1.95.0-nightly
LLVM version: 22.1.0

Possibly related line of code:
https://github.com/rust-lang/rust/blob/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_trait_selection/src/traits/vtable.rs#L304-L316

Command:
/home/matthias/.rustup/toolchains/alt-master/bin/rustc -Zunstable-options

Program output

warning: impl trait in impl method signature does not match trait method signature
  --> /tmp/icemaker_global_tempdir.mzjFyh2Rjryy/rustc_testrunner_tmpdir_reporting.vZWKw4gyCwwz/mvce.rs:48:31
   |
 6 |     fn get_archives(&self) -> Vec<Box<&dyn Archive<impl AssetID, impl Asset>>>;
   |                               ------------------------------------------------ return type from trait method defined here
...
48 |     fn get_archives(&self) -> Vec<Box<&dyn Archive<NorthlightAssetID, NorthlightAsset>>> {
   |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: add `#[allow(refining_impl_trait)]` if it is intended for this to be part of the public API of this crate
   = note: we are soliciting feedback, see issue #121718 <https://github.com/rust-lang/rust/issues/121718> for more information
   = note: `#[warn(refining_impl_trait_internal)]` (part of `#[warn(refining_impl_trait)]`) on by default
help: replace the return type so that it matches the trait
   |
48 -     fn get_archives(&self) -> Vec<Box<&dyn Archive<NorthlightAssetID, NorthlightAsset>>> {
48 +     fn get_archives(&self) -> Vec<Box<&dyn Archive<impl AssetID, impl Asset>>> {
   |

warning: variable does not need to be mutable
  --> /tmp/icemaker_global_tempdir.mzjFyh2Rjryy/rustc_testrunner_tmpdir_reporting.vZWKw4gyCwwz/mvce.rs:49:13
   |
49 |         let mut res = vec![];
   |             ----^^^
   |             |
   |             help: remove this `mut`
   |
   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
  --> /tmp/icemaker_global_tempdir.mzjFyh2Rjryy/rustc_testrunner_tmpdir_reporting.vZWKw4gyCwwz/mvce.rs:73:9
   |
73 |     let mut game = Games::Northlight(NorthlightGame::new());
   |         ----^^^^
   |         |
   |         help: remove this `mut`

warning: method `load` is never used
 --> /tmp/icemaker_global_tempdir.mzjFyh2Rjryy/rustc_testrunner_tmpdir_reporting.vZWKw4gyCwwz/mvce.rs:4:8
  |
3 | trait Game {
  |       ---- method in this trait
4 |     fn load(&mut self, path: PathBuf) -> std::result::Result<(), impl std::error::Error>;
  |        ^^^^
  |
  = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `full_name` is never used
  --> /tmp/icemaker_global_tempdir.mzjFyh2Rjryy/rustc_testrunner_tmpdir_reporting.vZWKw4gyCwwz/mvce.rs:10:8
   |
 9 | trait AssetID {
   |       ------- method in this trait
10 |     fn full_name(&self) -> String;
   |        ^^^^^^^^^


thread 'rustc' (476805) panicked at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_trait_selection/src/traits/vtable.rs:310:5:
assertion `left == right` failed: vtable trait ref should be normalized
  left: <dyn Archive<NorthlightAssetID, NorthlightAsset> as Archive<NorthlightAssetID, NorthlightAsset>>
 right: <dyn Archive<impl AssetID, impl Asset> as Archive<impl AssetID, impl Asset>>
stack backtrace:
   0:     0x7fb15b4745b0 - std[ea40d4953e10a92]::backtrace_rs::backtrace::libunwind::trace
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:     0x7fb15b4745b0 - std[ea40d4953e10a92]::backtrace_rs::backtrace::trace_unsynchronized::<std[ea40d4953e10a92]::sys::backtrace::_print_fmt::{closure#1}>
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:     0x7fb15b4745b0 - std[ea40d4953e10a92]::sys::backtrace::_print_fmt
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/sys/backtrace.rs:74:9
   3:     0x7fb15b4745b0 - <<std[ea40d4953e10a92]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[bb7dad58502812ca]::fmt::Display>::fmt
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/sys/backtrace.rs:44:26
   4:     0x7fb156ae918e - <core[bb7dad58502812ca]::fmt::rt::Argument>::fmt
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/core/src/fmt/rt.rs:152:76
   5:     0x7fb156ae918e - core[bb7dad58502812ca]::fmt::write
   6:     0x7fb15b48ca2c - std[ea40d4953e10a92]::io::default_write_fmt::<std[ea40d4953e10a92]::sys::stdio::unix::Stderr>
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/io/mod.rs:639:11
   7:     0x7fb15b48ca2c - <std[ea40d4953e10a92]::sys::stdio::unix::Stderr as std[ea40d4953e10a92]::io::Write>::write_fmt
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/io/mod.rs:1994:13
   8:     0x7fb15b4390d6 - <std[ea40d4953e10a92]::sys::backtrace::BacktraceLock>::print
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/sys/backtrace.rs:47:9
   9:     0x7fb15b4390d6 - std[ea40d4953e10a92]::panicking::default_hook::{closure#0}
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/panicking.rs:292:27
  10:     0x7fb15b463241 - std[ea40d4953e10a92]::panicking::default_hook
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/panicking.rs:319:9
  11:     0x7fb157ee8866 - <alloc[d7bc5d2f6630ca9b]::boxed::Box<dyn for<'a, 'b> core[bb7dad58502812ca]::ops::function::Fn<(&'a std[ea40d4953e10a92]::panic::PanicHookInfo<'b>,), Output = ()> + core[bb7dad58502812ca]::marker::Sync + core[bb7dad58502812ca]::marker::Send> as core[bb7dad58502812ca]::ops::function::Fn<(&std[ea40d4953e10a92]::panic::PanicHookInfo,)>>::call
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/alloc/src/boxed.rs:2220:9
  12:     0x7fb157ee8866 - rustc_driver_impl[d8723f92f8a4b34d]::install_ice_hook::{closure#1}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_driver_impl/src/lib.rs:1481:17
  13:     0x7fb157ee8866 - <alloc[d7bc5d2f6630ca9b]::boxed::Box<rustc_driver_impl[d8723f92f8a4b34d]::install_ice_hook::{closure#1}> as core[bb7dad58502812ca]::ops::function::Fn<(&dyn for<'a, 'b> core[bb7dad58502812ca]::ops::function::Fn<(&'a std[ea40d4953e10a92]::panic::PanicHookInfo<'b>,), Output = ()> + core[bb7dad58502812ca]::marker::Sync + core[bb7dad58502812ca]::marker::Send, &std[ea40d4953e10a92]::panic::PanicHookInfo)>>::call
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/alloc/src/boxed.rs:2220:9
  14:     0x7fb157ee8866 - std[ea40d4953e10a92]::panicking::update_hook::<alloc[d7bc5d2f6630ca9b]::boxed::Box<rustc_driver_impl[d8723f92f8a4b34d]::install_ice_hook::{closure#1}>>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/panicking.rs:235:47
  15:     0x7fb15b4635da - <alloc[d7bc5d2f6630ca9b]::boxed::Box<dyn for<'a, 'b> core[bb7dad58502812ca]::ops::function::Fn<(&'a std[ea40d4953e10a92]::panic::PanicHookInfo<'b>,), Output = ()> + core[bb7dad58502812ca]::marker::Sync + core[bb7dad58502812ca]::marker::Send> as core[bb7dad58502812ca]::ops::function::Fn<(&std[ea40d4953e10a92]::panic::PanicHookInfo,)>>::call
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/alloc/src/boxed.rs:2220:9
  16:     0x7fb15b4635da - std[ea40d4953e10a92]::panicking::panic_with_hook
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/panicking.rs:833:13
  17:     0x7fb15b439198 - std[ea40d4953e10a92]::panicking::panic_handler::{closure#0}
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/panicking.rs:698:13
  18:     0x7fb15b424c39 - std[ea40d4953e10a92]::sys::backtrace::__rust_end_short_backtrace::<std[ea40d4953e10a92]::panicking::panic_handler::{closure#0}, !>
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/sys/backtrace.rs:182:18
  19:     0x7fb15b43b0ed - __rustc[5fd8c5d78029e34f]::rust_begin_unwind
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/panicking.rs:689:5
  20:     0x7fb156ae9bbc - core[bb7dad58502812ca]::panicking::panic_fmt
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/core/src/panicking.rs:80:14
  21:     0x7fb156ae9aa3 - core[bb7dad58502812ca]::panicking::assert_failed_inner
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/core/src/panicking.rs:434:23
  22:     0x7fb15acbc143 - core[bb7dad58502812ca]::panicking::assert_failed::<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/core/src/panicking.rs:394:5
  23:     0x7fb15af56f3a - rustc_trait_selection[e0cb7168d4e1e9e0]::traits::vtable::first_method_vtable_slot
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_trait_selection/src/traits/vtable.rs:310:5
  24:     0x7fb15a426b03 - rustc_query_impl[929e0f632e1e6503]::query_impl::first_method_vtable_slot::compute_fn::__rust_begin_short_backtrace
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/plumbing.rs:291:9
  25:     0x7fb15a2042f3 - <rustc_query_impl[929e0f632e1e6503]::SemiDynamicQueryDispatcher<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>>::compute
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/lib.rs:118:9
  26:     0x7fb15a2042f3 - rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/execution.rs:419:72
  27:     0x7fb15a2042f3 - rustc_middle[819d2bc78167edce]::ty::context::tls::enter_context::<rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:59:9
  28:     0x7fb15a2042f3 - <std[ea40d4953e10a92]::thread::local::LocalKey<core[bb7dad58502812ca]::cell::Cell<*const ()>>>::try_with::<rustc_middle[819d2bc78167edce]::ty::context::tls::enter_context<rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/thread/local.rs:513:12
  29:     0x7fb15a2042f3 - <std[ea40d4953e10a92]::thread::local::LocalKey<core[bb7dad58502812ca]::cell::Cell<*const ()>>>::with::<rustc_middle[819d2bc78167edce]::ty::context::tls::enter_context<rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/thread/local.rs:477:20
  30:     0x7fb15a2042f3 - rustc_middle[819d2bc78167edce]::ty::context::tls::enter_context::<rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:56:9
  31:     0x7fb15a2042f3 - <rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query::<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/plumbing.rs:116:13
  32:     0x7fb15a2042f3 - rustc_middle[819d2bc78167edce]::ty::context::tls::with_related_context::<<rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:111:9
  33:     0x7fb15a2042f3 - rustc_middle[819d2bc78167edce]::ty::context::tls::with_context::<rustc_middle[819d2bc78167edce]::ty::context::tls::with_related_context<<rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:89:36
  34:     0x7fb15a2042f3 - rustc_middle[819d2bc78167edce]::ty::context::tls::with_context_opt::<rustc_middle[819d2bc78167edce]::ty::context::tls::with_context<rustc_middle[819d2bc78167edce]::ty::context::tls::with_related_context<<rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:78:18
  35:     0x7fb15a2042f3 - rustc_middle[819d2bc78167edce]::ty::context::tls::with_context::<rustc_middle[819d2bc78167edce]::ty::context::tls::with_related_context<<rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:89:5
  36:     0x7fb15a2042f3 - rustc_middle[819d2bc78167edce]::ty::context::tls::with_related_context::<<rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:102:5
  37:     0x7fb15a2042f3 - <rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query::<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/plumbing.rs:100:9
  38:     0x7fb15a2042f3 - rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/execution.rs:419:22
  39:     0x7fb15a2042f3 - rustc_query_impl[929e0f632e1e6503]::execution::execute_job::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}, false>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/execution.rs:357:9
  40:     0x7fb15a2042f3 - rustc_query_impl[929e0f632e1e6503]::execution::try_execute_query::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}, false>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/execution.rs:309:13
  41:     0x7fb15a42735b - rustc_query_impl[929e0f632e1e6503]::execution::get_query_non_incr::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/execution.rs:635:32
  42:     0x7fb15a42735b - stacker[eb18d1edceed2a6d]::maybe_grow::<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[929e0f632e1e6503]::execution::get_query_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>
                               at /rust/deps/stacker-0.1.21/src/lib.rs:57:9
  43:     0x7fb15a42735b - rustc_data_structures[7183104b42db2a01]::stack::ensure_sufficient_stack::<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[929e0f632e1e6503]::execution::get_query_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_data_structures/src/stack.rs:21:5
  44:     0x7fb15a42735b - rustc_query_impl[929e0f632e1e6503]::execution::get_query_non_incr::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/execution.rs:635:5
  45:     0x7fb15a42735b - rustc_query_impl[929e0f632e1e6503]::query_impl::first_method_vtable_slot::get_query_non_incr::__rust_end_short_backtrace
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/plumbing.rs:625:26
  46:     0x7fb15b32494a - rustc_middle[819d2bc78167edce]::query::inner::query_get_at::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_type_ir[584001722b5a7749]::predicate::TraitRef<rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 8usize]>>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/query/inner.rs:47:17
  47:     0x7fb15b32494a - <rustc_middle[819d2bc78167edce]::query::plumbing::TyCtxtAt>::first_method_vtable_slot
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/query/plumbing.rs:433:42
  48:     0x7fb15b32494a - <rustc_middle[819d2bc78167edce]::ty::context::TyCtxt>::first_method_vtable_slot
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/query/plumbing.rs:422:35
  49:     0x7fb15b32494a - rustc_ty_utils[218bb9e482cd4520]::instance::resolve_associated_item
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_ty_utils/src/instance.rs:244:39
  50:     0x7fb15b32494a - rustc_ty_utils[218bb9e482cd4520]::instance::resolve_instance_raw
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_ty_utils/src/instance.rs:26:9
  51:     0x7fb15a401daa - rustc_query_impl[929e0f632e1e6503]::query_impl::resolve_instance_raw::compute_fn::__rust_begin_short_backtrace
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/plumbing.rs:291:9
  52:     0x7fb15a22442f - <rustc_query_impl[929e0f632e1e6503]::SemiDynamicQueryDispatcher<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>>::compute
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/lib.rs:118:9
  53:     0x7fb15a22442f - rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/execution.rs:419:72
  54:     0x7fb15a22442f - rustc_middle[819d2bc78167edce]::ty::context::tls::enter_context::<rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:59:9
  55:     0x7fb15a22442f - <std[ea40d4953e10a92]::thread::local::LocalKey<core[bb7dad58502812ca]::cell::Cell<*const ()>>>::try_with::<rustc_middle[819d2bc78167edce]::ty::context::tls::enter_context<rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/thread/local.rs:513:12
  56:     0x7fb15a22442f - <std[ea40d4953e10a92]::thread::local::LocalKey<core[bb7dad58502812ca]::cell::Cell<*const ()>>>::with::<rustc_middle[819d2bc78167edce]::ty::context::tls::enter_context<rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/thread/local.rs:477:20
  57:     0x7fb15a22442f - rustc_middle[819d2bc78167edce]::ty::context::tls::enter_context::<rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:56:9
  58:     0x7fb15a22442f - <rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query::<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/plumbing.rs:116:13
  59:     0x7fb15a22442f - rustc_middle[819d2bc78167edce]::ty::context::tls::with_related_context::<<rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:111:9
  60:     0x7fb15a22442f - rustc_middle[819d2bc78167edce]::ty::context::tls::with_context::<rustc_middle[819d2bc78167edce]::ty::context::tls::with_related_context<<rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:89:36
  61:     0x7fb15a22442f - rustc_middle[819d2bc78167edce]::ty::context::tls::with_context_opt::<rustc_middle[819d2bc78167edce]::ty::context::tls::with_context<rustc_middle[819d2bc78167edce]::ty::context::tls::with_related_context<<rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:78:18
  62:     0x7fb15a22442f - rustc_middle[819d2bc78167edce]::ty::context::tls::with_context::<rustc_middle[819d2bc78167edce]::ty::context::tls::with_related_context<<rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:89:5
  63:     0x7fb15a22442f - rustc_middle[819d2bc78167edce]::ty::context::tls::with_related_context::<<rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>::{closure#0}, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_middle/src/ty/context/tls.rs:102:5
  64:     0x7fb15a22442f - <rustc_query_impl[929e0f632e1e6503]::plumbing::QueryCtxt>::start_query::<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>, rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/plumbing.rs:100:9
  65:     0x7fb15a22442f - rustc_query_impl[929e0f632e1e6503]::execution::execute_job_non_incr::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/execution.rs:419:22
  66:     0x7fb15a22442f - rustc_query_impl[929e0f632e1e6503]::execution::execute_job::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}, false>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/execution.rs:357:9
  67:     0x7fb15a22442f - rustc_query_impl[929e0f632e1e6503]::execution::try_execute_query::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}, false>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/execution.rs:309:13
  68:     0x7fb15a402668 - rustc_query_impl[929e0f632e1e6503]::execution::get_query_non_incr::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/execution.rs:635:32
  69:     0x7fb15a402668 - stacker[eb18d1edceed2a6d]::maybe_grow::<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>, rustc_query_impl[929e0f632e1e6503]::execution::get_query_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>
                               at /rust/deps/stacker-0.1.21/src/lib.rs:57:9
  70:     0x7fb15a402668 - rustc_data_structures[7183104b42db2a01]::stack::ensure_sufficient_stack::<rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>, rustc_query_impl[929e0f632e1e6503]::execution::get_query_non_incr<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>::{closure#0}>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_data_structures/src/stack.rs:21:5
  71:     0x7fb15a402668 - rustc_query_impl[929e0f632e1e6503]::execution::get_query_non_incr::<rustc_query_system[59bf75aa09544ef4]::query::caches::DefaultCache<rustc_middle[819d2bc78167edce]::ty::PseudoCanonicalInput<(rustc_span[24985bab6c5bb996]::def_id::DefId, &rustc_middle[819d2bc78167edce]::ty::list::RawList<(), rustc_middle[819d2bc78167edce]::ty::generic_args::GenericArg>)>, rustc_middle[819d2bc78167edce]::query::erase::ErasedData<[u8; 32usize]>>, {rustc_query_impl[929e0f632e1e6503]::QueryFlags { is_anon: false, is_depth_limit: false, is_feedable: false }}>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/execution.rs:635:5
  72:     0x7fb15a402668 - rustc_query_impl[929e0f632e1e6503]::query_impl::resolve_instance_raw::get_query_non_incr::__rust_end_short_backtrace
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/compiler/rustc_query_impl/src/plumbing.rs:625:26
  
...


 340:     0x7fb157ef6291 - <core[bb7dad58502812ca]::panic::unwind_safe::AssertUnwindSafe<std[ea40d4953e10a92]::thread::lifecycle::spawn_unchecked<rustc_interface[656ed1699516c13b]::util::run_in_thread_with_globals<rustc_interface[656ed1699516c13b]::util::run_in_thread_pool_with_globals<rustc_interface[656ed1699516c13b]::interface::run_compiler<(), rustc_driver_impl[d8723f92f8a4b34d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}> as core[bb7dad58502812ca]::ops::function::FnOnce<()>>::call_once
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/core/src/panic/unwind_safe.rs:274:9
 341:     0x7fb157ef6291 - std[ea40d4953e10a92]::panicking::catch_unwind::do_call::<core[bb7dad58502812ca]::panic::unwind_safe::AssertUnwindSafe<std[ea40d4953e10a92]::thread::lifecycle::spawn_unchecked<rustc_interface[656ed1699516c13b]::util::run_in_thread_with_globals<rustc_interface[656ed1699516c13b]::util::run_in_thread_pool_with_globals<rustc_interface[656ed1699516c13b]::interface::run_compiler<(), rustc_driver_impl[d8723f92f8a4b34d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>, ()>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/panicking.rs:581:40
 342:     0x7fb157ef6291 - std[ea40d4953e10a92]::panicking::catch_unwind::<(), core[bb7dad58502812ca]::panic::unwind_safe::AssertUnwindSafe<std[ea40d4953e10a92]::thread::lifecycle::spawn_unchecked<rustc_interface[656ed1699516c13b]::util::run_in_thread_with_globals<rustc_interface[656ed1699516c13b]::util::run_in_thread_pool_with_globals<rustc_interface[656ed1699516c13b]::interface::run_compiler<(), rustc_driver_impl[d8723f92f8a4b34d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/panicking.rs:544:19
 343:     0x7fb157ef6291 - std[ea40d4953e10a92]::panic::catch_unwind::<core[bb7dad58502812ca]::panic::unwind_safe::AssertUnwindSafe<std[ea40d4953e10a92]::thread::lifecycle::spawn_unchecked<rustc_interface[656ed1699516c13b]::util::run_in_thread_with_globals<rustc_interface[656ed1699516c13b]::util::run_in_thread_pool_with_globals<rustc_interface[656ed1699516c13b]::interface::run_compiler<(), rustc_driver_impl[d8723f92f8a4b34d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>, ()>
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/panic.rs:359:14
 344:     0x7fb157ef6291 - std[ea40d4953e10a92]::thread::lifecycle::spawn_unchecked::<rustc_interface[656ed1699516c13b]::util::run_in_thread_with_globals<rustc_interface[656ed1699516c13b]::util::run_in_thread_pool_with_globals<rustc_interface[656ed1699516c13b]::interface::run_compiler<(), rustc_driver_impl[d8723f92f8a4b34d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/thread/lifecycle.rs:89:26
 345:     0x7fb157ef6291 - <std[ea40d4953e10a92]::thread::lifecycle::spawn_unchecked<rustc_interface[656ed1699516c13b]::util::run_in_thread_with_globals<rustc_interface[656ed1699516c13b]::util::run_in_thread_pool_with_globals<rustc_interface[656ed1699516c13b]::interface::run_compiler<(), rustc_driver_impl[d8723f92f8a4b34d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[bb7dad58502812ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
                               at /rustc-dev/18d13b5332916ffca8eadb9106d54b5b434e9978/library/core/src/ops/function.rs:250:5
 346:     0x7fb15b4713cf - <alloc[d7bc5d2f6630ca9b]::boxed::Box<dyn core[bb7dad58502812ca]::ops::function::FnOnce<(), Output = ()> + core[bb7dad58502812ca]::marker::Send> as core[bb7dad58502812ca]::ops::function::FnOnce<()>>::call_once
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/alloc/src/boxed.rs:2206:9
 347:     0x7fb15b4713cf - <std[ea40d4953e10a92]::sys::thread::unix::Thread>::new::thread_start
                               at /rustc/18d13b5332916ffca8eadb9106d54b5b434e9978/library/std/src/sys/thread/unix.rs:118:17
 348:     0x7fb15509698b - <unknown>
 349:     0x7fb15511a9cc - <unknown>
 350:                0x0 - <unknown>

error: the compiler unexpectedly panicked. This is a bug

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (18d13b533 2026-02-09) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z unstable-options -Z dump-mir-dir=dir

query stack during panic:
#0 [first_method_vtable_slot] finding the slot within the vtable of `dyn Archive<<impl at /tmp/icemaker_global_tempdir.mzjFyh2Rjryy/rustc_testrunner_tmpdir_reporting.vZWKw4gyCwwz/mvce.rs:58:1: 58:20>::get_archives::{opaque#0}, <impl at /tmp/icemaker_global_tempdir.mzjFyh2Rjryy/rustc_testrunner_tmpdir_reporting.vZWKw4gyCwwz/mvce.rs:58:1: 58:20>::get_archives::{opaque#1}>` for the implementation of `Archive`
#1 [resolve_instance_raw] resolving instance `<dyn Archive<<impl at /tmp/icemaker_global_tempdir.mzjFyh2Rjryy/rustc_testrunner_tmpdir_reporting.vZWKw4gyCwwz/mvce.rs:58:1: 58:20>::get_archives::{opaque#0}, <impl at /tmp/icemaker_global_tempdir.mzjFyh2Rjryy/rustc_testrunner_tmpdir_reporting.vZWKw4gyCwwz/mvce.rs:58:1: 58:20>::get_archives::{opaque#1}> as Archive<<impl at /tmp/icemaker_global_tempdir.mzjFyh2Rjryy/rustc_testrunner_tmpdir_reporting.vZWKw4gyCwwz/mvce.rs:58:1: 58:20>::get_archives::{opaque#0}, <impl at /tmp/icemaker_global_tempdir.mzjFyh2Rjryy/rustc_testrunner_tmpdir_reporting.vZWKw4gyCwwz/mvce.rs:58:1: 58:20>::get_archives::{opaque#1}>>::name`
#2 [lint_mod] linting top-level module
#3 [analysis] running analysis passes on crate `mvce`
end of query stack
warning: 5 warnings emitted


Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by compiling the reduced /tmp/im/a.rs reproducer with the reported -Zunstable-options command and confirm the ICE. Then read compiler/rustc_trait_selection/src/traits/vtable.rs around lines 304-316, tracing the vtable trait-reference normalization involved. Done means the reproducer no longer panics and the relevant compiler behavior is covered by an appropriate regression test.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.