[ICE]: `vtable trait ref should be normalized`
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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