Skip to content

ICE: asked to assemble auto trait candidates of unexpected type: FreshTy(0) #130411

Open

Description

@matthiaskrgr

auto-reduced (treereduce-rust):

trait Project {
    const SELF: Self;
}

fn take1(_: Project<SELF = {}>) {}

original:

trait Project {
    const SELF: Self;
}

fn take1(_: Project<SELF = {
    let mut res = Vec::new();
    loop {
        match decode_packet(itr) {
            Some(p) => { res.push(p); },
            None    => break
        }
    }

    return res;
}>) {}

Version information

rustc 1.83.0-nightly (8c2c9a9ef 2024-09-15)
binary: rustc
commit-hash: 8c2c9a9ef527edb453bcee638d34beb0e7b4616b
commit-date: 2024-09-15
host: x86_64-unknown-linux-gnu
release: 1.83.0-nightly
LLVM version: 19.1.0

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

Program output

error[E0658]: associated const equality is incomplete
 --> /tmp/icemaker_global_tempdir.gI8qCq1Vuhv8/rustc_testrunner_tmpdir_reporting.wExSU1hbC7Cc/mvce.rs:5:21
  |
5 | fn take1(_: Project<SELF = {}>) {}
  |                     ^^^^^^^^^
  |
  = note: see issue #92827 <https://github.com/rust-lang/rust/issues/92827> for more information
  = help: add `#![feature(associated_const_equality)]` to the crate attributes to enable
  = note: this compiler was built on 2024-09-15; consider upgrading it if it is out of date

error[E0601]: `main` function not found in crate `mvce`
 --> /tmp/icemaker_global_tempdir.gI8qCq1Vuhv8/rustc_testrunner_tmpdir_reporting.wExSU1hbC7Cc/mvce.rs:5:35
  |
5 | fn take1(_: Project<SELF = {}>) {}
  |                                   ^ consider adding a `main` function to `/tmp/icemaker_global_tempdir.gI8qCq1Vuhv8/rustc_testrunner_tmpdir_reporting.wExSU1hbC7Cc/mvce.rs`

warning: trait objects without an explicit `dyn` are deprecated
 --> /tmp/icemaker_global_tempdir.gI8qCq1Vuhv8/rustc_testrunner_tmpdir_reporting.wExSU1hbC7Cc/mvce.rs:5:13
  |
5 | fn take1(_: Project<SELF = {}>) {}
  |             ^^^^^^^^^^^^^^^^^^
  |
  = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
  = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
  = note: `#[warn(bare_trait_objects)]` on by default
help: if this is an object-safe trait, use `dyn`
  |
5 | fn take1(_: dyn Project<SELF = {}>) {}
  |             +++

error[E0308]: mismatched types
 --> /tmp/icemaker_global_tempdir.gI8qCq1Vuhv8/rustc_testrunner_tmpdir_reporting.wExSU1hbC7Cc/mvce.rs:5:28
  |
5 | fn take1(_: Project<SELF = {}>) {}
  |                            ^^ expected fresh type, found `()`
  |
  = note:   expected type `FreshTy(0)`
          found unit type `()`

error: internal compiler error: compiler/rustc_infer/src/infer/relate/generalize.rs:464:17: unexpected infer type: FreshTy(0)

thread 'rustc' panicked at compiler/rustc_infer/src/infer/relate/generalize.rs:464:17:
Box<dyn Any>
stack backtrace:
   0:     0x7f8b8806c1da - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hf576e3db34dcd4c0
   1:     0x7f8b88803297 - core::fmt::write::h6031a1fcd647db63
   2:     0x7f8b89710373 - std::io::Write::write_fmt::h9c4d18eebfa610c9
   3:     0x7f8b8806c032 - std::sys::backtrace::BacktraceLock::print::hd5d6f94195a58c57
   4:     0x7f8b8806e7b1 - std::panicking::default_hook::{{closure}}::he12b6c1c70a494ea
   5:     0x7f8b8806e5e4 - std::panicking::default_hook::h79139f377ef49e73
   6:     0x7f8b8717090f - std[1fc20c4bf4345a88]::panicking::update_hook::<alloc[31ea272c46cb0a00]::boxed::Box<rustc_driver_impl[bd499d3fdd772cd8]::install_ice_hook::{closure#0}>>::{closure#0}
   7:     0x7f8b8806eed8 - std::panicking::rust_panic_with_hook::hb2e822dcfa6f992d
   8:     0x7f8b871aa631 - std[1fc20c4bf4345a88]::panicking::begin_panic::<rustc_errors[22b46ce98bbdbfbc]::ExplicitBug>::{closure#0}
   9:     0x7f8b8719de46 - std[1fc20c4bf4345a88]::sys::backtrace::__rust_end_short_backtrace::<std[1fc20c4bf4345a88]::panicking::begin_panic<rustc_errors[22b46ce98bbdbfbc]::ExplicitBug>::{closure#0}, !>
  10:     0x7f8b87199389 - std[1fc20c4bf4345a88]::panicking::begin_panic::<rustc_errors[22b46ce98bbdbfbc]::ExplicitBug>
  11:     0x7f8b871b3951 - <rustc_errors[22b46ce98bbdbfbc]::diagnostic::BugAbort as rustc_errors[22b46ce98bbdbfbc]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
  12:     0x7f8b877d10e4 - rustc_middle[75f727fe079a4f22]::util::bug::opt_span_bug_fmt::<rustc_span[a0fd5433b72e73f5]::span_encoding::Span>::{closure#0}
  13:     0x7f8b877b6bda - rustc_middle[75f727fe079a4f22]::ty::context::tls::with_opt::<rustc_middle[75f727fe079a4f22]::util::bug::opt_span_bug_fmt<rustc_span[a0fd5433b72e73f5]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  14:     0x7f8b877b6a8b - rustc_middle[75f727fe079a4f22]::ty::context::tls::with_context_opt::<rustc_middle[75f727fe079a4f22]::ty::context::tls::with_opt<rustc_middle[75f727fe079a4f22]::util::bug::opt_span_bug_fmt<rustc_span[a0fd5433b72e73f5]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  15:     0x7f8b84d715c0 - rustc_middle[75f727fe079a4f22]::util::bug::bug_fmt
  16:     0x7f8b888e7f52 - <rustc_infer[6668340c28d2c56d]::infer::relate::generalize::Generalizer as rustc_type_ir[c12c9ed35f9c7001]::relate::TypeRelation<rustc_middle[75f727fe079a4f22]::ty::context::TyCtxt>>::tys::{closure#0}
  17:     0x7f8b888d7bdf - <rustc_infer[6668340c28d2c56d]::infer::relate::type_relating::TypeRelating as rustc_type_ir[c12c9ed35f9c7001]::relate::TypeRelation<rustc_middle[75f727fe079a4f22]::ty::context::TyCtxt>>::tys
  18:     0x7f8b888c7c92 - <rustc_hir_typeck[4fd6adf6e1b8df80]::fn_ctxt::FnCtxt>::coerce
  19:     0x7f8b88a30655 - rustc_hir_typeck[4fd6adf6e1b8df80]::typeck
  20:     0x7f8b88a2dd25 - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 8usize]>>
  21:     0x7f8b88c776bd - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::VecCache<rustc_span[a0fd5433b72e73f5]::def_id::LocalDefId, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  22:     0x7f8b88c7628d - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  23:     0x7f8b890a433d - rustc_mir_build[a4d1425a7ec00b3f]::thir::pattern::check_match::check_match
  24:     0x7f8b890a3a63 - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::check_match::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 1usize]>>
  25:     0x7f8b890a31d8 - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::VecCache<rustc_span[a0fd5433b72e73f5]::def_id::LocalDefId, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  26:     0x7f8b890a2e5d - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace
  27:     0x7f8b890b15d2 - rustc_mir_build[a4d1425a7ec00b3f]::build::mir_build
  28:     0x7f8b88806dd4 - rustc_mir_transform[24b7b05644591e31]::mir_built
  29:     0x7f8b88806d97 - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 8usize]>>
  30:     0x7f8b88c776bd - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::VecCache<rustc_span[a0fd5433b72e73f5]::def_id::LocalDefId, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  31:     0x7f8b88c771cd - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace
  32:     0x7f8b89132f27 - rustc_mir_transform[24b7b05644591e31]::mir_const_qualif
  33:     0x7f8b89132e1b - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::mir_const_qualif::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 4usize]>>
  34:     0x7f8b8913220b - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::DefIdCache<rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 4usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  35:     0x7f8b89131fa3 - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::mir_const_qualif::get_query_non_incr::__rust_end_short_backtrace
  36:     0x7f8b85ccdc73 - rustc_mir_transform[24b7b05644591e31]::mir_promoted
  37:     0x7f8b88d30f92 - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 16usize]>>
  38:     0x7f8b88d3125a - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::VecCache<rustc_span[a0fd5433b72e73f5]::def_id::LocalDefId, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  39:     0x7f8b89857190 - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::mir_promoted::get_query_non_incr::__rust_end_short_backtrace
  40:     0x7f8b89857283 - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 8usize]>>
  41:     0x7f8b88c776bd - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::VecCache<rustc_span[a0fd5433b72e73f5]::def_id::LocalDefId, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  42:     0x7f8b88c77113 - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  43:     0x7f8b88c7ff2d - rustc_mir_transform[24b7b05644591e31]::mir_drops_elaborated_and_const_checked
  44:     0x7f8b88c7f555 - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::mir_drops_elaborated_and_const_checked::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 8usize]>>
  45:     0x7f8b88c776bd - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::VecCache<rustc_span[a0fd5433b72e73f5]::def_id::LocalDefId, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  46:     0x7f8b88c77065 - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::mir_drops_elaborated_and_const_checked::get_query_non_incr::__rust_end_short_backtrace
  47:     0x7f8b891477b9 - rustc_mir_transform[24b7b05644591e31]::mir_for_ctfe
  48:     0x7f8b89147679 - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::mir_for_ctfe::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 8usize]>>
  49:     0x7f8b8882f8ae - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::DefIdCache<rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  50:     0x7f8b88fe75af - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::mir_for_ctfe::get_query_non_incr::__rust_end_short_backtrace
  51:     0x7f8b88fe76f0 - <rustc_const_eval[f76452ba52d780f5]::interpret::eval_context::InterpCx<rustc_const_eval[f76452ba52d780f5]::const_eval::machine::CompileTimeMachine>>::load_mir
  52:     0x7f8b862184f2 - rustc_const_eval[f76452ba52d780f5]::const_eval::eval_queries::eval_to_allocation_raw_provider
  53:     0x7f8b88fe8e76 - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::eval_to_allocation_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 24usize]>>
  54:     0x7f8b88fe8692 - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::DefaultCache<rustc_middle[75f727fe079a4f22]::ty::ParamEnvAnd<rustc_middle[75f727fe079a4f22]::mir::interpret::GlobalId>, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  55:     0x7f8b88fe826f - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::eval_to_allocation_raw::get_query_non_incr::__rust_end_short_backtrace
  56:     0x7f8b88fdaeaf - rustc_const_eval[f76452ba52d780f5]::const_eval::valtrees::eval_to_valtree
  57:     0x7f8b88fdacc3 - <rustc_const_eval[f76452ba52d780f5]::provide::{closure#0} as core[72d89f67a2ed16cb]::ops::function::FnOnce<(rustc_middle[75f727fe079a4f22]::ty::context::TyCtxt, rustc_middle[75f727fe079a4f22]::ty::ParamEnvAnd<rustc_middle[75f727fe079a4f22]::mir::interpret::GlobalId>)>>::call_once
  58:     0x7f8b88fdac7a - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::eval_to_valtree::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 24usize]>>
  59:     0x7f8b88fdac3b - <rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::eval_to_valtree::dynamic_query::{closure#2} as core[72d89f67a2ed16cb]::ops::function::FnOnce<(rustc_middle[75f727fe079a4f22]::ty::context::TyCtxt, rustc_middle[75f727fe079a4f22]::ty::ParamEnvAnd<rustc_middle[75f727fe079a4f22]::mir::interpret::GlobalId>)>>::call_once
  60:     0x7f8b88fe876d - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::DefaultCache<rustc_middle[75f727fe079a4f22]::ty::ParamEnvAnd<rustc_middle[75f727fe079a4f22]::mir::interpret::GlobalId>, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  61:     0x7f8b88fe808a - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::eval_to_valtree::get_query_non_incr::__rust_end_short_backtrace
  62:     0x7f8b891d21c2 - rustc_middle[75f727fe079a4f22]::query::plumbing::query_get_at::<rustc_query_system[5ff4688cf420f9ff]::query::caches::DefaultCache<rustc_middle[75f727fe079a4f22]::ty::ParamEnvAnd<rustc_middle[75f727fe079a4f22]::mir::interpret::GlobalId>, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 24usize]>>>
  63:     0x7f8b891d1c28 - <rustc_middle[75f727fe079a4f22]::ty::context::TyCtxt>::const_eval_global_id_for_typeck
  64:     0x7f8b891d0bbe - <rustc_middle[75f727fe079a4f22]::ty::context::TyCtxt>::const_eval_resolve_for_typeck
  65:     0x7f8b891d084a - <rustc_middle[75f727fe079a4f22]::ty::consts::Const>::eval
  66:     0x7f8b891d033c - <rustc_trait_selection[fd550b6f72b0e0c6]::traits::normalize::AssocTypeNormalizer as rustc_type_ir[c12c9ed35f9c7001]::fold::TypeFolder<rustc_middle[75f727fe079a4f22]::ty::context::TyCtxt>>::fold_const
  67:     0x7f8b87e117f3 - <rustc_middle[75f727fe079a4f22]::ty::Term as rustc_type_ir[c12c9ed35f9c7001]::fold::TypeFoldable<rustc_middle[75f727fe079a4f22]::ty::context::TyCtxt>>::try_fold_with::<rustc_trait_selection[fd550b6f72b0e0c6]::traits::normalize::AssocTypeNormalizer>
  68:     0x7f8b87f06468 - <rustc_trait_selection[fd550b6f72b0e0c6]::traits::normalize::AssocTypeNormalizer as rustc_type_ir[c12c9ed35f9c7001]::fold::TypeFolder<rustc_middle[75f727fe079a4f22]::ty::context::TyCtxt>>::fold_binder::<rustc_type_ir[c12c9ed35f9c7001]::predicate::ExistentialPredicate<rustc_middle[75f727fe079a4f22]::ty::context::TyCtxt>>
  69:     0x7f8b88fb7a17 - <rustc_middle[75f727fe079a4f22]::ty::Ty as rustc_type_ir[c12c9ed35f9c7001]::fold::TypeSuperFoldable<rustc_middle[75f727fe079a4f22]::ty::context::TyCtxt>>::try_super_fold_with::<rustc_trait_selection[fd550b6f72b0e0c6]::traits::normalize::AssocTypeNormalizer>
  70:     0x7f8b88e5d2b9 - <rustc_hir_analysis[f9d0127424903d94]::check::wfcheck::WfCheckingCtxt>::normalize::<rustc_middle[75f727fe079a4f22]::ty::Ty>
  71:     0x7f8b88e5bd60 - rustc_hir_analysis[f9d0127424903d94]::check::wfcheck::check_fn_or_method
  72:     0x7f8b88e5e2f5 - rustc_hir_analysis[f9d0127424903d94]::check::wfcheck::check_item_fn
  73:     0x7f8b85f37f61 - rustc_hir_analysis[f9d0127424903d94]::check::wfcheck::check_well_formed
  74:     0x7f8b88d1a3c7 - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 1usize]>>
  75:     0x7f8b88d1a63e - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::VecCache<rustc_hir[bda7baf23f46ef3e]::hir_id::OwnerId, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  76:     0x7f8b88d1a3a2 - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  77:     0x7f8b88d1b153 - rustc_hir_analysis[f9d0127424903d94]::check::wfcheck::check_mod_type_wf
  78:     0x7f8b88d1af91 - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 1usize]>>
  79:     0x7f8b896aa5bb - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::DefaultCache<rustc_span[a0fd5433b72e73f5]::def_id::LocalModDefId, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  80:     0x7f8b896aa36d - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::check_mod_type_wf::get_query_non_incr::__rust_end_short_backtrace
  81:     0x7f8b88c73a49 - rustc_hir_analysis[f9d0127424903d94]::check_crate
  82:     0x7f8b88c70705 - rustc_interface[21c67170a9071fc5]::passes::run_required_analyses
  83:     0x7f8b895166de - rustc_interface[21c67170a9071fc5]::passes::analysis
  84:     0x7f8b895166b1 - rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 1usize]>>
  85:     0x7f8b896ae22e - rustc_query_system[5ff4688cf420f9ff]::query::plumbing::try_execute_query::<rustc_query_impl[85a0e4e3d1ea5e51]::DynamicConfig<rustc_query_system[5ff4688cf420f9ff]::query::caches::SingleCache<rustc_middle[75f727fe079a4f22]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[85a0e4e3d1ea5e51]::plumbing::QueryCtxt, false>
  86:     0x7f8b896adf8f - rustc_query_impl[85a0e4e3d1ea5e51]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  87:     0x7f8b89500bbc - rustc_interface[21c67170a9071fc5]::interface::run_compiler::<core[72d89f67a2ed16cb]::result::Result<(), rustc_span[a0fd5433b72e73f5]::ErrorGuaranteed>, rustc_driver_impl[bd499d3fdd772cd8]::run_compiler::{closure#0}>::{closure#1}
  88:     0x7f8b895c8850 - std[1fc20c4bf4345a88]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[21c67170a9071fc5]::util::run_in_thread_with_globals<rustc_interface[21c67170a9071fc5]::util::run_in_thread_pool_with_globals<rustc_interface[21c67170a9071fc5]::interface::run_compiler<core[72d89f67a2ed16cb]::result::Result<(), rustc_span[a0fd5433b72e73f5]::ErrorGuaranteed>, rustc_driver_impl[bd499d3fdd772cd8]::run_compiler::{closure#0}>::{closure#1}, core[72d89f67a2ed16cb]::result::Result<(), rustc_span[a0fd5433b72e73f5]::ErrorGuaranteed>>::{closure#0}, core[72d89f67a2ed16cb]::result::Result<(), rustc_span[a0fd5433b72e73f5]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[72d89f67a2ed16cb]::result::Result<(), rustc_span[a0fd5433b72e73f5]::ErrorGuaranteed>>
  89:     0x7f8b895c8eba - <<std[1fc20c4bf4345a88]::thread::Builder>::spawn_unchecked_<rustc_interface[21c67170a9071fc5]::util::run_in_thread_with_globals<rustc_interface[21c67170a9071fc5]::util::run_in_thread_pool_with_globals<rustc_interface[21c67170a9071fc5]::interface::run_compiler<core[72d89f67a2ed16cb]::result::Result<(), rustc_span[a0fd5433b72e73f5]::ErrorGuaranteed>, rustc_driver_impl[bd499d3fdd772cd8]::run_compiler::{closure#0}>::{closure#1}, core[72d89f67a2ed16cb]::result::Result<(), rustc_span[a0fd5433b72e73f5]::ErrorGuaranteed>>::{closure#0}, core[72d89f67a2ed16cb]::result::Result<(), rustc_span[a0fd5433b72e73f5]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[72d89f67a2ed16cb]::result::Result<(), rustc_span[a0fd5433b72e73f5]::ErrorGuaranteed>>::{closure#1} as core[72d89f67a2ed16cb]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  90:     0x7f8b895c92ab - std::sys::pal::unix::thread::Thread::new::thread_start::hfd4e0f9214174c65
  91:     0x7f8b8ad4739d - <unknown>
  92:     0x7f8b8adcc49c - <unknown>
  93:                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.83.0-nightly (8c2c9a9ef 2024-09-15) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [typeck] type-checking `take1::{constant#0}`
#1 [check_match] match-checking `take1::{constant#0}`
end of query stack
error: aborting due to 4 previous errors; 1 warning emitted

Some errors have detailed explanations: E0308, E0601, E0658.
For more information about an error, try `rustc --explain E0308`.

Activity

  1. added
    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.
    C-bugCategory: This is a bug.
    on Sep 15, 2024
  2. added
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Sep 15, 2024
  3. matthiaskrgr commented on Sep 15, 2024

    @matthiaskrgr
    MemberAuthor

    Regression in nightly-2024-03-12
    commit[0] 2024-03-10: Auto merge of #122306 - workingjubilee:backtrace-0.3.70, r=workingjubilee
    commit[1] 2024-03-10: Auto merge of #122312 - matthiaskrgr:rollup-0p8y7gg, r=matthiaskrgr
    commit[2] 2024-03-11: Auto merge of #122132 - nnethercote:diag-renaming3, r=nnethercote
    commit[3] 2024-03-11: Auto merge of #121752 - mu001999:dead_code/improve, r=pnkfelix
    commit[4] 2024-03-11: Auto merge of #122050 - erikdesjardins:sret, r=nikic
    commit[5] 2024-03-11: Auto merge of #117156 - jmillikin:os-unix-socket-ext, r=Amanieu,dtolnay
    commit[6] 2024-03-11: Auto merge of #122331 - jhpratt:rollup-cbl8xsy, r=jhpratt
    commit[7] 2024-03-11: Auto merge of #122305 - Nilstrieb:target-tiers, r=davidtwco
    commit[8] 2024-03-11: Auto merge of #122140 - oli-obk:track_errors13, r=davidtwco
    commit[9] 2024-03-11: Auto merge of #122338 - workingjubilee:rollup-xzpt4v4, r=workingjubilee
    commit[10] 2024-03-11: Auto merge of #121796 - oli-obk:eager_opaque_checks3, r=lcnr
    commit[11] 2024-03-11: Auto merge of #112267 - lqd:win-1cgu, r=Kobzol

  4. self-assigned this
    on Sep 15, 2024
  5. removed
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Sep 15, 2024
  6. fmease commented on Sep 15, 2024

    @fmease
    Member

    cc #123456, #123140, #125957 (all different symptoms, same root cause)

  7. added
    S-bug-has-testStatus: This bug is tracked inside the repo by a `known-bug` test.
    on Sep 18, 2024
  8. RodBurman commented on Mar 18, 2026

    @RodBurman

    When I compile the auto-reduced sample code with:

    % rustc -v -V
    rustc 1.94.0 (4a4ef49 2026-03-02)
    binary: rustc
    commit-hash: 4a4ef49
    commit-date: 2026-03-02
    host: aarch64-apple-darwin
    release: 1.94.0
    LLVM version: 21.1.8

    I get the following output:

    % rustc src/main.rs 
    error[E0658]: associated const equality is incomplete
     --> src/main.rs:5:21
      |
    5 | fn take1(_: Project<SELF = {}>) {}
      |                     ^^^^^^^^^
      |
      = note: see issue #132980 <https://github.com/rust-lang/rust/issues/132980> for more information
    
    warning: trait objects without an explicit `dyn` are deprecated
     --> src/main.rs:5:13
      |
    5 | fn take1(_: Project<SELF = {}>) {}
      |             ^^^^^^^^^^^^^^^^^^
      |
      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
      = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
    help: if this is a dyn-compatible trait, use `dyn`
      |
    5 | fn take1(_: dyn Project<SELF = {}>) {}
      |             +++
    
    error[E0038]: the trait `Project` is not dyn compatible
     --> src/main.rs:5:13
      |
    5 | fn take1(_: Project<SELF = {}>) {}
      |             ^^^^^^^^^^^^^^^^^^ `Project` is not dyn compatible
      |
    note: for a trait to be dyn compatible it needs to allow building a vtable
          for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
     --> src/main.rs:2:11
      |
    1 | trait Project {
      |       ------- this trait is not dyn compatible...
    2 |     const SELF: Self;
      |           ^^^^ ...because it contains this associated `const`
      = help: consider moving `SELF` to another trait
    
    error[E0277]: the size for values of type `(dyn Project + 'static)` cannot be known at compilation time
     --> src/main.rs:5:13
      |
    5 | fn take1(_: Project<SELF = {}>) {}
      |             ^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
      |
      = help: the trait `Sized` is not implemented for `(dyn Project + 'static)`
    help: you can use `impl Trait` as the argument type
      |
    5 | fn take1(_: impl Project<SELF = {}>) {}
      |             ++++
    help: function arguments must have a statically known size, borrowed types always have a known size
      |
    5 | fn take1(_: &dyn Project<SELF = {}>) {}
      |             ++++
    
    error[E0308]: mismatched types
     --> src/main.rs:5:28
      |
    5 | fn take1(_: Project<SELF = {}>) {}
      |                            ^^ expected fresh type, found `()`
      |
      = note:   expected type `FreshTy(0)`
              found unit type `()`
    
    error: internal compiler error: /rustc-dev/4a4ef493e3a1488c6e321570238084b38948f6db/compiler/rustc_infer/src/infer/relate/generalize.rs:501:17: unexpected infer type: FreshTy(0)
    
    
    thread 'rustc' (102846) panicked at /rustc-dev/4a4ef493e3a1488c6e321570238084b38948f6db/compiler/rustc_infer/src/infer/relate/generalize.rs:501:17:
    Box<dyn Any>
    stack backtrace:
       0:        0x1111a7634 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hcde33371d8bba08b
       1:        0x10e3f81fc - core::fmt::write::h8a52dffc4df6d016
       2:        0x111161260 - std::io::Write::write_fmt::h2fd0abc6933d662d
       3:        0x111179ea4 - std::panicking::default_hook::{{closure}}::h1af7615be47c43ab
       4:        0x111179dac - std::panicking::default_hook::hdcc779fdbf67ae29
       5:        0x10f043378 - std[b190ad38c85ed59a]::panicking::update_hook::<alloc[cec09d4d3689febe]::boxed::Box<rustc_driver_impl[185e3967a9919f9d]::install_ice_hook::{closure#1}>>::{closure#0}
       6:        0x11117a2d0 - std::panicking::panic_with_hook::h455d3ea9bab4bcbd
       7:        0x10f0c7588 - std[b190ad38c85ed59a]::panicking::begin_panic::<rustc_errors[95ffe445a7b7fe12]::ExplicitBug>::{closure#0}
       8:        0x10f0b0ef0 - std[b190ad38c85ed59a]::sys::backtrace::__rust_end_short_backtrace::<std[b190ad38c85ed59a]::panicking::begin_panic<rustc_errors[95ffe445a7b7fe12]::ExplicitBug>::{closure#0}, !>
       9:        0x113f498f4 - std[b190ad38c85ed59a]::panicking::begin_panic::<rustc_errors[95ffe445a7b7fe12]::ExplicitBug>
      10:        0x113f4a438 - <rustc_errors[95ffe445a7b7fe12]::diagnostic::BugAbort as rustc_errors[95ffe445a7b7fe12]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
      11:        0x113fb8d10 - rustc_middle[1dd1fc2248f63b22]::util::bug::opt_span_bug_fmt::<rustc_span[40bc6320bb32000f]::span_encoding::Span>::{closure#0}
      12:        0x10fd23714 - rustc_middle[1dd1fc2248f63b22]::ty::context::tls::with_opt::<rustc_middle[1dd1fc2248f63b22]::util::bug::opt_span_bug_fmt<rustc_span[40bc6320bb32000f]::span_encoding::Span>::{closure#0}, !>::{closure#0}
      13:        0x10fcfc71c - rustc_middle[1dd1fc2248f63b22]::ty::context::tls::with_context_opt::<rustc_middle[1dd1fc2248f63b22]::ty::context::tls::with_opt<rustc_middle[1dd1fc2248f63b22]::util::bug::opt_span_bug_fmt<rustc_span[40bc6320bb32000f]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
      14:        0x113fbcf00 - rustc_middle[1dd1fc2248f63b22]::util::bug::bug_fmt
      15:        0x10f8bdc9c - <rustc_infer[6c4201f777a84977]::infer::relate::generalize::Generalizer as rustc_type_ir[2c11913eb1716827]::relate::TypeRelation<rustc_middle[1dd1fc2248f63b22]::ty::context::TyCtxt>>::tys::{closure#0}
      16:        0x10f86eed4 - <rustc_infer[6c4201f777a84977]::infer::InferCtxt>::generalize::<rustc_middle[1dd1fc2248f63b22]::ty::Ty, rustc_type_ir[2c11913eb1716827]::ty_kind::TyVid>
      17:        0x10f86f228 - <rustc_infer[6c4201f777a84977]::infer::InferCtxt>::instantiate_ty_var::<rustc_infer[6c4201f777a84977]::infer::relate::type_relating::TypeRelating>
      18:        0x10f8f1c10 - <rustc_infer[6c4201f777a84977]::infer::relate::type_relating::TypeRelating as rustc_type_ir[2c11913eb1716827]::relate::TypeRelation<rustc_middle[1dd1fc2248f63b22]::ty::context::TyCtxt>>::tys
      19:        0x10f55212c - <rustc_infer[6c4201f777a84977]::infer::at::At>::sup::<rustc_middle[1dd1fc2248f63b22]::ty::Ty>
      20:        0x10f729818 - <rustc_hir_typeck[61143b3384822dff]::coercion::Coerce>::unify_raw
      21:        0x10f544ce4 - <rustc_hir_typeck[61143b3384822dff]::coercion::Coerce>::unify_and::<core[a936a58af82ee723]::iter::adapters::flatten::FlatMap<core[a936a58af82ee723]::option::IntoIter<(rustc_middle[1dd1fc2248f63b22]::ty::adjustment::Adjustment, rustc_middle[1dd1fc2248f63b22]::ty::adjustment::Adjustment)>, [rustc_middle[1dd1fc2248f63b22]::ty::adjustment::Adjustment; 2usize], <rustc_hir_typeck[61143b3384822dff]::coercion::Coerce>::coerce_unsized::{closure#1}>>
      22:        0x10f728fa0 - <rustc_hir_typeck[61143b3384822dff]::coercion::Coerce>::coerce
      23:        0x10f6d8794 - <rustc_hir_typeck[61143b3384822dff]::fn_ctxt::FnCtxt>::coerce
      24:        0x10f669ad0 - <rustc_hir_typeck[61143b3384822dff]::fn_ctxt::FnCtxt>::demand_coerce_diag
      25:        0x10f61e4e8 - rustc_hir_typeck[61143b3384822dff]::typeck_with_inspect::{closure#0}
      26:        0x10f6377bc - rustc_hir_typeck[61143b3384822dff]::typeck
      27:        0x1105e2e00 - rustc_query_impl[def6bb11db1f9526]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[def6bb11db1f9526]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 8usize]>>
      28:        0x1106663c8 - rustc_query_system[23a19f823f15ce6c]::query::plumbing::try_execute_query::<rustc_query_impl[def6bb11db1f9526]::DynamicConfig<rustc_data_structures[fafc8b92dea7f144]::vec_cache::VecCache<rustc_hir_id[5eec3bb7a05ee6b5]::OwnerId, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[23a19f823f15ce6c]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[def6bb11db1f9526]::plumbing::QueryCtxt, false>
      29:        0x1107698a0 - rustc_query_impl[def6bb11db1f9526]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
      30:        0x10f6361c8 - rustc_hir_typeck[61143b3384822dff]::used_trait_imports
      31:        0x1105dfa18 - rustc_query_impl[def6bb11db1f9526]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[def6bb11db1f9526]::query_impl::used_trait_imports::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 8usize]>>
      32:        0x1106663c8 - rustc_query_system[23a19f823f15ce6c]::query::plumbing::try_execute_query::<rustc_query_impl[def6bb11db1f9526]::DynamicConfig<rustc_data_structures[fafc8b92dea7f144]::vec_cache::VecCache<rustc_hir_id[5eec3bb7a05ee6b5]::OwnerId, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[23a19f823f15ce6c]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[def6bb11db1f9526]::plumbing::QueryCtxt, false>
      33:        0x11074c144 - rustc_query_impl[def6bb11db1f9526]::query_impl::used_trait_imports::get_query_non_incr::__rust_end_short_backtrace
      34:        0x10f3af14c - rustc_hir_analysis[7f434dfda0d33b75]::check_unused::check_unused_traits
      35:        0x1105dfb40 - rustc_query_impl[def6bb11db1f9526]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[def6bb11db1f9526]::query_impl::check_unused_traits::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 0usize]>>
      36:        0x1105fba64 - rustc_query_system[23a19f823f15ce6c]::query::plumbing::try_execute_query::<rustc_query_impl[def6bb11db1f9526]::DynamicConfig<rustc_query_system[23a19f823f15ce6c]::query::caches::SingleCache<rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[def6bb11db1f9526]::plumbing::QueryCtxt, false>
      37:        0x11074cc10 - rustc_query_impl[def6bb11db1f9526]::query_impl::check_unused_traits::get_query_non_incr::__rust_end_short_backtrace
      38:        0x10f3553e8 - rustc_hir_analysis[7f434dfda0d33b75]::check_crate
      39:        0x10f9b3ed0 - rustc_interface[8731d2cac67c9b74]::passes::analysis
      40:        0x1105e2e98 - rustc_query_impl[def6bb11db1f9526]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[def6bb11db1f9526]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 0usize]>>
      41:        0x1105fba64 - rustc_query_system[23a19f823f15ce6c]::query::plumbing::try_execute_query::<rustc_query_impl[def6bb11db1f9526]::DynamicConfig<rustc_query_system[23a19f823f15ce6c]::query::caches::SingleCache<rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[def6bb11db1f9526]::plumbing::QueryCtxt, false>
      42:        0x11076a3b8 - rustc_query_impl[def6bb11db1f9526]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
      43:        0x10eff6b40 - rustc_interface[8731d2cac67c9b74]::passes::create_and_enter_global_ctxt::<core[a936a58af82ee723]::option::Option<rustc_interface[8731d2cac67c9b74]::queries::Linker>, rustc_driver_impl[185e3967a9919f9d]::run_compiler::{closure#0}::{closure#2}>
      44:        0x10f041a9c - rustc_interface[8731d2cac67c9b74]::interface::run_compiler::<(), rustc_driver_impl[185e3967a9919f9d]::run_compiler::{closure#0}>::{closure#1}
      45:        0x10f037d9c - std[b190ad38c85ed59a]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[8731d2cac67c9b74]::util::run_in_thread_with_globals<rustc_interface[8731d2cac67c9b74]::util::run_in_thread_pool_with_globals<rustc_interface[8731d2cac67c9b74]::interface::run_compiler<(), rustc_driver_impl[185e3967a9919f9d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
      46:        0x10f048ff4 - <std[b190ad38c85ed59a]::thread::lifecycle::spawn_unchecked<rustc_interface[8731d2cac67c9b74]::util::run_in_thread_with_globals<rustc_interface[8731d2cac67c9b74]::util::run_in_thread_pool_with_globals<rustc_interface[8731d2cac67c9b74]::interface::run_compiler<(), rustc_driver_impl[185e3967a9919f9d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[a936a58af82ee723]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
      47:        0x111170530 - std::sys::thread::unix::Thread::new::thread_start::hb5c7d2a38fab9e31
      48:        0x18cb17c08 - __pthread_cond_wait
    
    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: rustc 1.94.0 (4a4ef493e 2026-03-02) running on aarch64-apple-darwin
    
    query stack during panic:
    #0 [typeck] type-checking `take1::{constant#0}`
    #1 [used_trait_imports] finding used_trait_imports `take1::{constant#0}`
    ... and 2 other queries... use `env RUST_BACKTRACE=1` to see the full query stack
    error: aborting due to 5 previous errors; 1 warning emitted
    

    Noting that this is using rust edition 2015, I tried compiling with the latest edition 2024, which produced:

    rustc --edition=2024 src/main.rs
    error[E0658]: associated const equality is incomplete
     --> src/main.rs:5:21
      |
    5 | fn take1(_: Project<SELF = {}>) {}
      |                     ^^^^^^^^^
      |
      = note: see issue #132980 <https://github.com/rust-lang/rust/issues/132980> for more information
    
    error[E0782]: expected a type, found a trait
     --> src/main.rs:5:13
      |
    5 | fn take1(_: Project<SELF = {}>) {}
      |             ^^^^^^^^^^^^^^^^^^
      |
      = note: `Project<SELF = {}>` is dyn-incompatible, otherwise a trait object could be used
    help: use a new generic type parameter, constrained by `Project<SELF = {}>`
      |
    5 - fn take1(_: Project<SELF = {}>) {}
    5 + fn take1<T: Project<SELF = {}>>(_: T) {}
      |
    help: you can also use an opaque type, but users won't be able to specify the type parameter when calling the `fn`, having to rely exclusively on type inference
      |
    5 | fn take1(_: impl Project<SELF = {}>) {}
      |             ++++
    
    error: aborting due to 2 previous errors
    
    Some errors have detailed explanations: E0658, E0782.
    For more information about an error, try `rustc --explain E0658`.
    

    Which does not panic, neither does 2021 but 2018 does.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

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

Type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions