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

Open
matthiaskrgr opened this issue May 18, 2024 · 1 comment
Open

ICE: assertion failed: unique #125249

matthiaskrgr opened this issue May 18, 2024 · 1 comment
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
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

No branches or pull requests

4 participants