Closed
Description
I tried this code:
#![feature(non_lifetime_binders)]
trait Foo: for<T> Bar<T> {}
trait Bar<T> {
fn method() -> T;
}
fn x<T: Foo>() {
let _: i32 = T::method();
}
fn main() {}
I expected to see this happen: Works
Instead, this happened: ICEs
Backtrace
error: internal compiler error: /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/compiler/rustc_middle/src/ty/fold.rs:297:33: unexpected bound ty in binder: BoundTy { var: 0, kind: Param(DefId(0:4 ~ test2[3490]::Foo::T), "T") }
thread 'rustc' panicked at 'Box<dyn Any>', /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/compiler/rustc_errors/src/lib.rs:1644:9
stack backtrace:
0: 0x7f75392f1afa - std::backtrace_rs::backtrace::libunwind::trace::h03465bf7db0a5bcb
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x7f75392f1afa - std::backtrace_rs::backtrace::trace_unsynchronized::hbbaffc0ea2e34ac1
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7f75392f1afa - std::sys_common::backtrace::_print_fmt::h1d5b1e20ba71cca1
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/std/src/sys_common/backtrace.rs:65:5
3: 0x7f75392f1afa - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h165ce139917464b9
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/std/src/sys_common/backtrace.rs:44:22
4: 0x7f753935527e - core::fmt::write::h2792ed374dfffc16
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/core/src/fmt/mod.rs:1232:17
5: 0x7f75392e4a65 - std::io::Write::write_fmt::h2cc74f32d7d965fd
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/std/src/io/mod.rs:1684:15
6: 0x7f75392f18c5 - std::sys_common::backtrace::_print::h0f11964b8176847a
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/std/src/sys_common/backtrace.rs:47:5
7: 0x7f75392f18c5 - std::sys_common::backtrace::print::h470b2efe95139481
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/std/src/sys_common/backtrace.rs:34:9
8: 0x7f75392f463f - std::panicking::default_hook::{{closure}}::h5390a93f85440547
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/std/src/panicking.rs:271:22
9: 0x7f75392f437b - std::panicking::default_hook::h55ab5fc49931b8c6
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/std/src/panicking.rs:290:9
10: 0x7f7538034a65 - rustc_driver_impl[d015eba24dbec9f4]::DEFAULT_HOOK::{closure#0}::{closure#0}
11: 0x7f75392f4e7d - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hf5a4865832d21b27
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/alloc/src/boxed.rs:2001:9
12: 0x7f75392f4e7d - std::panicking::rust_panic_with_hook::h2cb5caacebd97de6
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/std/src/panicking.rs:696:13
13: 0x7f7538590361 - std[ca26bff2e1d562d1]::panicking::begin_panic::<rustc_errors[c20b44f3691483b8]::ExplicitBug>::{closure#0}
14: 0x7f7538588c96 - std[ca26bff2e1d562d1]::sys_common::backtrace::__rust_end_short_backtrace::<std[ca26bff2e1d562d1]::panicking::begin_panic<rustc_errors[c20b44f3691483b8]::ExplicitBug>::{closure#0}, !>
15: 0x7f75385ffad6 - std[ca26bff2e1d562d1]::panicking::begin_panic::<rustc_errors[c20b44f3691483b8]::ExplicitBug>
16: 0x7f75385dd196 - std[ca26bff2e1d562d1]::panic::panic_any::<rustc_errors[c20b44f3691483b8]::ExplicitBug>
17: 0x7f75385d8bf6 - <rustc_errors[c20b44f3691483b8]::HandlerInner>::bug::<&alloc[7e0ac51c68d25960]::string::String>
18: 0x7f75385d88c0 - <rustc_errors[c20b44f3691483b8]::Handler>::bug::<&alloc[7e0ac51c68d25960]::string::String>
19: 0x7f75385cfaab - rustc_middle[5d26472a27b225ef]::util::bug::opt_span_bug_fmt::<rustc_span[9d0cfc316ec6e1cb]::span_encoding::Span>::{closure#0}
20: 0x7f75385ce3fa - rustc_middle[5d26472a27b225ef]::ty::context::tls::with_opt::<rustc_middle[5d26472a27b225ef]::util::bug::opt_span_bug_fmt<rustc_span[9d0cfc316ec6e1cb]::span_encoding::Span>::{closure#0}, !>::{closure#0}
21: 0x7f75385ce3c6 - rustc_middle[5d26472a27b225ef]::ty::context::tls::with_context_opt::<rustc_middle[5d26472a27b225ef]::ty::context::tls::with_opt<rustc_middle[5d26472a27b225ef]::util::bug::opt_span_bug_fmt<rustc_span[9d0cfc316ec6e1cb]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
22: 0x7f75385cf9f6 - rustc_middle[5d26472a27b225ef]::util::bug::opt_span_bug_fmt::<rustc_span[9d0cfc316ec6e1cb]::span_encoding::Span>
23: 0x7f753673bc83 - rustc_middle[5d26472a27b225ef]::util::bug::bug_fmt
24: 0x7f7538295bcc - <rustc_middle[5d26472a27b225ef]::ty::context::TyCtxt>::replace_late_bound_regions_uncached::<rustc_middle[5d26472a27b225ef]::ty::sty::FnSig, <rustc_middle[5d26472a27b225ef]::ty::context::TyCtxt>::replace_late_bound_regions<rustc_middle[5d26472a27b225ef]::ty::sty::FnSig, <rustc_middle[5d26472a27b225ef]::ty::context::TyCtxt>::erase_late_bound_regions<rustc_middle[5d26472a27b225ef]::ty::sty::FnSig>::{closure#0}>::{closure#0}>::{closure#0}
25: 0x7f753647b9fc - <&rustc_middle[5d26472a27b225ef]::ty::list::List<rustc_middle[5d26472a27b225ef]::ty::subst::GenericArg> as rustc_type_ir[8a1cfb389b230c51]::fold::TypeFoldable<rustc_middle[5d26472a27b225ef]::ty::context::TyCtxt>>::try_fold_with::<rustc_middle[5d26472a27b225ef]::ty::fold::BoundVarReplacer<rustc_middle[5d26472a27b225ef]::ty::fold::FnMutDelegate>>
26: 0x7f753647b405 - <rustc_middle[5d26472a27b225ef]::ty::sty::AliasTy as rustc_type_ir[8a1cfb389b230c51]::fold::TypeFoldable<rustc_middle[5d26472a27b225ef]::ty::context::TyCtxt>>::try_fold_with::<rustc_middle[5d26472a27b225ef]::ty::fold::BoundVarReplacer<rustc_middle[5d26472a27b225ef]::ty::fold::FnMutDelegate>>
27: 0x7f753641a5aa - <rustc_hir_typeck[f02af9c3a020a3d4]::method::probe::ProbeContext>::assemble_inherent_candidates
28: 0x7f75364126bb - <rustc_infer[7c33ae0544901c48]::infer::InferCtxt>::probe::<core[7c472ba66930c5d6]::result::Result<rustc_hir_typeck[f02af9c3a020a3d4]::method::probe::Pick, rustc_hir_typeck[f02af9c3a020a3d4]::method::MethodError>, <rustc_hir_typeck[f02af9c3a020a3d4]::fn_ctxt::FnCtxt>::probe_op<<rustc_hir_typeck[f02af9c3a020a3d4]::fn_ctxt::FnCtxt>::probe_for_name::{closure#0}, rustc_hir_typeck[f02af9c3a020a3d4]::method::probe::Pick>::{closure#4}>
29: 0x7f7536440bf5 - <rustc_hir_typeck[f02af9c3a020a3d4]::fn_ctxt::FnCtxt>::resolve_fully_qualified_call
30: 0x7f753642cf41 - <rustc_hir_typeck[f02af9c3a020a3d4]::fn_ctxt::FnCtxt>::check_expr_path
31: 0x7f75363d9378 - <rustc_hir_typeck[f02af9c3a020a3d4]::fn_ctxt::FnCtxt>::check_call
32: 0x7f75363f8be3 - <rustc_hir_typeck[f02af9c3a020a3d4]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
33: 0x7f753642bc28 - <rustc_hir_typeck[f02af9c3a020a3d4]::fn_ctxt::FnCtxt>::check_decl
34: 0x7f75364282bb - <rustc_hir_typeck[f02af9c3a020a3d4]::fn_ctxt::FnCtxt>::check_block_with_expected
35: 0x7f75363f9116 - <rustc_hir_typeck[f02af9c3a020a3d4]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
36: 0x7f7536fceb74 - <rustc_hir_typeck[f02af9c3a020a3d4]::fn_ctxt::FnCtxt>::check_return_expr
37: 0x7f7536fc6f67 - rustc_hir_typeck[f02af9c3a020a3d4]::check::check_fn
38: 0x7f7536fb1377 - rustc_hir_typeck[f02af9c3a020a3d4]::typeck
39: 0x7f753649738c - rustc_query_system[b004d522c7f04025]::query::plumbing::try_execute_query::<rustc_query_impl[90210f7f475d36bc]::queries::typeck, rustc_query_impl[90210f7f475d36bc]::plumbing::QueryCtxt>
40: 0x7f753780e74f - rustc_data_structures[f58a2cf4d4a4a31d]::sync::par_for_each_in::<&[rustc_span[9d0cfc316ec6e1cb]::def_id::LocalDefId], <rustc_middle[5d26472a27b225ef]::hir::map::Map>::par_body_owners<rustc_hir_typeck[f02af9c3a020a3d4]::typeck_item_bodies::{closure#0}>::{closure#0}>
41: 0x7f753780e50f - rustc_hir_typeck[f02af9c3a020a3d4]::typeck_item_bodies
42: 0x7f75376872dd - rustc_query_system[b004d522c7f04025]::query::plumbing::try_execute_query::<rustc_query_impl[90210f7f475d36bc]::queries::typeck_item_bodies, rustc_query_impl[90210f7f475d36bc]::plumbing::QueryCtxt>
43: 0x7f7537686fcb - <rustc_query_impl[90210f7f475d36bc]::Queries as rustc_middle[5d26472a27b225ef]::ty::query::QueryEngine>::typeck_item_bodies
44: 0x7f7536331153 - <rustc_session[80e90e186d06c1cb]::session::Session>::time::<(), rustc_hir_analysis[3ca3b9af3da40c63]::check_crate::{closure#7}>
45: 0x7f753632dc0d - rustc_hir_analysis[3ca3b9af3da40c63]::check_crate
46: 0x7f7536321e62 - rustc_interface[26c5cf3d4e6d8495]::passes::analysis
47: 0x7f753789365d - rustc_query_system[b004d522c7f04025]::query::plumbing::try_execute_query::<rustc_query_impl[90210f7f475d36bc]::queries::analysis, rustc_query_impl[90210f7f475d36bc]::plumbing::QueryCtxt>
48: 0x7f753789335f - <rustc_query_impl[90210f7f475d36bc]::Queries as rustc_middle[5d26472a27b225ef]::ty::query::QueryEngine>::analysis
49: 0x7f75376bc876 - <rustc_middle[5d26472a27b225ef]::ty::context::GlobalCtxt>::enter::<rustc_driver_impl[d015eba24dbec9f4]::run_compiler::{closure#1}::{closure#2}::{closure#4}, core[7c472ba66930c5d6]::result::Result<(), rustc_span[9d0cfc316ec6e1cb]::ErrorGuaranteed>>
50: 0x7f75372a5c18 - rustc_span[9d0cfc316ec6e1cb]::with_source_map::<core[7c472ba66930c5d6]::result::Result<(), rustc_span[9d0cfc316ec6e1cb]::ErrorGuaranteed>, rustc_interface[26c5cf3d4e6d8495]::interface::run_compiler<core[7c472ba66930c5d6]::result::Result<(), rustc_span[9d0cfc316ec6e1cb]::ErrorGuaranteed>, rustc_driver_impl[d015eba24dbec9f4]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
51: 0x7f753729d29c - std[ca26bff2e1d562d1]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[26c5cf3d4e6d8495]::util::run_in_thread_pool_with_globals<rustc_interface[26c5cf3d4e6d8495]::interface::run_compiler<core[7c472ba66930c5d6]::result::Result<(), rustc_span[9d0cfc316ec6e1cb]::ErrorGuaranteed>, rustc_driver_impl[d015eba24dbec9f4]::run_compiler::{closure#1}>::{closure#0}, core[7c472ba66930c5d6]::result::Result<(), rustc_span[9d0cfc316ec6e1cb]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[7c472ba66930c5d6]::result::Result<(), rustc_span[9d0cfc316ec6e1cb]::ErrorGuaranteed>>
52: 0x7f753729ccca - <<std[ca26bff2e1d562d1]::thread::Builder>::spawn_unchecked_<rustc_interface[26c5cf3d4e6d8495]::util::run_in_thread_pool_with_globals<rustc_interface[26c5cf3d4e6d8495]::interface::run_compiler<core[7c472ba66930c5d6]::result::Result<(), rustc_span[9d0cfc316ec6e1cb]::ErrorGuaranteed>, rustc_driver_impl[d015eba24dbec9f4]::run_compiler::{closure#1}>::{closure#0}, core[7c472ba66930c5d6]::result::Result<(), rustc_span[9d0cfc316ec6e1cb]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[7c472ba66930c5d6]::result::Result<(), rustc_span[9d0cfc316ec6e1cb]::ErrorGuaranteed>>::{closure#1} as core[7c472ba66930c5d6]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
53: 0x7f75392fecb3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h53b8e926121c1b9a
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/alloc/src/boxed.rs:1987:9
54: 0x7f75392fecb3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::he5a7c9fb3937128b
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/alloc/src/boxed.rs:1987:9
55: 0x7f75392fecb3 - std::sys::unix::thread::Thread::new::thread_start::hadeb8936ad30fb42
at /rustc/44cfafe2fafe816395d3acc434663a45d5178c41/library/std/src/sys/unix/thread.rs:108:17
56: 0x7f753484344b - start_thread
57: 0x7f753457e52f - __clone
58: 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: rustc 1.69.0-nightly (44cfafe2f 2023-03-03) running on x86_64-unknown-linux-gnu
query stack during panic:
#0 [typeck] type-checking `x`
#1 [typeck_item_bodies] type-checking all item bodies
#2 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error; 1 warning emitted