Skip to content

ICE assertion failed: !ty.needs_infer() #110161

Closed
@matthiaskrgr

Description

@matthiaskrgr

Code

trait Combine<'a> {
    type Ty;
}

impl<'a, T> Combine<'a> for Box<T> {}

struct WrapC<T>(T);
impl<'a, 'x: 'a, T> Combine<'a> for WrapC<T>
where
    T: Combine<'a, Ty = &'a &'x ()>,
{
    type Ty = &'a &'x ();
}

fn test_wrap<'a, 'b, 'c1, 'c2, A, B>(
    _: <WrapC<Box<&'main ()>> as Combine<'c2>>::Ty, 
) {}

Meta

rustc --version --verbose:

rustc 1.70.0-nightly (696aaad58 2023-04-09)
binary: rustc
commit-hash: 696aaad58c57a589f6fb2ecff5bae2eec581cb71
commit-date: 2023-04-09
host: x86_64-unknown-linux-gnu
release: 1.70.0-nightly
LLVM version: 16.0.2

Error output

<output>
Backtrace

error[E0261]: use of undeclared lifetime name `'main`
  --> treereduce.out:16:20
   |
15 | fn test_wrap<'a, 'b, 'c1, 'c2, A, B>(
   |              - help: consider introducing lifetime `'main` here: `'main,`
16 |     _: <WrapC<Box<&'main ()>> as Combine<'c2>>::Ty,
   |                    ^^^^^ undeclared lifetime

error[E0601]: `main` function not found in crate `treereduce`
  --> treereduce.out:17:5
   |
17 | ) {}
   |     ^ consider adding a `main` function to `treereduce.out`

thread 'rustc' panicked at 'assertion failed: !ty.needs_infer()', compiler/rustc_trait_selection/src/traits/outlives_bounds.rs:58:9
stack backtrace:
   0:     0x7f1f9f764f0a - std::backtrace_rs::backtrace::libunwind::trace::hd26deac9c5400510
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7f1f9f764f0a - std::backtrace_rs::backtrace::trace_unsynchronized::h0d525c5df19c5fb3
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f1f9f764f0a - std::sys_common::backtrace::_print_fmt::hfa46a4e5b1417412
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7f1f9f764f0a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hd35deac25c2a2361
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7f1f9f7c8fcf - core::fmt::write::h57692caee39fe498
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/core/src/fmt/mod.rs:1254:17
   5:     0x7f1f9f757a45 - std::io::Write::write_fmt::h3cf8ad4e45a4d8c5
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/io/mod.rs:1698:15
   6:     0x7f1f9f764cd5 - std::sys_common::backtrace::_print::hdf25b99ab69d47c1
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7f1f9f764cd5 - std::sys_common::backtrace::print::hf7d8e454ceffbfe6
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7f1f9f76797e - std::panicking::default_hook::{{closure}}::hd867f5f971a369e7
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/panicking.rs:269:22
   9:     0x7f1f9f767725 - std::panicking::default_hook::habf6eee7b304b436
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/panicking.rs:288:9
  10:     0x7f1fa2a55665 - rustc_driver_impl[2d97b4318b2b8966]::DEFAULT_HOOK::{closure#0}::{closure#0}
  11:     0x7f1f9f768174 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h0aac6d981c9df2cb
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/alloc/src/boxed.rs:1990:9
  12:     0x7f1f9f768174 - std::panicking::rust_panic_with_hook::h0ae6f6705c097c51
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/panicking.rs:694:13
  13:     0x7f1f9f767ea2 - std::panicking::begin_panic_handler::{{closure}}::hbe8782e7e80a84bd
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/panicking.rs:579:13
  14:     0x7f1f9f765376 - std::sys_common::backtrace::__rust_end_short_backtrace::hc6aeb922005c62a1
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/sys_common/backtrace.rs:150:18
  15:     0x7f1f9f767c42 - rust_begin_unwind
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/panicking.rs:577:5
  16:     0x7f1f9f7c52e3 - core::panicking::panic_fmt::h558c06d837516a28
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/core/src/panicking.rs:67:14
  17:     0x7f1f9f7c537d - core::panicking::panic::hee3e155c560a4e20
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/core/src/panicking.rs:117:5
  18:     0x7f1fa17e4eea - <rustc_infer[37e422eb914efaf5]::infer::outlives::env::OutlivesEnvironment>::with_bounds::<core[df85f84a2bdb4263]::iter::adapters::flatten::FlatMap<indexmap[e897b03f07ffded1]::set::IntoIter<rustc_middle[9ae9af9eb73fc3b1]::ty::Ty>, alloc[3819410e73c92c1b]::vec::Vec<rustc_middle[9ae9af9eb73fc3b1]::traits::query::OutlivesBound>, <rustc_infer[37e422eb914efaf5]::infer::InferCtxt as rustc_trait_selection[726c9a7f6e25929]::traits::outlives_bounds::InferCtxtExt>::implied_bounds_tys::{closure#0}>>
  19:     0x7f1fa17e02ef - rustc_hir_analysis[2fa568bcc53e911e]::check::wfcheck::check_item_fn
  20:     0x7f1fa17db199 - rustc_hir_analysis[2fa568bcc53e911e]::check::wfcheck::check_well_formed
  21:     0x7f1fa0f749ce - rustc_query_system[f15f440fadbc0dc2]::query::plumbing::try_execute_query::<rustc_query_impl[ed927665e84058ad]::queries::check_well_formed, rustc_query_impl[ed927665e84058ad]::plumbing::QueryCtxt>
  22:     0x7f1fa1c9fe57 - rustc_data_structures[6c5f262034998aae]::sync::par_for_each_in::<&[rustc_hir[1fa94aaa058a1f1a]::hir::ImplItemId], <rustc_middle[9ae9af9eb73fc3b1]::hir::ModuleItems>::par_impl_items<rustc_hir_analysis[2fa568bcc53e911e]::check::wfcheck::check_mod_type_wf::{closure#1}>::{closure#0}>
  23:     0x7f1fa1c9f914 - rustc_hir_analysis[2fa568bcc53e911e]::check::wfcheck::check_mod_type_wf
  24:     0x7f1fa207d231 - rustc_query_system[f15f440fadbc0dc2]::query::plumbing::try_execute_query::<rustc_query_impl[ed927665e84058ad]::queries::check_mod_type_wf, rustc_query_impl[ed927665e84058ad]::plumbing::QueryCtxt>
  25:     0x7f1fa207cdd9 - <rustc_query_impl[ed927665e84058ad]::Queries as rustc_middle[9ae9af9eb73fc3b1]::ty::query::QueryEngine>::check_mod_type_wf
  26:     0x7f1fa1f25c37 - rustc_data_structures[6c5f262034998aae]::sync::par_for_each_in::<&[rustc_hir[1fa94aaa058a1f1a]::hir_id::OwnerId], <rustc_middle[9ae9af9eb73fc3b1]::hir::map::Map>::par_for_each_module<rustc_hir_analysis[2fa568bcc53e911e]::check_crate::{closure#5}::{closure#0}::{closure#0}>::{closure#0}>
  27:     0x7f1fa1f259f0 - <rustc_session[ca8de67c023859ee]::session::Session>::track_errors::<rustc_hir_analysis[2fa568bcc53e911e]::check_crate::{closure#5}, ()>
  28:     0x7f1fa1f2301f - rustc_hir_analysis[2fa568bcc53e911e]::check_crate
  29:     0x7f1fa1f1d4a1 - rustc_interface[5859b4daf695f246]::passes::analysis
  30:     0x7f1fa21a50c2 - rustc_query_system[f15f440fadbc0dc2]::query::plumbing::try_execute_query::<rustc_query_impl[ed927665e84058ad]::queries::analysis, rustc_query_impl[ed927665e84058ad]::plumbing::QueryCtxt>
  31:     0x7f1fa21a4dd0 - <rustc_query_impl[ed927665e84058ad]::Queries as rustc_middle[9ae9af9eb73fc3b1]::ty::query::QueryEngine>::analysis
  32:     0x7f1fa20d6db6 - <std[3958f564ddc007dc]::thread::local::LocalKey<core[df85f84a2bdb4263]::cell::Cell<*const ()>>>::with::<rustc_middle[9ae9af9eb73fc3b1]::ty::context::tls::enter_context<<rustc_middle[9ae9af9eb73fc3b1]::ty::context::GlobalCtxt>::enter<rustc_driver_impl[2d97b4318b2b8966]::run_compiler::{closure#1}::{closure#2}::{closure#4}, core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>>::{closure#0}, core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>>::{closure#0}, core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>>
  33:     0x7f1fa1ce27ef - <rustc_interface[5859b4daf695f246]::interface::Compiler>::enter::<rustc_driver_impl[2d97b4318b2b8966]::run_compiler::{closure#1}::{closure#2}, core[df85f84a2bdb4263]::result::Result<core[df85f84a2bdb4263]::option::Option<rustc_interface[5859b4daf695f246]::queries::Linker>, rustc_span[24111c70308d7d50]::ErrorGuaranteed>>
  34:     0x7f1fa1cdda41 - rustc_span[24111c70308d7d50]::set_source_map::<core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>, rustc_interface[5859b4daf695f246]::interface::run_compiler<core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>, rustc_driver_impl[2d97b4318b2b8966]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
  35:     0x7f1fa1cdd586 - <scoped_tls[5f4f1a448a290364]::ScopedKey<rustc_span[24111c70308d7d50]::SessionGlobals>>::set::<rustc_interface[5859b4daf695f246]::interface::run_compiler<core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>, rustc_driver_impl[2d97b4318b2b8966]::run_compiler::{closure#1}>::{closure#0}, core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>>
  36:     0x7f1fa1cdcc5b - std[3958f564ddc007dc]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[5859b4daf695f246]::util::run_in_thread_pool_with_globals<rustc_interface[5859b4daf695f246]::interface::run_compiler<core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>, rustc_driver_impl[2d97b4318b2b8966]::run_compiler::{closure#1}>::{closure#0}, core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>>
  37:     0x7f1fa2320db1 - <<std[3958f564ddc007dc]::thread::Builder>::spawn_unchecked_<rustc_interface[5859b4daf695f246]::util::run_in_thread_pool_with_globals<rustc_interface[5859b4daf695f246]::interface::run_compiler<core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>, rustc_driver_impl[2d97b4318b2b8966]::run_compiler::{closure#1}>::{closure#0}, core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[df85f84a2bdb4263]::result::Result<(), rustc_span[24111c70308d7d50]::ErrorGuaranteed>>::{closure#1} as core[df85f84a2bdb4263]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  38:     0x7f1f9f772255 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h40268ec1e3f75121
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/alloc/src/boxed.rs:1976:9
  39:     0x7f1f9f772255 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hb4cdee1772a16528
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/alloc/src/boxed.rs:1976:9
  40:     0x7f1f9f772255 - std::sys::unix::thread::Thread::new::thread_start::h71a921bd46112f49
                               at /rustc/696aaad58c57a589f6fb2ecff5bae2eec581cb71/library/std/src/sys/unix/thread.rs:108:17
  41:     0x7f1f9f50cbb5 - <unknown>
  42:     0x7f1f9f58ed90 - <unknown>
  43:                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: rustc 1.70.0-nightly (696aaad58 2023-04-09) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [check_well_formed] checking that `test_wrap` is well-formed
#1 [check_mod_type_wf] checking that types are well-formed in top-level module
#2 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 2 previous errors

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

Metadata

Metadata

Assignees

Labels

C-bugCategory: This is a bug.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.regression-from-stable-to-nightlyPerformance or correctness regression from stable to nightly.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions