Open
Description
auto-reduced (treereduce-rust):
//@compile-flags: -Zvalidate-mir -Zinline-mir=yes
pub trait Trait1 {
type C;
}
struct T1;
impl Trait1 for T1 {
type C = u32;
}
pub trait Callback<T: Trait1>: FnMut(<T as Trait1>::C) {}
impl<T: Trait1, F: FnMut(_: for<'a> fn())> Callback<T> for F {}
pub struct State<T: Trait1> {
callback: Option<Box<dyn Callback<T>>>,
}
impl<T: Trait1> State<T> {
fn new() -> Self {
}
fn test_cb(&mut self, d: <T as Trait1>::C) {
(self.callback.as_mut().unwrap())(d)
}
}
fn main() {
let mut s = State::<T1>::new();
s.test_cb(1);
}
original:
pub trait Trait1 {
type C;
}
struct T1;
impl Trait1 for T1 {
type C = u32;
}
pub trait Callback<T: Trait1>: FnMut(<T as Trait1>::C) {}
impl<T: Trait1, F: FnMut(_: for<'a> fn(Foo<fn(&'a ())>::Assoc))> Callback<T> for F {}
pub struct State<T: Trait1> {
callback: Option<Box<dyn Callback<T>>>,
}
impl<T: Trait1> State<T> {
fn new() -> Self {
Self { callback: None }
}
fn test_cb(&mut self, d: <T as Trait1>::C) {
(self.callback.as_mut().unwrap())(d)
}
}
fn main() {
let mut s = State::<T1>::new();
s.test_cb(1);
}
Version information
rustc 1.89.0-nightly (e7f4317ea 2025-05-23)
binary: rustc
commit-hash: e7f4317ea0e891296163414c6f681ccec976abc3
commit-date: 2025-05-23
host: x86_64-unknown-linux-gnu
release: 1.89.0-nightly
LLVM version: 20.1.5
Command:
/home/matthias/.rustup/toolchains/master/bin/rustc -Zvalidate-mir -Zinline-mir=yes
Program output
error: `Trait(...)` syntax does not support named parameters
--> /tmp/icemaker_global_tempdir.51N8Pv1Rfyuk/rustc_testrunner_tmpdir_reporting.FTA16KBJBkvk/mvce.rs:10:26
|
10 | impl<T: Trait1, F: FnMut(_: for<'a> fn())> Callback<T> for F {}
| ^ help: remove the parameter name
error[E0277]: expected a `FnMut(<T as Trait1>::C)` closure, found `F`
--> /tmp/icemaker_global_tempdir.51N8Pv1Rfyuk/rustc_testrunner_tmpdir_reporting.FTA16KBJBkvk/mvce.rs:10:60
|
10 | impl<T: Trait1, F: FnMut(_: for<'a> fn())> Callback<T> for F {}
| ^ expected an `FnMut(<T as Trait1>::C)` closure, found `F`
|
= note: expected a closure with signature `fn(<T as Trait1>::C)`
found a closure with signature `fn(fn())`
note: required by a bound in `Callback`
--> /tmp/icemaker_global_tempdir.51N8Pv1Rfyuk/rustc_testrunner_tmpdir_reporting.FTA16KBJBkvk/mvce.rs:9:32
|
9 | pub trait Callback<T: Trait1>: FnMut(<T as Trait1>::C) {}
| ^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Callback`
error[E0308]: mismatched types
--> /tmp/icemaker_global_tempdir.51N8Pv1Rfyuk/rustc_testrunner_tmpdir_reporting.FTA16KBJBkvk/mvce.rs:16:17
|
16 | fn new() -> Self {
| --- ^^^^ expected `State<T>`, found `()`
| |
| implicitly returns `()` as its body has no tail or `return` expression
|
= note: expected struct `State<T>`
found unit type `()`
thread 'rustc' panicked at /rustc/e7f4317ea0e891296163414c6f681ccec976abc3/compiler/rustc_next_trait_solver/src/solve/assembly/structural_traits.rs:954:13:
could not replace AliasTerm { args: [dyn [Binder { value: Trait(Callback<T1>), bound_vars: [] }, Binder { value: Projection(ExistentialProjection { def_id: DefId(2:4014 ~ core[f3ed]::ops::function::FnOnce::Output), args: [(u32,)], term: Term::Ty(()), use_existential_projection_new_instead: () }), bound_vars: [] }] + '?0, (Binder { value: fn(), bound_vars: [Region(BrNamed(DefId(0:14 ~ mvce[38e2]::{impl#1}::'a), 'a))] },)], def_id: DefId(2:4014 ~ core[f3ed]::ops::function::FnOnce::Output), .. } with term from from dyn [Binder { value: Trait(Callback<T1>), bound_vars: [] }, Binder { value: Projection(ExistentialProjection { def_id: DefId(2:4014 ~ core[f3ed]::ops::function::FnOnce::Output), args: [(u32,)], term: Term::Ty(()), use_existential_projection_new_instead: () }), bound_vars: [] }] + '?0
stack backtrace:
0: 0x73acff95ba13 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h2a3f8d60bee689b9
1: 0x73ad00005837 - core::fmt::write::h58e167cfdc2f402a
2: 0x73ad01056b11 - std::io::Write::write_fmt::h19b6d358e9f7bc6f
3: 0x73acff95b872 - std::sys::backtrace::BacktraceLock::print::hf88746edecc96cb6
4: 0x73acff95f46a - std::panicking::default_hook::{{closure}}::h141395bc5884aac6
5: 0x73acff95efef - std::panicking::default_hook::h13b4cfe65fb7a198
6: 0x73acfe989223 - std[5c3905999d2041e]::panicking::update_hook::<alloc[dccd670adbe0b58b]::boxed::Box<rustc_driver_impl[e01594ba05201ce5]::install_ice_hook::{closure#1}>>::{closure#0}
7: 0x73acff95fce3 - std::panicking::rust_panic_with_hook::h656a57910e5572cf
8: 0x73acff95f9da - std::panicking::begin_panic_handler::{{closure}}::h73ca0ca4c5b7bd2a
9: 0x73acff95bed9 - std::sys::backtrace::__rust_end_short_backtrace::h667db0422d5c6d53
10: 0x73acff95f69d - __rustc[ae66d6bb510d9cb]::rust_begin_unwind
11: 0x73acfc288a20 - core::panicking::panic_fmt::h6a9f043abd1139ee
12: 0x73ad00db7d49 - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::assembly::structural_traits::ReplaceProjectionWith<rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt, rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate> as rustc_type_ir[4f00319c9fdbe1ac]::fold::FallibleTypeFolder<rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::try_fold_ty
13: 0x73ad00db6c05 - <&rustc_middle[4165c0e0de245e7]::ty::list::RawList<(), rustc_middle[4165c0e0de245e7]::ty::generic_args::GenericArg> as rustc_type_ir[4f00319c9fdbe1ac]::fold::TypeFoldable<rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::assembly::structural_traits::ReplaceProjectionWith<rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt, rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate>>
14: 0x73ad00db5fbb - rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::assembly::structural_traits::predicates_for_object_candidate::<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>
15: 0x73ad00db2300 - <rustc_type_ir[4f00319c9fdbe1ac]::predicate::TraitPredicate<rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt> as rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::assembly::GoalKind<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::probe_and_consider_object_bound_candidate
16: 0x73ad00daa422 - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::assemble_and_evaluate_candidates::<rustc_type_ir[4f00319c9fdbe1ac]::predicate::TraitPredicate<rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>
17: 0x73ad00cce17a - <rustc_type_ir[4f00319c9fdbe1ac]::search_graph::SearchGraph<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate>, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::with_new_goal::<<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_canonical_goal::{closure#0}::{closure#0}::{closure#0}>::{closure#2}
18: 0x73ad00cdc8f9 - <rustc_type_ir[4f00319c9fdbe1ac]::search_graph::SearchGraph<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate>, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::with_new_goal::<<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_canonical_goal::{closure#0}::{closure#0}::{closure#0}>
19: 0x73ad00cda548 - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_goal_raw
20: 0x73ad00cd2092 - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_added_goals_step
21: 0x73ad00ccdd73 - <rustc_type_ir[4f00319c9fdbe1ac]::search_graph::SearchGraph<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate>, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::with_new_goal::<<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_canonical_goal::{closure#0}::{closure#0}::{closure#0}>::{closure#2}
22: 0x73ad00cdc8f9 - <rustc_type_ir[4f00319c9fdbe1ac]::search_graph::SearchGraph<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate>, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::with_new_goal::<<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_canonical_goal::{closure#0}::{closure#0}::{closure#0}>
23: 0x73ad00cda548 - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_goal_raw
24: 0x73ad00cd977e - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_goal
25: 0x73ad00cd1e80 - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_added_goals_step
26: 0x73ad00cd2b06 - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_added_goals_and_make_canonical_response::{closure#0}
27: 0x73ad00ccec64 - <rustc_type_ir[4f00319c9fdbe1ac]::search_graph::SearchGraph<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate>, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::with_new_goal::<<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_canonical_goal::{closure#0}::{closure#0}::{closure#0}>::{closure#2}
28: 0x73ad00cdc8f9 - <rustc_type_ir[4f00319c9fdbe1ac]::search_graph::SearchGraph<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate>, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::with_new_goal::<<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_canonical_goal::{closure#0}::{closure#0}::{closure#0}>
29: 0x73ad00cda548 - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_goal_raw
30: 0x73ad00cd977e - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_goal
31: 0x73ad00cd1e80 - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_added_goals_step
32: 0x73ad00cd2b06 - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_added_goals_and_make_canonical_response::{closure#0}
33: 0x73ad00da6c51 - <rustc_type_ir[4f00319c9fdbe1ac]::predicate::TraitPredicate<rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt> as rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::assembly::GoalKind<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::consider_impl_candidate
34: 0x73ad00dab19c - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::assemble_and_evaluate_candidates::<rustc_type_ir[4f00319c9fdbe1ac]::predicate::TraitPredicate<rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>
35: 0x73ad00ccd898 - <rustc_type_ir[4f00319c9fdbe1ac]::search_graph::SearchGraph<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate>, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::with_new_goal::<<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_canonical_goal::{closure#0}::{closure#0}::{closure#0}>::{closure#2}
36: 0x73ad00cdc8f9 - <rustc_type_ir[4f00319c9fdbe1ac]::search_graph::SearchGraph<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate>, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::with_new_goal::<<rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_canonical_goal::{closure#0}::{closure#0}::{closure#0}>
37: 0x73ad00cda548 - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_goal_raw
38: 0x73ad00cd977e - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::evaluate_goal
39: 0x73ad00cc8c33 - <rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate, rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>>::enter_root::<core[f3ed2538550779b8]::result::Result<(rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::HasChanged, rustc_type_ir[4f00319c9fdbe1ac]::solve::Certainty), rustc_type_ir[4f00319c9fdbe1ac]::solve::NoSolution>, <rustc_trait_selection[30842f848ec3b21a]::solve::delegate::SolverDelegate as rustc_next_trait_solver[d2f4cdf1d96b0257]::solve::eval_ctxt::SolverDelegateEvalExt>::evaluate_root_goal::{closure#0}>
40: 0x73ad00cc569c - rustc_trait_selection[30842f848ec3b21a]::traits::impossible_predicates
41: 0x73ad00cc411d - rustc_trait_selection[30842f848ec3b21a]::traits::instantiate_and_check_impossible_predicates
42: 0x73ad00cc3f76 - rustc_query_impl[78c0e453f321eaa5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[78c0e453f321eaa5]::query_impl::instantiate_and_check_impossible_predicates::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4165c0e0de245e7]::query::erase::Erased<[u8; 1usize]>>
43: 0x73ad00cc3f5b - <rustc_query_impl[78c0e453f321eaa5]::query_impl::instantiate_and_check_impossible_predicates::dynamic_query::{closure#2} as core[f3ed2538550779b8]::ops::function::FnOnce<(rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt, (rustc_span[964bd18e4160759d]::def_id::DefId, &rustc_middle[4165c0e0de245e7]::ty::list::RawList<(), rustc_middle[4165c0e0de245e7]::ty::generic_args::GenericArg>))>>::call_once
44: 0x73ad00cc35a8 - rustc_query_system[43446dbc2dc41a92]::query::plumbing::try_execute_query::<rustc_query_impl[78c0e453f321eaa5]::DynamicConfig<rustc_query_system[43446dbc2dc41a92]::query::caches::DefaultCache<(rustc_span[964bd18e4160759d]::def_id::DefId, &rustc_middle[4165c0e0de245e7]::ty::list::RawList<(), rustc_middle[4165c0e0de245e7]::ty::generic_args::GenericArg>), rustc_middle[4165c0e0de245e7]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[78c0e453f321eaa5]::plumbing::QueryCtxt, false>
45: 0x73ad00cc330b - rustc_query_impl[78c0e453f321eaa5]::query_impl::instantiate_and_check_impossible_predicates::get_query_non_incr::__rust_end_short_backtrace
46: 0x73ad00fbe204 - rustc_trait_selection[30842f848ec3b21a]::traits::vtable::first_method_vtable_slot
47: 0x73ad00fbe036 - rustc_query_impl[78c0e453f321eaa5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[78c0e453f321eaa5]::query_impl::first_method_vtable_slot::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4165c0e0de245e7]::query::erase::Erased<[u8; 8usize]>>
48: 0x73ad00fbe01b - <rustc_query_impl[78c0e453f321eaa5]::query_impl::first_method_vtable_slot::dynamic_query::{closure#2} as core[f3ed2538550779b8]::ops::function::FnOnce<(rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt, rustc_type_ir[4f00319c9fdbe1ac]::predicate::TraitRef<rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>)>>::call_once
49: 0x73ad00fbd4b4 - rustc_query_system[43446dbc2dc41a92]::query::plumbing::try_execute_query::<rustc_query_impl[78c0e453f321eaa5]::DynamicConfig<rustc_query_system[43446dbc2dc41a92]::query::caches::DefaultCache<rustc_type_ir[4f00319c9fdbe1ac]::predicate::TraitRef<rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>, rustc_middle[4165c0e0de245e7]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[78c0e453f321eaa5]::plumbing::QueryCtxt, false>
50: 0x73ad00fbd217 - rustc_query_impl[78c0e453f321eaa5]::query_impl::first_method_vtable_slot::get_query_non_incr::__rust_end_short_backtrace
51: 0x73ad008a89db - rustc_ty_utils[e6d0d78672e8d5a0]::instance::resolve_instance_raw
52: 0x73ad008a5272 - rustc_query_impl[78c0e453f321eaa5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[78c0e453f321eaa5]::query_impl::resolve_instance_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4165c0e0de245e7]::query::erase::Erased<[u8; 32usize]>>
53: 0x73ad008a4367 - rustc_query_system[43446dbc2dc41a92]::query::plumbing::try_execute_query::<rustc_query_impl[78c0e453f321eaa5]::DynamicConfig<rustc_query_system[43446dbc2dc41a92]::query::caches::DefaultCache<rustc_middle[4165c0e0de245e7]::ty::PseudoCanonicalInput<(rustc_span[964bd18e4160759d]::def_id::DefId, &rustc_middle[4165c0e0de245e7]::ty::list::RawList<(), rustc_middle[4165c0e0de245e7]::ty::generic_args::GenericArg>)>, rustc_middle[4165c0e0de245e7]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[78c0e453f321eaa5]::plumbing::QueryCtxt, false>
54: 0x73ad008a3fb4 - rustc_query_impl[78c0e453f321eaa5]::query_impl::resolve_instance_raw::get_query_non_incr::__rust_end_short_backtrace
55: 0x73ad00088688 - <rustc_middle[4165c0e0de245e7]::ty::instance::Instance>::try_resolve
56: 0x73ad0100edd0 - rustc_mir_transform[c73a335e8df8c40]::inline::cycle::mir_callgraph_reachable::process
57: 0x73ad0100ea70 - rustc_mir_transform[c73a335e8df8c40]::inline::cycle::mir_callgraph_reachable::process
58: 0x73ad0100de04 - rustc_mir_transform[c73a335e8df8c40]::inline::cycle::mir_callgraph_reachable
59: 0x73ad0100dc29 - rustc_query_impl[78c0e453f321eaa5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[78c0e453f321eaa5]::query_impl::mir_callgraph_reachable::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4165c0e0de245e7]::query::erase::Erased<[u8; 1usize]>>
60: 0x73ad0100dbeb - <rustc_query_impl[78c0e453f321eaa5]::query_impl::mir_callgraph_reachable::dynamic_query::{closure#2} as core[f3ed2538550779b8]::ops::function::FnOnce<(rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt, (rustc_middle[4165c0e0de245e7]::ty::instance::Instance, rustc_span[964bd18e4160759d]::def_id::LocalDefId))>>::call_once
61: 0x73ad008851ac - rustc_query_system[43446dbc2dc41a92]::query::plumbing::try_execute_query::<rustc_query_impl[78c0e453f321eaa5]::DynamicConfig<rustc_query_system[43446dbc2dc41a92]::query::caches::DefaultCache<(rustc_middle[4165c0e0de245e7]::ty::instance::Instance, rustc_span[964bd18e4160759d]::def_id::LocalDefId), rustc_middle[4165c0e0de245e7]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[78c0e453f321eaa5]::plumbing::QueryCtxt, false>
62: 0x73ad00884ea8 - rustc_query_impl[78c0e453f321eaa5]::query_impl::mir_callgraph_reachable::get_query_non_incr::__rust_end_short_backtrace
63: 0x73ad00b8509d - rustc_mir_transform[c73a335e8df8c40]::inline::process_blocks::<rustc_mir_transform[c73a335e8df8c40]::inline::NormalInliner>
64: 0x73ad0020745e - <rustc_mir_transform[c73a335e8df8c40]::inline::Inline as rustc_mir_transform[c73a335e8df8c40]::pass_manager::MirPass>::run_pass
65: 0x73ad000036fd - rustc_mir_transform[c73a335e8df8c40]::pass_manager::run_passes_inner
66: 0x73ad00bfb5cb - rustc_mir_transform[c73a335e8df8c40]::run_optimization_passes
67: 0x73ad00bfd679 - rustc_mir_transform[c73a335e8df8c40]::optimized_mir
68: 0x73ad00bfd1fb - rustc_query_impl[78c0e453f321eaa5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[78c0e453f321eaa5]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4165c0e0de245e7]::query::erase::Erased<[u8; 8usize]>>
69: 0x73ad0037a07f - rustc_query_system[43446dbc2dc41a92]::query::plumbing::try_execute_query::<rustc_query_impl[78c0e453f321eaa5]::DynamicConfig<rustc_query_system[43446dbc2dc41a92]::query::caches::DefIdCache<rustc_middle[4165c0e0de245e7]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[78c0e453f321eaa5]::plumbing::QueryCtxt, false>
70: 0x73ad003794a2 - rustc_query_impl[78c0e453f321eaa5]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
71: 0x73ad008807f3 - <rustc_middle[4165c0e0de245e7]::ty::context::TyCtxt>::instance_mir
72: 0x73ad002172f6 - rustc_interface[81afc5d3df8537fb]::passes::run_required_analyses
73: 0x73ad00ebd1de - rustc_interface[81afc5d3df8537fb]::passes::analysis
74: 0x73ad00ebd1b5 - rustc_query_impl[78c0e453f321eaa5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[78c0e453f321eaa5]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4165c0e0de245e7]::query::erase::Erased<[u8; 0usize]>>
75: 0x73ad00ebf2ba - rustc_query_system[43446dbc2dc41a92]::query::plumbing::try_execute_query::<rustc_query_impl[78c0e453f321eaa5]::DynamicConfig<rustc_query_system[43446dbc2dc41a92]::query::caches::SingleCache<rustc_middle[4165c0e0de245e7]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[78c0e453f321eaa5]::plumbing::QueryCtxt, false>
76: 0x73ad00ebef8f - rustc_query_impl[78c0e453f321eaa5]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
77: 0x73ad01077ac7 - rustc_interface[81afc5d3df8537fb]::passes::create_and_enter_global_ctxt::<core[f3ed2538550779b8]::option::Option<rustc_interface[81afc5d3df8537fb]::queries::Linker>, rustc_driver_impl[e01594ba05201ce5]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
78: 0x73ad01090b8f - rustc_interface[81afc5d3df8537fb]::interface::run_compiler::<(), rustc_driver_impl[e01594ba05201ce5]::run_compiler::{closure#0}>::{closure#1}
79: 0x73ad01050c46 - std[5c3905999d2041e]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[81afc5d3df8537fb]::util::run_in_thread_with_globals<rustc_interface[81afc5d3df8537fb]::util::run_in_thread_pool_with_globals<rustc_interface[81afc5d3df8537fb]::interface::run_compiler<(), rustc_driver_impl[e01594ba05201ce5]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
80: 0x73ad010508eb - <<std[5c3905999d2041e]::thread::Builder>::spawn_unchecked_<rustc_interface[81afc5d3df8537fb]::util::run_in_thread_with_globals<rustc_interface[81afc5d3df8537fb]::util::run_in_thread_pool_with_globals<rustc_interface[81afc5d3df8537fb]::interface::run_compiler<(), rustc_driver_impl[e01594ba05201ce5]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[f3ed2538550779b8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
81: 0x73ad01051c3d - std::sys::pal::unix::thread::Thread::new::thread_start::h6bab1af0ef1eac4e
82: 0x73acfaea57eb - <unknown>
83: 0x73acfaf2918c - <unknown>
84: 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.89.0-nightly (e7f4317ea 2025-05-23) running on x86_64-unknown-linux-gnu
note: compiler flags: -Z validate-mir -Z inline-mir=yes -Z dump-mir-dir=dir
query stack during panic:
#0 [instantiate_and_check_impossible_predicates] checking impossible instantiated predicates: `Callback`
#1 [first_method_vtable_slot] finding the slot within the vtable of `dyn Callback<T1, Output = ()>` for the implementation of `core::ops::function::FnMut`
#2 [resolve_instance_raw] resolving instance `<dyn Callback<T1, Output = ()> as core::ops::function::FnMut<(u32,)>>::call_mut`
#3 [mir_callgraph_reachable] computing if `<impl at /tmp/icemaker_global_tempdir.51N8Pv1Rfyuk/rustc_testrunner_tmpdir_reporting.FTA16KBJBkvk/mvce.rs:15:1: 15:25>::test_cb` (transitively) calls `main`
#4 [optimized_mir] optimizing MIR for `main`
#5 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 3 previous errors
Some errors have detailed explanations: E0277, E0308.
For more information about an error, try `rustc --explain E0277`.
Metadata
Metadata
Assignees
Labels
Unstable option: Enable MIR inliningUnstable option: MIR validationCategory: This is a bug.Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Relevant to the compiler team, which will review and decide on the PR/issue.The Rustc Trait System Refactor Initiative (-Znext-solver)