Skip to content

ICE when generic constraint involving trait alias is not met #108072

Description

@eggyal

Code

#![feature(trait_alias)]

trait IteratorAlias = Iterator;

fn f(_: impl IteratorAlias) {}

fn main() {
    f(())
}

Playground

Meta

rustc --version --verbose:

rustc 1.69.0-nightly (0416b1a6f 2023-02-14)
binary: rustc
commit-hash: 0416b1a6f6d5c42696494e1a3a33580fd3f669d8
commit-date: 2023-02-14
host: x86_64-unknown-linux-gnu
release: 1.69.0-nightly
LLVM version: 15.0.7

Error output

thread 'rustc' panicked at 'expected an impl item, found Item { ident: IteratorAlias#0, owner_id: DefId(0:3 ~ playground[b795]::IteratorAlias), kind: TraitAlias(Generics { params: [], predicates: [], has_where_clause_predicates: false, where_clause_span: src/main.rs:3:31: 3:31 (#0), span: src/main.rs:3:20: 3:20 (#0) }, [Trait(PolyTraitRef { bound_generic_params: [], trait_ref: TraitRef { path: Path { span: src/main.rs:3:23: 3:31 (#0), res: Def(Trait, DefId(2:7197 ~ core[a4f4]::iter::traits::iterator::Iterator)), segments: [PathSegment { ident: Iterator#0, hir_id: HirId(DefId(0:3 ~ playground[b795]::IteratorAlias).1), res: Def(Trait, DefId(2:7197 ~ core[a4f4]::iter::traits::iterator::Iterator)), args: None, infer_args: false }] }, hir_ref_id: HirId(DefId(0:3 ~ playground[b795]::IteratorAlias).2) }, span: src/main.rs:3:23: 3:31 (#0) }, None)]), span: src/main.rs:3:1: 3:32 (#0), vis_span: src/main.rs:3:1: 3:1 (#0) }', compiler/rustc_hir_analysis/src/collect.rs:1345:62
Backtrace

   0:     0x7fd385dc69ea - std::backtrace_rs::backtrace::libunwind::trace::hbdb546ca92cb6d78
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fd385dc69ea - std::backtrace_rs::backtrace::trace_unsynchronized::hc6fce42db22bfc5e
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fd385dc69ea - std::sys_common::backtrace::_print_fmt::h81df7bc0b23e5237
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7fd385dc69ea - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hc59be13e437abc01
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fd385e26afe - core::fmt::write::h52ae72821e51c26c
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/core/src/fmt/mod.rs:1232:17
   5:     0x7fd385db7005 - std::io::Write::write_fmt::hd87c8dd79580982c
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/io/mod.rs:1684:15
   6:     0x7fd385dc67b5 - std::sys_common::backtrace::_print::h20f47bfc31ead101
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7fd385dc67b5 - std::sys_common::backtrace::print::ha898201a02f1983d
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7fd385dc954f - std::panicking::default_hook::{{closure}}::h53f82cfee6bbc6bc
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/panicking.rs:267:22
   9:     0x7fd385dc928b - std::panicking::default_hook::ha6709b03b61260ba
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/panicking.rs:286:9
  10:     0x7fd389125e94 - <rustc_driver_impl[e0927287439ac92b]::DEFAULT_HOOK::{closure#0}::{closure#0} as core[a4f442881c2ef06d]::ops::function::FnOnce<(&core[a4f442881c2ef06d]::panic::panic_info::PanicInfo,)>>::call_once::{shim:vtable#0}
  11:     0x7fd385dc9d8a - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h2eed0239097b069b
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/alloc/src/boxed.rs:2002:9
  12:     0x7fd385dc9d8a - std::panicking::rust_panic_with_hook::h1feda37d03dc2311
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/panicking.rs:692:13
  13:     0x7fd385dc9b09 - std::panicking::begin_panic_handler::{{closure}}::h04d1fa7b2fbcb101
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/panicking.rs:579:13
  14:     0x7fd385dc6e8c - std::sys_common::backtrace::__rust_end_short_backtrace::hd635f2032b0cab87
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/sys_common/backtrace.rs:137:18
  15:     0x7fd385dc9812 - rust_begin_unwind
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/panicking.rs:575:5
  16:     0x7fd385e234a3 - core::panicking::panic_fmt::h5d8c50f99f6f87ff
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/core/src/panicking.rs:64:14
  17:     0x7fd3891ee589 - <rustc_hir[2543b51deb511ab7]::hir::Item>::expect_failed
  18:     0x7fd3884c8558 - rustc_hir_analysis[baeabd04615cee02]::collect::impl_trait_ref
  19:     0x7fd388aa72ef - <rustc_query_impl[9dfc87ac15399443]::Queries as rustc_middle[db7416be43adeac6]::ty::query::QueryEngine>::impl_trait_ref
  20:     0x7fd3892b198c - <rustc_hir_typeck[6038900cd713a4a3]::fn_ctxt::FnCtxt>::blame_specific_expr_if_possible_for_obligation_cause_code
  21:     0x7fd3892b1887 - <rustc_hir_typeck[6038900cd713a4a3]::fn_ctxt::FnCtxt>::blame_specific_expr_if_possible
  22:     0x7fd3892b17c7 - <rustc_hir_typeck[6038900cd713a4a3]::fn_ctxt::FnCtxt>::blame_specific_arg_if_possible
  23:     0x7fd3892b0cf8 - <rustc_hir_typeck[6038900cd713a4a3]::fn_ctxt::FnCtxt>::adjust_fulfillment_error_for_expr_obligation
  24:     0x7fd3892b77d5 - <rustc_hir_typeck[6038900cd713a4a3]::fn_ctxt::FnCtxt>::adjust_fulfillment_errors_for_expr_obligation
  25:     0x7fd3874563ff - <rustc_hir_typeck[6038900cd713a4a3]::fn_ctxt::FnCtxt>::check_argument_types
  26:     0x7fd387424d2d - <rustc_hir_typeck[6038900cd713a4a3]::fn_ctxt::FnCtxt>::check_call
  27:     0x7fd3871bf02f - <rustc_hir_typeck[6038900cd713a4a3]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  28:     0x7fd3871ffefd - <rustc_hir_typeck[6038900cd713a4a3]::fn_ctxt::FnCtxt>::check_block_with_expected
  29:     0x7fd3871bf570 - <rustc_hir_typeck[6038900cd713a4a3]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  30:     0x7fd387c5fa3b - <rustc_hir_typeck[6038900cd713a4a3]::fn_ctxt::FnCtxt>::check_return_expr
  31:     0x7fd387c57016 - rustc_hir_typeck[6038900cd713a4a3]::check::check_fn
  32:     0x7fd387c3b2c0 - rustc_hir_typeck[6038900cd713a4a3]::typeck
  33:     0x7fd3872aa9d3 - rustc_query_system[aacab3c8f4295403]::query::plumbing::try_execute_query::<rustc_query_impl[9dfc87ac15399443]::queries::typeck, rustc_query_impl[9dfc87ac15399443]::plumbing::QueryCtxt>
  34:     0x7fd38885eaab - rustc_data_structures[86913d64ad6510b]::sync::par_for_each_in::<&[rustc_span[b67a18860b098bfc]::def_id::LocalDefId], <rustc_middle[db7416be43adeac6]::hir::map::Map>::par_body_owners<rustc_hir_typeck[6038900cd713a4a3]::typeck_item_bodies::{closure#0}>::{closure#0}>
  35:     0x7fd38885e8a1 - rustc_hir_typeck[6038900cd713a4a3]::typeck_item_bodies
  36:     0x7fd3886958b3 - rustc_query_system[aacab3c8f4295403]::query::plumbing::try_execute_query::<rustc_query_impl[9dfc87ac15399443]::queries::typeck_item_bodies, rustc_query_impl[9dfc87ac15399443]::plumbing::QueryCtxt>
  37:     0x7fd388aaa66b - <rustc_query_impl[9dfc87ac15399443]::Queries as rustc_middle[db7416be43adeac6]::ty::query::QueryEngine>::typeck_item_bodies
  38:     0x7fd38856e37e - <rustc_session[5f5732a9ce5d58bc]::session::Session>::time::<(), rustc_hir_analysis[baeabd04615cee02]::check_crate::{closure#7}>
  39:     0x7fd38856b5a0 - rustc_hir_analysis[baeabd04615cee02]::check_crate
  40:     0x7fd3885659f0 - rustc_interface[da2bca27cf188e3c]::passes::analysis
  41:     0x7fd3888b9602 - rustc_query_system[aacab3c8f4295403]::query::plumbing::try_execute_query::<rustc_query_impl[9dfc87ac15399443]::queries::analysis, rustc_query_impl[9dfc87ac15399443]::plumbing::QueryCtxt>
  42:     0x7fd388aa274a - <rustc_query_impl[9dfc87ac15399443]::Queries as rustc_middle[db7416be43adeac6]::ty::query::QueryEngine>::analysis
  43:     0x7fd3887a5c19 - <rustc_middle[db7416be43adeac6]::ty::context::GlobalCtxt>::enter::<rustc_driver_impl[e0927287439ac92b]::run_compiler::{closure#1}::{closure#2}::{closure#3}, core[a4f442881c2ef06d]::result::Result<(), rustc_errors[138a5dc35f5b9460]::ErrorGuaranteed>>
  44:     0x7fd388327f49 - <rustc_interface[da2bca27cf188e3c]::interface::Compiler>::enter::<rustc_driver_impl[e0927287439ac92b]::run_compiler::{closure#1}::{closure#2}, core[a4f442881c2ef06d]::result::Result<core[a4f442881c2ef06d]::option::Option<rustc_interface[da2bca27cf188e3c]::queries::Linker>, rustc_errors[138a5dc35f5b9460]::ErrorGuaranteed>>
  45:     0x7fd3883230c4 - rustc_span[b67a18860b098bfc]::with_source_map::<core[a4f442881c2ef06d]::result::Result<(), rustc_errors[138a5dc35f5b9460]::ErrorGuaranteed>, rustc_interface[da2bca27cf188e3c]::interface::run_compiler<core[a4f442881c2ef06d]::result::Result<(), rustc_errors[138a5dc35f5b9460]::ErrorGuaranteed>, rustc_driver_impl[e0927287439ac92b]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
  46:     0x7fd388322bd4 - <scoped_tls[7e7c0fc199c1fd10]::ScopedKey<rustc_span[b67a18860b098bfc]::SessionGlobals>>::set::<rustc_interface[da2bca27cf188e3c]::interface::run_compiler<core[a4f442881c2ef06d]::result::Result<(), rustc_errors[138a5dc35f5b9460]::ErrorGuaranteed>, rustc_driver_impl[e0927287439ac92b]::run_compiler::{closure#1}>::{closure#0}, core[a4f442881c2ef06d]::result::Result<(), rustc_errors[138a5dc35f5b9460]::ErrorGuaranteed>>
  47:     0x7fd3883222d2 - std[c4719229b53c8129]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[da2bca27cf188e3c]::util::run_in_thread_pool_with_globals<rustc_interface[da2bca27cf188e3c]::interface::run_compiler<core[a4f442881c2ef06d]::result::Result<(), rustc_errors[138a5dc35f5b9460]::ErrorGuaranteed>, rustc_driver_impl[e0927287439ac92b]::run_compiler::{closure#1}>::{closure#0}, core[a4f442881c2ef06d]::result::Result<(), rustc_errors[138a5dc35f5b9460]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[a4f442881c2ef06d]::result::Result<(), rustc_errors[138a5dc35f5b9460]::ErrorGuaranteed>>
  48:     0x7fd3889bd5fc - <<std[c4719229b53c8129]::thread::Builder>::spawn_unchecked_<rustc_interface[da2bca27cf188e3c]::util::run_in_thread_pool_with_globals<rustc_interface[da2bca27cf188e3c]::interface::run_compiler<core[a4f442881c2ef06d]::result::Result<(), rustc_errors[138a5dc35f5b9460]::ErrorGuaranteed>, rustc_driver_impl[e0927287439ac92b]::run_compiler::{closure#1}>::{closure#0}, core[a4f442881c2ef06d]::result::Result<(), rustc_errors[138a5dc35f5b9460]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[a4f442881c2ef06d]::result::Result<(), rustc_errors[138a5dc35f5b9460]::ErrorGuaranteed>>::{closure#1} as core[a4f442881c2ef06d]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  49:     0x7fd385dd3d23 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h16d50f6a791b9ecf
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/alloc/src/boxed.rs:1988:9
  50:     0x7fd385dd3d23 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hcb8a06476f463180
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/alloc/src/boxed.rs:1988:9
  51:     0x7fd385dd3d23 - std::sys::unix::thread::Thread::new::thread_start::hf9921b6eef74fae1
                               at /rustc/0416b1a6f6d5c42696494e1a3a33580fd3f669d8/library/std/src/sys/unix/thread.rs:108:17
  52:     0x7fd385c96609 - start_thread
  53:     0x7fd385bb9133 - clone
  54:                0x0 - <unknown>

No activity

Activity on this issue will appear here.

Activity

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-trait_alias`#![feature(trait_alias)]`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

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions