Skip to content

ICE: Encountered error Unimplemented selecting `Binder(... issue-37725.rs --emit mir -Zmir-opt-level=2 #73021

Closed
@matthiaskrgr

Description

@matthiaskrgr

Code

code from ./src/test/ui/issues/issue-37725.rs

// build-pass
#![allow(dead_code)]
trait Foo {
    fn foo(&self);
}

fn foo<'a>(s: &'a mut ()) where &'a mut (): Foo {
    s.foo();
}
fn main() {}

Meta

repo is @ 219380d

Error output

build/x86_64-unknown-linux-gnu/stage2/bin/rustc ./src/test/ui/issues/issue-37725.rs --emit mir -Zmir-opt-level=2

error: internal compiler error: src/librustc_trait_selection/traits/codegen/mod.rs:62: Encountered error `Unimplemented` selecting `Binder(<&mut () as Foo>)` during codegen

thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:907:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.45.0-dev running on x86_64-unknown-linux-gnu

note: compiler flags: -Z mir-opt-level=2

error: aborting due to previous error
Backtrace

error: internal compiler error: src/librustc_trait_selection/traits/codegen/mod.rs:62: Encountered error `Unimplemented` selecting `Binder(<&mut () as Foo>)` during codegen

thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:907:9
stack backtrace:
   0:     0x7f854c392d57 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::he2fbf5405bd3f46a
   1:     0x7f854c3dfa3d - core::fmt::write::h65255e7874586eb2
   2:     0x7f854c363b95 - std::io::Write::write_fmt::h3c49d63e356d89fe
   3:     0x7f854c36f980 - std::panicking::default_hook::{{closure}}::h6b88f05100c9e449
   4:     0x7f854c36f694 - std::panicking::default_hook::h57a663a807afe943
   5:     0x7f854dd278a3 - rustc_driver::report_ice::h34c4499908ba0b29
   6:     0x7f854c37006c - std::panicking::rust_panic_with_hook::haef04471b94d420c
   7:     0x7f8551e5a763 - std::panicking::begin_panic::h864c0841f11b0cc5
   8:     0x7f8551e693b0 - rustc_errors::HandlerInner::bug::hf4b00747a8046e38
   9:     0x7f8551e67c80 - rustc_errors::Handler::bug::h1a265be085905310
  10:     0x7f8551a00446 - rustc_middle::util::bug::opt_span_bug_fmt::{{closure}}::hc31214a436b0cba2
  11:     0x7f85519f80e5 - rustc_middle::ty::context::tls::with_opt::{{closure}}::h8a5fa3e61707645c
  12:     0x7f85519f804d - rustc_middle::ty::context::tls::with_opt::he95b2464f8e01c32
  13:     0x7f8551a00355 - rustc_middle::util::bug::opt_span_bug_fmt::h89c1337accb0a963
  14:     0x7f8551a002c0 - rustc_middle::util::bug::bug_fmt::h394875dd81e62801
  15:     0x7f85512e1063 - rustc_middle::ty::context::tls::with_context::{{closure}}::hcb597ad40f289ceb
  16:     0x7f85513c35b2 - rustc_trait_selection::traits::codegen::codegen_fulfill_obligation::h04afb560be6f50a0
  17:     0x7f854f948ce0 - rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::codegen_fulfill_obligation>::compute::h150cdd99437402d3
  18:     0x7f854f8fc84f - rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl::h5d5de00aae599a9f
  19:     0x7f854f93a687 - rustc_data_structures::stack::ensure_sufficient_stack::h10ea4587daeba69c
  20:     0x7f854f9224ad - rustc_query_system::query::plumbing::get_query_impl::h869324ff800ba811
  21:     0x7f854f94ae65 - rustc_ty::instance::resolve_instance::h2a8891af4d35eb86
  22:     0x7f8551a0b1ef - rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::resolve_instance>::compute::h04d053361670bbb5
  23:     0x7f8551805d75 - rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl::h3105f77cafdcd3ec
  24:     0x7f855198bf7b - rustc_data_structures::stack::ensure_sufficient_stack::he6771c1272790793
  25:     0x7f855184ca09 - rustc_query_system::query::plumbing::get_query_impl::h1a54d012f7ca9f66
  26:     0x7f85519fd95d - rustc_middle::ty::instance::Instance::resolve::h0c2d787267ba5284
  27:     0x7f85508af872 - rustc_mir::transform::inline::Inliner::run_pass::h007b6584e2f36079
  28:     0x7f85508af4e1 - <rustc_mir::transform::inline::Inline as rustc_mir::transform::MirPass>::run_pass::h71a943b5c1d2aa2f
  29:     0x7f85508b88ff - rustc_mir::transform::run_passes::h5cf0ebbe95e41c62
  30:     0x7f85508b9e76 - rustc_mir::transform::run_optimization_passes::h28cb849a160fe0ed
  31:     0x7f85508ba105 - rustc_mir::transform::optimized_mir::h0ca0c65ae05ae96c
  32:     0x7f855041866e - rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::optimized_mir>::compute::hebf7317f3c2372c7
  33:     0x7f85507de617 - rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl::he3935193a1ccaba5
  34:     0x7f85507546cf - rustc_query_system::query::plumbing::get_query_impl::{{closure}}::ha982673b78cb6e8d
  35:     0x7f85506f6562 - rustc_query_system::query::plumbing::get_query_impl::h5c8303c00395eac9
  36:     0x7f8550464c66 - rustc_mir::util::pretty::write_mir_pretty::h93c9145185ddab0f
  37:     0x7f8550960c23 - rustc_mir::transform::dump_mir::emit_mir::h514eb69ae7eaa045
  38:     0x7f854dee5604 - rustc_interface::passes::start_codegen::h64d9c511ec596bff
  39:     0x7f854df136d2 - rustc_middle::ty::context::tls::enter_global::hd5d9719ecc10b8ad
  40:     0x7f854df0977e - rustc_interface::queries::Queries::ongoing_codegen::h5a481c30c4739353
  41:     0x7f854dd35a0b - rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter::h46a369817e38d2d4
  42:     0x7f854dd9f7ca - rustc_span::with_source_map::ha1e1d15982d868c1
  43:     0x7f854dd37b49 - rustc_interface::interface::run_compiler_in_existing_thread_pool::hfd5622ef3ce026be
  44:     0x7f854dd1134e - scoped_tls::ScopedKey<T>::set::hd3c1397285b10bd3
  45:     0x7f854dd38576 - std::sys_common::backtrace::__rust_begin_short_backtrace::h3df4554cf04b61c9
  46:     0x7f854dd0517e - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb0a109416f61afc2
  47:     0x7f854c377d7a - std::sys::unix::thread::Thread::new::thread_start::hb2effada6f868308
  48:     0x7f854c09e422 - start_thread
  49:     0x7f854c1bcbf3 - __GI___clone
  50:                0x0 - <unknown>

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.45.0-dev running on x86_64-unknown-linux-gnu

note: compiler flags: -Z mir-opt-level=2

query stack during panic:
#0 [codegen_fulfill_obligation] checking if `Foo` fulfills its obligations
#1 [resolve_instance] resolving instance `<&mut () as Foo>::foo`
#2 [optimized_mir] optimizing MIR for `foo`
end of query stack
error: aborting due to previous error

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-mir-optArea: MIR optimizationsA-mir-opt-inliningArea: MIR inliningC-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.glacierICE tracked in rust-lang/glacier.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions