Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICE: assertion failed: unique #125249

Closed
matthiaskrgr opened this issue May 18, 2024 · 2 comments · Fixed by #129383
Closed

ICE: assertion failed: unique #125249

matthiaskrgr opened this issue May 18, 2024 · 2 comments · Fixed by #129383
Assignees
Labels
C-bug Category: This is a bug. F-return_position_impl_trait_in_trait `#![feature(return_position_impl_trait_in_trait)]` F-return_type_notation `#[feature(return_type_notation)]` I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ S-bug-has-test Status: This bug is tracked inside the repo by a `known-bug` test. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@matthiaskrgr
Copy link
Member

auto-reduced (treereduce-rust):

#![feature(return_position_impl_trait_in_trait, return_type_notation)]

trait IntFactory {
    fn stream(&self) -> impl IntFactory<stream(): IntFactory<stream(): Send> + Send>;
}

original:

#![feature(return_position_impl_trait_in_trait, return_type_notation)]

trait IntFactory {
    fn stream(&self) -> impl IntFactory<stream(): IntFactory<stream(): Send> + Send>;
}
trait SendIntFactory: IntFactory<stream(): Send> + Send {}

Version information

rustc 1.80.0-nightly (36c0a6d40 2024-05-18)
binary: rustc
commit-hash: 36c0a6d40fb6aae9c450305085d64e2ba55c6c58
commit-date: 2024-05-18
host: x86_64-unknown-linux-gnu
release: 1.80.0-nightly
LLVM version: 18.1.4

Command:
/home/matthias/.rustup/toolchains/master/bin/rustc --crate-type=lib

Program output

warning: the feature `return_type_notation` is incomplete and may not be safe to use and/or cause compiler crashes
 --> /tmp/icemaker_global_tempdir.m4kvtvaNzsSJ/rustc_testrunner_tmpdir_reporting.sI91r3JGKfet/mvce.rs:1:49
  |
1 | #![feature(return_position_impl_trait_in_trait, return_type_notation)]
  |                                                 ^^^^^^^^^^^^^^^^^^^^
  |
  = note: see issue #109417 <https://github.com/rust-lang/rust/issues/109417> for more information
  = note: `#[warn(incomplete_features)]` on by default

warning: the feature `return_position_impl_trait_in_trait` has been stable since 1.75.0 and no longer requires an attribute to enable
 --> /tmp/icemaker_global_tempdir.m4kvtvaNzsSJ/rustc_testrunner_tmpdir_reporting.sI91r3JGKfet/mvce.rs:1:12
  |
1 | #![feature(return_position_impl_trait_in_trait, return_type_notation)]
  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(stable_features)]` on by default

warning: trait `IntFactory` is never used
 --> /tmp/icemaker_global_tempdir.m4kvtvaNzsSJ/rustc_testrunner_tmpdir_reporting.sI91r3JGKfet/mvce.rs:3:7
  |
3 | trait IntFactory {
  |       ^^^^^^^^^^
  |
  = note: `#[warn(dead_code)]` on by default

thread 'rustc' panicked at compiler/rustc_lint/src/impl_trait_overcaptures.rs:171:21:
assertion failed: unique
stack backtrace:
   0:     0x7e9f17fe69e5 - std::backtrace_rs::backtrace::libunwind::trace::hf2bc7f5038b3e369
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
   1:     0x7e9f17fe69e5 - std::backtrace_rs::backtrace::trace_unsynchronized::h231bca9ebdb2d476
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7e9f17fe69e5 - std::sys_common::backtrace::_print_fmt::hb8880a770a528751
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x7e9f17fe69e5 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h33a25d9d3cddcff1
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7e9f18035b9b - core::fmt::rt::Argument::fmt::hb79968a3099c2b80
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/core/src/fmt/rt.rs:165:63
   5:     0x7e9f18035b9b - core::fmt::write::h87de2705f4fdde46
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/core/src/fmt/mod.rs:1169:21
   6:     0x7e9f17fdb77f - std::io::Write::write_fmt::habafebc10fded2ab
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/io/mod.rs:1835:15
   7:     0x7e9f17fe67be - std::sys_common::backtrace::_print::hb1d61293da984960
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7e9f17fe67be - std::sys_common::backtrace::print::h2131b88f8087e7b2
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7e9f17fe91b9 - std::panicking::default_hook::{{closure}}::h68cf6ae540909963
  10:     0x7e9f17fe8efd - std::panicking::default_hook::h4b57c10c74892259
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/panicking.rs:298:9
  11:     0x7e9f148fba8f - std[4409b2d227107481]::panicking::update_hook::<alloc[62996783038b3a10]::boxed::Box<rustc_driver_impl[ec6cf89b952751b7]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x7e9f17fe98eb - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hf3d7594c845607a3
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/alloc/src/boxed.rs:2036:9
  13:     0x7e9f17fe98eb - std::panicking::rust_panic_with_hook::he223310e59b58621
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/panicking.rs:799:13
  14:     0x7e9f17fe962b - std::panicking::begin_panic_handler::{{closure}}::h2b1c193a81afbc45
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/panicking.rs:656:13
  15:     0x7e9f17fe6ea9 - std::sys_common::backtrace::__rust_end_short_backtrace::h4f10616ff00feb98
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/sys_common/backtrace.rs:171:18
  16:     0x7e9f17fe9397 - rust_begin_unwind
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/panicking.rs:652:5
  17:     0x7e9f18032163 - core::panicking::panic_fmt::hcc56f9541c31fe59
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/core/src/panicking.rs:72:14
  18:     0x7e9f1803220c - core::panicking::panic::h5c79f86ebaa4ce23
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/core/src/panicking.rs:146:5
  19:     0x7e9f1634d56c - <rustc_lint[18589ef7f21dc6df]::impl_trait_overcaptures::VisitOpaqueTypes as rustc_type_ir[fcc5e9d53e164095]::visit::TypeVisitor<rustc_middle[94c1eba9c157edd1]::ty::context::TyCtxt>>::visit_ty
  20:     0x7e9f1634cf09 - <rustc_lint[18589ef7f21dc6df]::impl_trait_overcaptures::VisitOpaqueTypes as rustc_type_ir[fcc5e9d53e164095]::visit::TypeVisitor<rustc_middle[94c1eba9c157edd1]::ty::context::TyCtxt>>::visit_ty
  21:     0x7e9f1634bda6 - <rustc_lint[18589ef7f21dc6df]::impl_trait_overcaptures::VisitOpaqueTypes as rustc_type_ir[fcc5e9d53e164095]::visit::TypeVisitor<rustc_middle[94c1eba9c157edd1]::ty::context::TyCtxt>>::visit_binder::<rustc_type_ir[fcc5e9d53e164095]::ty_kind::FnSig<rustc_middle[94c1eba9c157edd1]::ty::context::TyCtxt>>
  22:     0x7e9f1634b18c - rustc_lint[18589ef7f21dc6df]::impl_trait_overcaptures::check_fn
  23:     0x7e9f15e7c4b8 - <rustc_lint[18589ef7f21dc6df]::late::LateContextAndPass<rustc_lint[18589ef7f21dc6df]::BuiltinCombinedModuleLateLintPass> as rustc_hir[38c888bf6a6f703]::intravisit::Visitor>::visit_nested_item
  24:     0x7e9f15e7ab29 - rustc_lint[18589ef7f21dc6df]::lint_mod
  25:     0x7e9f15e7a921 - rustc_query_impl[98154bf48ac5ed09]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[98154bf48ac5ed09]::query_impl::lint_mod::dynamic_query::{closure#2}::{closure#0}, rustc_middle[94c1eba9c157edd1]::query::erase::Erased<[u8; 0usize]>>
  26:     0x7e9f1674297d - rustc_query_system[8e8a87f940666368]::query::plumbing::try_execute_query::<rustc_query_impl[98154bf48ac5ed09]::DynamicConfig<rustc_query_system[8e8a87f940666368]::query::caches::DefaultCache<rustc_span[744739c6604e47db]::def_id::LocalModDefId, rustc_middle[94c1eba9c157edd1]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[98154bf48ac5ed09]::plumbing::QueryCtxt, false>
  27:     0x7e9f167407ff - rustc_query_impl[98154bf48ac5ed09]::query_impl::lint_mod::get_query_non_incr::__rust_end_short_backtrace
  28:     0x7e9f167403d9 - rustc_lint[18589ef7f21dc6df]::late::check_crate::{closure#1}
  29:     0x7e9f1673fe00 - rustc_lint[18589ef7f21dc6df]::late::check_crate
  30:     0x7e9f16749453 - rustc_interface[ada677875731fed0]::passes::analysis
  31:     0x7e9f1674895b - rustc_query_impl[98154bf48ac5ed09]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[98154bf48ac5ed09]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[94c1eba9c157edd1]::query::erase::Erased<[u8; 1usize]>>
  32:     0x7e9f169abee5 - rustc_query_system[8e8a87f940666368]::query::plumbing::try_execute_query::<rustc_query_impl[98154bf48ac5ed09]::DynamicConfig<rustc_query_system[8e8a87f940666368]::query::caches::SingleCache<rustc_middle[94c1eba9c157edd1]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[98154bf48ac5ed09]::plumbing::QueryCtxt, false>
  33:     0x7e9f169abc49 - rustc_query_impl[98154bf48ac5ed09]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  34:     0x7e9f16822fce - rustc_interface[ada677875731fed0]::interface::run_compiler::<core[b65be67b0b9d2881]::result::Result<(), rustc_span[744739c6604e47db]::ErrorGuaranteed>, rustc_driver_impl[ec6cf89b952751b7]::run_compiler::{closure#0}>::{closure#1}
  35:     0x7e9f1680da49 - std[4409b2d227107481]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[ada677875731fed0]::util::run_in_thread_with_globals<rustc_interface[ada677875731fed0]::util::run_in_thread_pool_with_globals<rustc_interface[ada677875731fed0]::interface::run_compiler<core[b65be67b0b9d2881]::result::Result<(), rustc_span[744739c6604e47db]::ErrorGuaranteed>, rustc_driver_impl[ec6cf89b952751b7]::run_compiler::{closure#0}>::{closure#1}, core[b65be67b0b9d2881]::result::Result<(), rustc_span[744739c6604e47db]::ErrorGuaranteed>>::{closure#0}, core[b65be67b0b9d2881]::result::Result<(), rustc_span[744739c6604e47db]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[b65be67b0b9d2881]::result::Result<(), rustc_span[744739c6604e47db]::ErrorGuaranteed>>
  36:     0x7e9f1680d7f6 - <<std[4409b2d227107481]::thread::Builder>::spawn_unchecked_<rustc_interface[ada677875731fed0]::util::run_in_thread_with_globals<rustc_interface[ada677875731fed0]::util::run_in_thread_pool_with_globals<rustc_interface[ada677875731fed0]::interface::run_compiler<core[b65be67b0b9d2881]::result::Result<(), rustc_span[744739c6604e47db]::ErrorGuaranteed>, rustc_driver_impl[ec6cf89b952751b7]::run_compiler::{closure#0}>::{closure#1}, core[b65be67b0b9d2881]::result::Result<(), rustc_span[744739c6604e47db]::ErrorGuaranteed>>::{closure#0}, core[b65be67b0b9d2881]::result::Result<(), rustc_span[744739c6604e47db]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[b65be67b0b9d2881]::result::Result<(), rustc_span[744739c6604e47db]::ErrorGuaranteed>>::{closure#2} as core[b65be67b0b9d2881]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  37:     0x7e9f17ff378b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hd707e428c387a32b
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/alloc/src/boxed.rs:2022:9
  38:     0x7e9f17ff378b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5849656bb97cf604
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/alloc/src/boxed.rs:2022:9
  39:     0x7e9f17ff378b - std::sys::pal::unix::thread::Thread::new::thread_start::h493d13a7185ac4a0
                               at /rustc/36c0a6d40fb6aae9c450305085d64e2ba55c6c58/library/std/src/sys/pal/unix/thread.rs:108:17
  40:     0x7e9f17d9255a - <unknown>
  41:     0x7e9f17e0fa3c - <unknown>
  42:                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.80.0-nightly (36c0a6d40 2024-05-18) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib -Z dump-mir-dir=dir

query stack during panic:
#0 [lint_mod] linting top-level module
#1 [analysis] running analysis passes on this crate
end of query stack
warning: 3 warnings emitted


@rustbot label +F-return_position_impl_trait_in_trait +F-return_type_notation

@matthiaskrgr matthiaskrgr added I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-bug Category: This is a bug. labels May 18, 2024
@rustbot rustbot added needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. F-return_position_impl_trait_in_trait `#![feature(return_position_impl_trait_in_trait)]` F-return_type_notation `#[feature(return_type_notation)]` labels May 18, 2024
@matthiaskrgr
Copy link
Member Author

Regression in nightly-2024-05-15
#124228 cc @compiler-errors

@compiler-errors compiler-errors self-assigned this May 18, 2024
@fmease fmease removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label May 18, 2024
@matthiaskrgr matthiaskrgr added the S-bug-has-test Status: This bug is tracked inside the repo by a `known-bug` test. label May 19, 2024
@matthiaskrgr
Copy link
Member Author

update stacktrace #129244

error: return type notation arguments must be elided with `..`
 --> a.rs:4:47
  |
4 |     fn stream(&self) -> impl IntFactory<stream(): IntFactory<stream(): Send> + Send>;
  |                                               ^^ help: add `..`: `(..)`

error: return type notation arguments must be elided with `..`
 --> a.rs:4:68
  |
4 |     fn stream(&self) -> impl IntFactory<stream(): IntFactory<stream(): Send> + Send>;
  |                                                                    ^^ help: add `..`: `(..)`

error[E0601]: `main` function not found in crate `a`
 --> a.rs:5:2
  |
5 | }
  |  ^ consider adding a `main` function to `a.rs`

warning: the feature `return_position_impl_trait_in_trait` has been stable since 1.75.0 and no longer requires an attribute to enable
 --> a.rs:1:12
  |
1 | #![feature(return_position_impl_trait_in_trait, return_type_notation)]
  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(stable_features)]` on by default

thread 'rustc' panicked at compiler/rustc_infer/src/infer/mod.rs:1342:26:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0:     0x7f5ff61249fa - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h585b06d402bc00d5
   1:     0x7f5ff6803426 - core::fmt::write::h62d1c51a5a367817
   2:     0x7f5ff7a1a651 - std::io::Write::write_fmt::hd7881933ac2a1e16
   3:     0x7f5ff6124852 - std::sys::backtrace::BacktraceLock::print::ha0ac5d8e3803f857
   4:     0x7f5ff6126d26 - std::panicking::default_hook::{{closure}}::h7a48a96dd6d0b686
   5:     0x7f5ff6126b70 - std::panicking::default_hook::h4ad77b5924a748da
   6:     0x7f5ff51db8ff - std[f6927571c1bb7893]::panicking::update_hook::<alloc[1b6d6df6cca9b2d3]::boxed::Box<rustc_driver_impl[83de0f0d7a3bbaf8]::install_ice_hook::{closure#0}>>::{closure#0}
   7:     0x7f5ff6127438 - std::panicking::rust_panic_with_hook::h15ea114d0f0705b7
   8:     0x7f5ff612720a - std::panicking::begin_panic_handler::{{closure}}::h51c98e91577ce4f1
   9:     0x7f5ff6124ea9 - std::sys::backtrace::__rust_end_short_backtrace::h9be02724e7705975
  10:     0x7f5ff6126ecc - rust_begin_unwind
  11:     0x7f5ff2ec1b50 - core::panicking::panic_fmt::h29396fab03b6c714
  12:     0x7f5ff4913b1b - core::panicking::panic_bounds_check::h21e21338a43170da
  13:     0x7f5ff70cffe3 - <&rustc_middle[4aa8808438232afe]::ty::list::RawList<(), rustc_middle[4aa8808438232afe]::ty::generic_args::GenericArg> as rustc_type_ir[e4a03ddda3530d0c]::fold::TypeFoldable<rustc_middle[4aa8808438232afe]::ty::context::TyCtxt>>::try_fold_with::<rustc_middle[4aa8808438232afe]::ty::fold::BoundVarReplacer<<rustc_infer[27b9cda0ac85ee20]::infer::InferCtxt>::instantiate_binder_with_fresh_vars::ToFreshVars>>
  14:     0x7f5ff70d0e8a - <rustc_middle[4aa8808438232afe]::ty::fold::BoundVarReplacer<<rustc_infer[27b9cda0ac85ee20]::infer::InferCtxt>::instantiate_binder_with_fresh_vars::ToFreshVars> as rustc_type_ir[e4a03ddda3530d0c]::fold::TypeFolder<rustc_middle[4aa8808438232afe]::ty::context::TyCtxt>>::fold_ty
  15:     0x7f5ff70cfe3e - <&rustc_middle[4aa8808438232afe]::ty::list::RawList<(), rustc_middle[4aa8808438232afe]::ty::generic_args::GenericArg> as rustc_type_ir[e4a03ddda3530d0c]::fold::TypeFoldable<rustc_middle[4aa8808438232afe]::ty::context::TyCtxt>>::try_fold_with::<rustc_middle[4aa8808438232afe]::ty::fold::BoundVarReplacer<<rustc_infer[27b9cda0ac85ee20]::infer::InferCtxt>::instantiate_binder_with_fresh_vars::ToFreshVars>>
  16:     0x7f5ff70bc45b - <rustc_infer[27b9cda0ac85ee20]::infer::InferCtxt>::instantiate_binder_with_fresh_vars::<rustc_type_ir[e4a03ddda3530d0c]::predicate::TraitRef<rustc_middle[4aa8808438232afe]::ty::context::TyCtxt>>
  17:     0x7f5ff331b633 - <rustc_trait_selection[d03aaefc9e43bec8]::traits::select::SelectionContext>::candidate_from_obligation_no_cache
  18:     0x7f5ff74b2f84 - <rustc_trait_selection[d03aaefc9e43bec8]::traits::select::SelectionContext>::poly_select::{closure#0}
  19:     0x7f5ff717afaa - rustc_trait_selection[d03aaefc9e43bec8]::traits::project::opt_normalize_projection_term
  20:     0x7f5ff7177cdf - <rustc_trait_selection[d03aaefc9e43bec8]::traits::normalize::AssocTypeNormalizer as rustc_type_ir[e4a03ddda3530d0c]::fold::TypeFolder<rustc_middle[4aa8808438232afe]::ty::context::TyCtxt>>::fold_ty
  21:     0x7f5ff7171a4f - <&rustc_middle[4aa8808438232afe]::ty::list::RawList<(), rustc_middle[4aa8808438232afe]::ty::generic_args::GenericArg> as rustc_type_ir[e4a03ddda3530d0c]::fold::TypeFoldable<rustc_middle[4aa8808438232afe]::ty::context::TyCtxt>>::try_fold_with::<rustc_trait_selection[d03aaefc9e43bec8]::traits::normalize::AssocTypeNormalizer>
  22:     0x7f5ff717188d - <rustc_trait_selection[d03aaefc9e43bec8]::traits::normalize::AssocTypeNormalizer as rustc_type_ir[e4a03ddda3530d0c]::fold::FallibleTypeFolder<rustc_middle[4aa8808438232afe]::ty::context::TyCtxt>>::try_fold_predicate
  23:     0x7f5ff7169093 - rustc_trait_selection[d03aaefc9e43bec8]::traits::normalize::normalize_with_depth_to::<rustc_middle[4aa8808438232afe]::ty::predicate::Clause>::{closure#0}
  24:     0x7f5ff7168c48 - <rustc_trait_selection[d03aaefc9e43bec8]::traits::engine::ObligationCtxt<rustc_trait_selection[d03aaefc9e43bec8]::traits::FulfillmentError>>::normalize::<rustc_middle[4aa8808438232afe]::ty::predicate::Clause>
  25:     0x7f5ff7168a49 - <rustc_hir_analysis[2ca7e8779feeb593]::check::wfcheck::WfCheckingCtxt>::normalize::<rustc_middle[4aa8808438232afe]::ty::predicate::Clause>
  26:     0x7f5ff6d9c065 - rustc_hir_analysis[2ca7e8779feeb593]::check::wfcheck::check_associated_item
  27:     0x7f5ff41321e4 - rustc_hir_analysis[2ca7e8779feeb593]::check::wfcheck::check_well_formed
  28:     0x7f5ff730902b - rustc_query_impl[7b31fe52c1943d23]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b31fe52c1943d23]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4aa8808438232afe]::query::erase::Erased<[u8; 1usize]>>
  29:     0x7f5ff7308791 - rustc_query_system[af74fb06ba218297]::query::plumbing::try_execute_query::<rustc_query_impl[7b31fe52c1943d23]::DynamicConfig<rustc_query_system[af74fb06ba218297]::query::caches::VecCache<rustc_span[b73f4c38f6b79966]::def_id::LocalDefId, rustc_middle[4aa8808438232afe]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[7b31fe52c1943d23]::plumbing::QueryCtxt, false>
  30:     0x7f5ff7308410 - rustc_query_impl[7b31fe52c1943d23]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  31:     0x7f5ff73090bd - rustc_middle[4aa8808438232afe]::query::plumbing::query_ensure_error_guaranteed::<rustc_query_system[af74fb06ba218297]::query::caches::VecCache<rustc_span[b73f4c38f6b79966]::def_id::LocalDefId, rustc_middle[4aa8808438232afe]::query::erase::Erased<[u8; 1usize]>>, ()>
  32:     0x7f5ff7309634 - rustc_hir_analysis[2ca7e8779feeb593]::check::wfcheck::check_mod_type_wf
  33:     0x7f5ff73090e5 - rustc_query_impl[7b31fe52c1943d23]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b31fe52c1943d23]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4aa8808438232afe]::query::erase::Erased<[u8; 1usize]>>
  34:     0x7f5ff730297b - rustc_query_system[af74fb06ba218297]::query::plumbing::try_execute_query::<rustc_query_impl[7b31fe52c1943d23]::DynamicConfig<rustc_query_system[af74fb06ba218297]::query::caches::DefaultCache<rustc_span[b73f4c38f6b79966]::def_id::LocalModDefId, rustc_middle[4aa8808438232afe]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[7b31fe52c1943d23]::plumbing::QueryCtxt, false>
  35:     0x7f5ff730272d - rustc_query_impl[7b31fe52c1943d23]::query_impl::check_mod_type_wf::get_query_non_incr::__rust_end_short_backtrace
  36:     0x7f5ff6c1fd3b - rustc_hir_analysis[2ca7e8779feeb593]::check_crate
  37:     0x7f5ff6c1ca97 - rustc_interface[a7beddea6b2aa80d]::passes::run_required_analyses
  38:     0x7f5ff75f6f9e - rustc_interface[a7beddea6b2aa80d]::passes::analysis
  39:     0x7f5ff75f6f71 - rustc_query_impl[7b31fe52c1943d23]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b31fe52c1943d23]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4aa8808438232afe]::query::erase::Erased<[u8; 1usize]>>
  40:     0x7f5ff76d31ee - rustc_query_system[af74fb06ba218297]::query::plumbing::try_execute_query::<rustc_query_impl[7b31fe52c1943d23]::DynamicConfig<rustc_query_system[af74fb06ba218297]::query::caches::SingleCache<rustc_middle[4aa8808438232afe]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[7b31fe52c1943d23]::plumbing::QueryCtxt, false>
  41:     0x7f5ff76d2ecf - rustc_query_impl[7b31fe52c1943d23]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  42:     0x7f5ff752151e - rustc_interface[a7beddea6b2aa80d]::interface::run_compiler::<core[e1b34d82e9cff2ed]::result::Result<(), rustc_span[b73f4c38f6b79966]::ErrorGuaranteed>, rustc_driver_impl[83de0f0d7a3bbaf8]::run_compiler::{closure#0}>::{closure#1}
  43:     0x7f5ff75d9150 - std[f6927571c1bb7893]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[a7beddea6b2aa80d]::util::run_in_thread_with_globals<rustc_interface[a7beddea6b2aa80d]::util::run_in_thread_pool_with_globals<rustc_interface[a7beddea6b2aa80d]::interface::run_compiler<core[e1b34d82e9cff2ed]::result::Result<(), rustc_span[b73f4c38f6b79966]::ErrorGuaranteed>, rustc_driver_impl[83de0f0d7a3bbaf8]::run_compiler::{closure#0}>::{closure#1}, core[e1b34d82e9cff2ed]::result::Result<(), rustc_span[b73f4c38f6b79966]::ErrorGuaranteed>>::{closure#0}, core[e1b34d82e9cff2ed]::result::Result<(), rustc_span[b73f4c38f6b79966]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[e1b34d82e9cff2ed]::result::Result<(), rustc_span[b73f4c38f6b79966]::ErrorGuaranteed>>
  44:     0x7f5ff75d9817 - <<std[f6927571c1bb7893]::thread::Builder>::spawn_unchecked_<rustc_interface[a7beddea6b2aa80d]::util::run_in_thread_with_globals<rustc_interface[a7beddea6b2aa80d]::util::run_in_thread_pool_with_globals<rustc_interface[a7beddea6b2aa80d]::interface::run_compiler<core[e1b34d82e9cff2ed]::result::Result<(), rustc_span[b73f4c38f6b79966]::ErrorGuaranteed>, rustc_driver_impl[83de0f0d7a3bbaf8]::run_compiler::{closure#0}>::{closure#1}, core[e1b34d82e9cff2ed]::result::Result<(), rustc_span[b73f4c38f6b79966]::ErrorGuaranteed>>::{closure#0}, core[e1b34d82e9cff2ed]::result::Result<(), rustc_span[b73f4c38f6b79966]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[e1b34d82e9cff2ed]::result::Result<(), rustc_span[b73f4c38f6b79966]::ErrorGuaranteed>>::{closure#1} as core[e1b34d82e9cff2ed]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  45:     0x7f5ff75da701 - std::sys::pal::unix::thread::Thread::new::thread_start::h4498a525a6fc6a9e
  46:     0x7f5ff8cc639d - <unknown>
  47:     0x7f5ff8d4b49c - <unknown>
  48:                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: please attach the file at `/tmp/im/rustc-ice-2024-10-05T08_59_17-989073.txt` to your bug report

query stack during panic:
#0 [check_well_formed] checking that `IntFactory::stream` is well-formed
#1 [check_mod_type_wf] checking that types are well-formed in top-level module
end of query stack
error: aborting due to 3 previous errors; 1 warning emitted

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

@bors bors closed this as completed in 6b60f03 Oct 31, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this issue Oct 31, 2024
Rollup merge of rust-lang#129383 - cjgillot:opaque-noremap, r=compiler-errors,petrochenkov

Remap impl-trait lifetimes on HIR instead of AST lowering

Current AST->HIR lowering goes out of its way to remap lifetimes for opaque types. This is complicated and leaks into upstream and downstream code.

This PR stops trying to be clever during lowering, and prefers to do this remapping during the HIR->ty lowering. The remapping computation easily fits into the bound var resolution code. Its result can be used in by `generics_of` and `hir_ty_lowering::new_opaque` to add the proper parameters and arguments.

See an example on the doc for query `opaque_captured_lifetimes`.

Based on rust-lang#129244

Fixes rust-lang#125249
Fixes rust-lang#126850

cc `@compiler-errors` `@spastorino`
r? `@petrochenkov`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. F-return_position_impl_trait_in_trait `#![feature(return_position_impl_trait_in_trait)]` F-return_type_notation `#[feature(return_type_notation)]` I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ S-bug-has-test Status: This bug is tracked inside the repo by a `known-bug` test. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants