Skip to content

ICE: PointeeSized is removed during lowering #149277

Description

@matthiaskrgr

auto-reduced (treereduce-rust):

pub trait PointeeSized {}

pub trait PointeeSizedTr: PointeeSized {}

impl<T: ?Sized> PointeeSizedTr for T {}

original:

#![feature(sized_hierarchy)]

use std::marker::{MetaSized, PointeeSized};

pub trait PointeeSized {}

impl<T: Sized> SizedTr for T {}

pub trait NegSizedTr {}

impl<PointeeSizedTr: ?Sized> NegSizedTr for T {}

pub trait MetaSizedTr {}

impl<T: MetaSized> MetaSizedTr for T {}

pub trait PointeeSizedTr: PointeeSized {}

impl<T: ?Sized> PointeeSizedTr for T {}

Version information

rustc 1.93.0-nightly (42ec52bab 2025-11-24)
binary: rustc
commit-hash: 42ec52babac2cbf2bb2b9d794f980cbcb3ebe413
commit-date: 2025-11-24
host: x86_64-unknown-linux-gnu
release: 1.93.0-nightly
LLVM version: 21.1.5

Possibly related line of code:

obligation.predicate.self_ty().skip_binder(),
&mut candidates,
SizedTraitKind::MetaSized,
);
}
Some(LangItem::PointeeSized) => {
bug!("`PointeeSized` is removed during lowering");
}
Some(LangItem::Unsize) => {
self.assemble_candidates_for_unsizing(obligation, &mut candidates);
}
Some(LangItem::Destruct) => {
self.assemble_const_destruct_candidates(obligation, &mut candidates);

Command:
/home/matthias/.rustup/toolchains/master/bin/rustc

Program output

error[E0601]: `main` function not found in crate `mvce`
 --> /tmp/icemaker_global_tempdir.E1iAZOKI498s/rustc_testrunner_tmpdir_reporting.gg86tttSOftf/mvce.rs:5:40
  |
5 | impl<T: ?Sized> PointeeSizedTr for T {}
  |                                        ^ consider adding a `main` function to `/tmp/icemaker_global_tempdir.E1iAZOKI498s/rustc_testrunner_tmpdir_reporting.gg86tttSOftf/mvce.rs`

error: internal compiler error: compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs:106:21: `PointeeSized` is removed during lowering


thread 'rustc' (1226426) panicked at compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs:106:21:
Box<dyn Any>
stack backtrace:
   0:     0x7fb55688d553 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hcefe25dcc357529c
   1:     0x7fb5570119c8 - core::fmt::write::h58042ad069389f48
   2:     0x7fb556843086 - std::io::Write::write_fmt::haedd60b1c03424bc
   3:     0x7fb55685a23c - std::panicking::default_hook::{{closure}}::h0f81e45c055762c8
   4:     0x7fb556859d93 - std::panicking::default_hook::ha2106cf6e2631e9a
   5:     0x7fb5558de637 - std[7af9aa63600b6cc4]::panicking::update_hook::<alloc[3b13acf2adde86fb]::boxed::Box<rustc_driver_impl[8c06068e37802d29]::install_ice_hook::{closure#1}>>::{closure#0}
   6:     0x7fb55685a5f2 - std::panicking::panic_with_hook::h2208d79b8879287e
   7:     0x7fb55591ac51 - std[7af9aa63600b6cc4]::panicking::begin_panic::<rustc_errors[e7e9c204d68926f5]::ExplicitBug>::{closure#0}
   8:     0x7fb55590b406 - std[7af9aa63600b6cc4]::sys::backtrace::__rust_end_short_backtrace::<std[7af9aa63600b6cc4]::panicking::begin_panic<rustc_errors[e7e9c204d68926f5]::ExplicitBug>::{closure#0}, !>
   9:     0x7fb55590b1ba - std[7af9aa63600b6cc4]::panicking::begin_panic::<rustc_errors[e7e9c204d68926f5]::ExplicitBug>
  10:     0x7fb5559384c1 - <rustc_errors[e7e9c204d68926f5]::diagnostic::BugAbort as rustc_errors[e7e9c204d68926f5]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
  11:     0x7fb555e99549 - rustc_middle[66cdd804fd9051a9]::util::bug::opt_span_bug_fmt::<rustc_span[7601f154e0248cb3]::span_encoding::Span>::{closure#0}
  12:     0x7fb555e996d2 - rustc_middle[66cdd804fd9051a9]::ty::context::tls::with_opt::<rustc_middle[66cdd804fd9051a9]::util::bug::opt_span_bug_fmt<rustc_span[7601f154e0248cb3]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  13:     0x7fb555e8ad8b - rustc_middle[66cdd804fd9051a9]::ty::context::tls::with_context_opt::<rustc_middle[66cdd804fd9051a9]::ty::context::tls::with_opt<rustc_middle[66cdd804fd9051a9]::util::bug::opt_span_bug_fmt<rustc_span[7601f154e0248cb3]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  14:     0x7fb554206c14 - rustc_middle[66cdd804fd9051a9]::util::bug::bug_fmt
  15:     0x7fb557618161 - <rustc_trait_selection[97323b331e4e1d06]::traits::select::SelectionContext>::assemble_candidates
  16:     0x7fb557605948 - <rustc_trait_selection[97323b331e4e1d06]::traits::select::SelectionContext>::candidate_from_obligation::{closure#0}
  17:     0x7fb5575f6ad0 - <rustc_trait_selection[97323b331e4e1d06]::traits::select::SelectionContext>::evaluate_trait_predicate_recursively
  18:     0x7fb5575ddeaa - <rustc_trait_selection[97323b331e4e1d06]::traits::select::SelectionContext>::evaluate_root_obligation
  19:     0x7fb5575dbfec - rustc_traits[7fd61232396c5c1b]::evaluate_obligation::evaluate_obligation
  20:     0x7fb5575db929 - rustc_query_impl[f264ab84298e098b]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f264ab84298e098b]::query_impl::evaluate_obligation::dynamic_query::{closure#2}::{closure#0}, rustc_middle[66cdd804fd9051a9]::query::erase::Erased<[u8; 2usize]>>
  21:     0x7fb5575dab48 - rustc_query_system[4ac9b4b17ee4bb56]::query::plumbing::try_execute_query::<rustc_query_impl[f264ab84298e098b]::DynamicConfig<rustc_query_system[4ac9b4b17ee4bb56]::query::caches::DefaultCache<rustc_type_ir[b662f1fa04026af3]::canonical::CanonicalQueryInput<rustc_middle[66cdd804fd9051a9]::ty::context::TyCtxt, rustc_middle[66cdd804fd9051a9]::ty::ParamEnvAnd<rustc_middle[66cdd804fd9051a9]::ty::predicate::Predicate>>, rustc_middle[66cdd804fd9051a9]::query::erase::Erased<[u8; 2usize]>>, false, false, false>, rustc_query_impl[f264ab84298e098b]::plumbing::QueryCtxt, false>
  22:     0x7fb5575da79d - rustc_query_impl[f264ab84298e098b]::query_impl::evaluate_obligation::get_query_non_incr::__rust_end_short_backtrace
  23:     0x7fb5576a4f34 - <rustc_infer[aeb4fbc9a436b6c2]::infer::InferCtxt as rustc_trait_selection[97323b331e4e1d06]::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
  24:     0x7fb55661eba8 - <core[1115dd42e5ae30ce]::iter::adapters::flatten::FlattenCompat<_, _> as core[1115dd42e5ae30ce]::iter::traits::iterator::Iterator>::try_fold::flatten::<core[1115dd42e5ae30ce]::iter::adapters::copied::Copied<core[1115dd42e5ae30ce]::slice::iter::Iter<rustc_span[7601f154e0248cb3]::def_id::DefId>>, (), core[1115dd42e5ae30ce]::ops::control_flow::ControlFlow<rustc_span[7601f154e0248cb3]::def_id::DefId>, core[1115dd42e5ae30ce]::iter::traits::iterator::Iterator::find::check<rustc_span[7601f154e0248cb3]::def_id::DefId, <rustc_trait_selection[97323b331e4e1d06]::error_reporting::TypeErrCtxt>::check_same_name_different_path::{closure#1}>::{closure#0}>::{closure#0}
  25:     0x7fb55661d63c - core[1115dd42e5ae30ce]::iter::adapters::map::map_try_fold::<rustc_span[7601f154e0248cb3]::def_id::CrateNum, core[1115dd42e5ae30ce]::iter::adapters::copied::Copied<core[1115dd42e5ae30ce]::slice::iter::Iter<rustc_span[7601f154e0248cb3]::def_id::DefId>>, (), core[1115dd42e5ae30ce]::ops::control_flow::ControlFlow<rustc_span[7601f154e0248cb3]::def_id::DefId>, <rustc_middle[66cdd804fd9051a9]::ty::context::TyCtxt>::all_traits_including_private::{closure#0}, <core[1115dd42e5ae30ce]::iter::adapters::flatten::FlattenCompat<_, _>>::iter_try_fold::flatten<core[1115dd42e5ae30ce]::iter::adapters::copied::Copied<core[1115dd42e5ae30ce]::slice::iter::Iter<rustc_span[7601f154e0248cb3]::def_id::DefId>>, (), core[1115dd42e5ae30ce]::ops::control_flow::ControlFlow<rustc_span[7601f154e0248cb3]::def_id::DefId>, <core[1115dd42e5ae30ce]::iter::adapters::flatten::FlattenCompat<_, _> as core[1115dd42e5ae30ce]::iter::traits::iterator::Iterator>::try_fold::flatten<core[1115dd42e5ae30ce]::iter::adapters::copied::Copied<core[1115dd42e5ae30ce]::slice::iter::Iter<rustc_span[7601f154e0248cb3]::def_id::DefId>>, (), core[1115dd42e5ae30ce]::ops::control_flow::ControlFlow<rustc_span[7601f154e0248cb3]::def_id::DefId>, core[1115dd42e5ae30ce]::iter::traits::iterator::Iterator::find::check<rustc_span[7601f154e0248cb3]::def_id::DefId, <rustc_trait_selection[97323b331e4e1d06]::error_reporting::TypeErrCtxt>::check_same_name_different_path::{closure#1}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}
  26:     0x7fb55667f604 - <rustc_trait_selection[97323b331e4e1d06]::error_reporting::TypeErrCtxt>::note_different_trait_with_same_name
  27:     0x7fb556660ca0 - <rustc_trait_selection[97323b331e4e1d06]::error_reporting::TypeErrCtxt>::report_selection_error
  28:     0x7fb5552a5f91 - <rustc_trait_selection[97323b331e4e1d06]::error_reporting::TypeErrCtxt>::report_fulfillment_errors
  29:     0x7fb55796fff2 - rustc_hir_analysis[b41c4254e53e4ce1]::check::wfcheck::check_impl
  30:     0x7fb557779e2c - rustc_hir_analysis[b41c4254e53e4ce1]::check::check::check_item_type
  31:     0x7fb55777741c - rustc_hir_analysis[b41c4254e53e4ce1]::check::wfcheck::check_well_formed
  32:     0x7fb5577773e1 - rustc_query_impl[f264ab84298e098b]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f264ab84298e098b]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[66cdd804fd9051a9]::query::erase::Erased<[u8; 1usize]>>
  33:     0x7fb557776cac - rustc_query_system[4ac9b4b17ee4bb56]::query::plumbing::try_execute_query::<rustc_query_impl[f264ab84298e098b]::DynamicConfig<rustc_data_structures[b54ea2a1d75f8c18]::vec_cache::VecCache<rustc_span[7601f154e0248cb3]::def_id::LocalDefId, rustc_middle[66cdd804fd9051a9]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[4ac9b4b17ee4bb56]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f264ab84298e098b]::plumbing::QueryCtxt, false>
  34:     0x7fb5577767c2 - rustc_query_impl[f264ab84298e098b]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  35:     0x7fb557773eb0 - rustc_hir_analysis[b41c4254e53e4ce1]::check::wfcheck::check_type_wf
  36:     0x7fb557773d9d - rustc_query_impl[f264ab84298e098b]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f264ab84298e098b]::query_impl::check_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[66cdd804fd9051a9]::query::erase::Erased<[u8; 1usize]>>
  37:     0x7fb5581179d4 - rustc_query_system[4ac9b4b17ee4bb56]::query::plumbing::try_execute_query::<rustc_query_impl[f264ab84298e098b]::DynamicConfig<rustc_query_system[4ac9b4b17ee4bb56]::query::caches::SingleCache<rustc_middle[66cdd804fd9051a9]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[f264ab84298e098b]::plumbing::QueryCtxt, false>
  38:     0x7fb5581177b6 - rustc_query_impl[f264ab84298e098b]::query_impl::check_type_wf::get_query_non_incr::__rust_end_short_backtrace
  39:     0x7fb557b4b27a - rustc_hir_analysis[b41c4254e53e4ce1]::check_crate
  40:     0x7fb5572468f7 - rustc_interface[d8a094238b09040f]::passes::analysis
  41:     0x7fb5572465b3 - rustc_query_impl[f264ab84298e098b]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f264ab84298e098b]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[66cdd804fd9051a9]::query::erase::Erased<[u8; 0usize]>>
  42:     0x7fb5581185e0 - rustc_query_system[4ac9b4b17ee4bb56]::query::plumbing::try_execute_query::<rustc_query_impl[f264ab84298e098b]::DynamicConfig<rustc_query_system[4ac9b4b17ee4bb56]::query::caches::SingleCache<rustc_middle[66cdd804fd9051a9]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[f264ab84298e098b]::plumbing::QueryCtxt, false>
  43:     0x7fb558118236 - rustc_query_impl[f264ab84298e098b]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  44:     0x7fb558315450 - <rustc_interface[d8a094238b09040f]::passes::create_and_enter_global_ctxt<core[1115dd42e5ae30ce]::option::Option<rustc_interface[d8a094238b09040f]::queries::Linker>, rustc_driver_impl[8c06068e37802d29]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[1115dd42e5ae30ce]::ops::function::FnOnce<(&rustc_session[48b0a914b9431eec]::session::Session, rustc_middle[66cdd804fd9051a9]::ty::context::CurrentGcx, alloc[3b13acf2adde86fb]::sync::Arc<rustc_data_structures[b54ea2a1d75f8c18]::jobserver::Proxy>, &std[7af9aa63600b6cc4]::sync::once_lock::OnceLock<rustc_middle[66cdd804fd9051a9]::ty::context::GlobalCtxt>, &rustc_data_structures[b54ea2a1d75f8c18]::sync::worker_local::WorkerLocal<rustc_middle[66cdd804fd9051a9]::arena::Arena>, &rustc_data_structures[b54ea2a1d75f8c18]::sync::worker_local::WorkerLocal<rustc_hir[a5e9efda3004f511]::Arena>, rustc_driver_impl[8c06068e37802d29]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  45:     0x7fb5581b3bc5 - rustc_interface[d8a094238b09040f]::interface::run_compiler::<(), rustc_driver_impl[8c06068e37802d29]::run_compiler::{closure#0}>::{closure#1}
  46:     0x7fb557fec552 - std[7af9aa63600b6cc4]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[d8a094238b09040f]::util::run_in_thread_with_globals<rustc_interface[d8a094238b09040f]::util::run_in_thread_pool_with_globals<rustc_interface[d8a094238b09040f]::interface::run_compiler<(), rustc_driver_impl[8c06068e37802d29]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  47:     0x7fb557fec25c - <<std[7af9aa63600b6cc4]::thread::Builder>::spawn_unchecked_<rustc_interface[d8a094238b09040f]::util::run_in_thread_with_globals<rustc_interface[d8a094238b09040f]::util::run_in_thread_pool_with_globals<rustc_interface[d8a094238b09040f]::interface::run_compiler<(), rustc_driver_impl[8c06068e37802d29]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[1115dd42e5ae30ce]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  48:     0x7fb557fede2f - std::sys::thread::unix::Thread::new::thread_start::h0659c05d41e29e68
  49:     0x7fb551a969cb - <unknown>
  50:     0x7fb551b1aa0c - <unknown>
  51:                0x0 - <unknown>

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.93.0-nightly (42ec52bab 2025-11-24) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `T: core::marker::PointeeSized`
#1 [check_well_formed] checking that `<impl at /tmp/icemaker_global_tempdir.E1iAZOKI498s/rustc_testrunner_tmpdir_reporting.gg86tttSOftf/mvce.rs:5:1: 5:37>` is well-formed
#2 [check_type_wf] checking that types are well-formed
#3 [analysis] running analysis passes on crate `mvce`
end of query stack
error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0601`.

@rustbot label +F-sized_hierarchy

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.F-sized_hierarchy`#![feature(sized_hierarchy)]`I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions