Skip to content

ICE: RPITIT: expected item, found trait method --emit mir #102571

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
matthiaskrgr opened this issue Oct 2, 2022 · 1 comment · Fixed by #102597
Closed

ICE: RPITIT: expected item, found trait method --emit mir #102571

matthiaskrgr opened this issue Oct 2, 2022 · 1 comment · Fixed by #102597
Assignees
Labels
C-bug Category: This is a bug. F-return_position_impl_trait_in_trait `#![feature(return_position_impl_trait_in_trait)]` 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.

Comments

@matthiaskrgr
Copy link
Member

matthiaskrgr commented Oct 2, 2022

Code

./src/test/ui/impl-trait/in-trait/nested-rpitit.rs

#![feature(return_position_impl_trait_in_trait)]
#![allow(incomplete_features)]

use std::fmt::Display;
use std::ops::Deref;

trait Foo {
    fn bar(self) -> impl Deref<Target = impl Display + ?Sized>;
}

struct A;

impl Foo for A {
    fn bar(self) -> &'static str {
        "Hello, world"
    }
}

fn main() {
   &A.bar();
}

Meta

rustc --version --verbose:

rustc 1.66.0-nightly (57f097ea2 2022-10-01)
binary: rustc
commit-hash: 57f097ea25f2c05f424fc9b9dc50dbd6d399845c
commit-date: 2022-10-01
host: x86_64-unknown-linux-gnu
release: 1.66.0-nightly
LLVM version: 15.0.2

Error output

rustc ./src/test/ui/impl-trait/in-trait/nested-rpitit.rs --emit=mir


Backtrace

error: internal compiler error: compiler/rustc_middle/src/hir/map/mod.rs:832:18: expected item, found trait method bar in Foo::bar (hir_id=HirId { owner: OwnerId { def_id: DefId(0:10 ~ nested_rpitit[fe13]::Foo::bar) }, local_id: 0 })

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/compiler/rustc_errors/src/lib.rs:1502:9
stack backtrace:
   0:     0x7efe81c38380 - std::backtrace_rs::backtrace::libunwind::trace::h80b67585f93dcdfa
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   1:     0x7efe81c38380 - std::backtrace_rs::backtrace::trace_unsynchronized::h1727d1d942e500b9
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7efe81c38380 - std::sys_common::backtrace::_print_fmt::h1d58d8daeea91706
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/std/src/sys_common/backtrace.rs:66:5
   3:     0x7efe81c38380 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h813c9b7ed78580ba
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/std/src/sys_common/backtrace.rs:45:22
   4:     0x7efe81c9314e - core::fmt::write::h3eecc0c99e4c5326
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/core/src/fmt/mod.rs:1209:17
   5:     0x7efe81c28f05 - std::io::Write::write_fmt::h169b89be5a4eb2e3
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/std/src/io/mod.rs:1679:15
   6:     0x7efe81c3b123 - std::sys_common::backtrace::_print::h8470ccc2c46bc222
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/std/src/sys_common/backtrace.rs:48:5
   7:     0x7efe81c3b123 - std::sys_common::backtrace::print::h59bfcbb529aad43f
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/std/src/sys_common/backtrace.rs:35:9
   8:     0x7efe81c3b123 - std::panicking::default_hook::{{closure}}::h19081fa8b049df20
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/std/src/panicking.rs:267:22
   9:     0x7efe81c3adfa - std::panicking::default_hook::h8f0eea70584d6151
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/std/src/panicking.rs:286:9
  10:     0x7efe844a7c21 - <rustc_driver[5f28de9a0492c992]::DEFAULT_HOOK::{closure#0}::{closure#0} as core[2f8af133219d6c11]::ops::function::FnOnce<(&core[2f8af133219d6c11]::panic::panic_info::PanicInfo,)>>::call_once::{shim:vtable#0}
  11:     0x7efe81c3b95b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hb9a306ebd1946910
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/alloc/src/boxed.rs:1952:9
  12:     0x7efe81c3b95b - std::panicking::rust_panic_with_hook::h6b2b2d988170cf5c
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/std/src/panicking.rs:673:13
  13:     0x7efe85472031 - std[281da818632cbbdf]::panicking::begin_panic::<rustc_errors[1020869c0a53ac34]::ExplicitBug>::{closure#0}
  14:     0x7efe8546f916 - std[281da818632cbbdf]::sys_common::backtrace::__rust_end_short_backtrace::<std[281da818632cbbdf]::panicking::begin_panic<rustc_errors[1020869c0a53ac34]::ExplicitBug>::{closure#0}, !>
  15:     0x7efe854cea86 - std[281da818632cbbdf]::panicking::begin_panic::<rustc_errors[1020869c0a53ac34]::ExplicitBug>
  16:     0x7efe8546ca26 - std[281da818632cbbdf]::panic::panic_any::<rustc_errors[1020869c0a53ac34]::ExplicitBug>
  17:     0x7efe8546945f - <rustc_errors[1020869c0a53ac34]::HandlerInner>::bug::<&alloc[ab68081038e0c5ba]::string::String>
  18:     0x7efe85468e70 - <rustc_errors[1020869c0a53ac34]::Handler>::bug::<&alloc[ab68081038e0c5ba]::string::String>
  19:     0x7efe85510c5d - rustc_middle[8a82caabfb0f2329]::ty::context::tls::with_context_opt::<rustc_middle[8a82caabfb0f2329]::ty::context::tls::with_opt<rustc_middle[8a82caabfb0f2329]::util::bug::opt_span_bug_fmt<rustc_span[efd8b0f1895919e0]::span_encoding::Span>::{closure#0}, ()>::{closure#0}, ()>
  20:     0x7efe85511b36 - rustc_middle[8a82caabfb0f2329]::util::bug::opt_span_bug_fmt::<rustc_span[efd8b0f1895919e0]::span_encoding::Span>
  21:     0x7efe82ede813 - rustc_middle[8a82caabfb0f2329]::util::bug::bug_fmt
  22:     0x7efe8392000d - <rustc_middle[8a82caabfb0f2329]::hir::map::Map>::expect_item
  23:     0x7efe8433e503 - rustc_ty_utils[77e3777a26d786a3]::assoc::associated_item
  24:     0x7efe83cef15e - rustc_query_system[e458c87a166b4189]::query::plumbing::get_query::<rustc_query_impl[f6287e509623bd0a]::queries::associated_item, rustc_query_impl[f6287e509623bd0a]::plumbing::QueryCtxt>
  25:     0x7efe85559b48 - <rustc_middle[8a82caabfb0f2329]::ty::print::pretty::FmtPrinter as rustc_middle[8a82caabfb0f2329]::ty::print::pretty::PrettyPrinter>::pretty_print_opaque_impl_type
  26:     0x7efe8555ac7e - <rustc_middle[8a82caabfb0f2329]::ty::print::pretty::FmtPrinter as rustc_middle[8a82caabfb0f2329]::ty::print::pretty::PrettyPrinter>::pretty_fn_sig
  27:     0x7efe8552e09d - <rustc_middle[8a82caabfb0f2329]::ty::sty::FnSig as rustc_middle[8a82caabfb0f2329]::ty::print::Print<rustc_middle[8a82caabfb0f2329]::ty::print::pretty::FmtPrinter>>::print
  28:     0x7efe85562057 - <rustc_middle[8a82caabfb0f2329]::ty::print::pretty::FmtPrinter as rustc_middle[8a82caabfb0f2329]::ty::print::pretty::PrettyPrinter>::in_binder::<rustc_middle[8a82caabfb0f2329]::ty::sty::FnSig>
  29:     0x7efe8404a978 - <rustc_middle[8a82caabfb0f2329]::ty::print::pretty::FmtPrinter as rustc_middle[8a82caabfb0f2329]::ty::print::pretty::PrettyPrinter>::pretty_print_type
  30:     0x7efe82e04d3b - <rustc_middle[8a82caabfb0f2329]::ty::Ty as core[2f8af133219d6c11]::fmt::Display>::fmt
  31:     0x7efe81c9314e - core::fmt::write::h3eecc0c99e4c5326
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/core/src/fmt/mod.rs:1209:17
  32:     0x7efe81c852ff - core::fmt::Write::write_fmt::hbc58543f8ab67731
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/core/src/fmt/mod.rs:192:9
  33:     0x7efe81c852ff - alloc::fmt::format::format_inner::h6efe0f178dfca440
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/alloc/src/fmt.rs:612:9
  34:     0x7efe854aa2f1 - <rustc_middle[8a82caabfb0f2329]::mir::pretty::ExtraComments as rustc_middle[8a82caabfb0f2329]::mir::visit::Visitor>::visit_constant
  35:     0x7efe854b2eda - <rustc_middle[8a82caabfb0f2329]::mir::pretty::ExtraComments as rustc_middle[8a82caabfb0f2329]::mir::visit::Visitor>::visit_terminator
  36:     0x7efe854a89a9 - rustc_middle[8a82caabfb0f2329]::mir::pretty::write_mir_pretty::{closure#0}
  37:     0x7efe854a70c0 - rustc_middle[8a82caabfb0f2329]::mir::pretty::write_mir_pretty
  38:     0x7efe84891f40 - rustc_mir_transform[59cb29f3acb1db3]::dump_mir::emit_mir
  39:     0x7efe831a4ad8 - <rustc_interface[a2e36ac52ab23c81]::passes::QueryContext>::enter::<<rustc_interface[a2e36ac52ab23c81]::queries::Queries>::ongoing_codegen::{closure#0}::{closure#0}, core[2f8af133219d6c11]::result::Result<alloc[ab68081038e0c5ba]::boxed::Box<dyn core[2f8af133219d6c11]::any::Any>, rustc_errors[1020869c0a53ac34]::ErrorGuaranteed>>
  40:     0x7efe83198e03 - <rustc_interface[a2e36ac52ab23c81]::queries::Queries>::ongoing_codegen
  41:     0x7efe8319708a - rustc_interface[a2e36ac52ab23c81]::interface::create_compiler_and_run::<core[2f8af133219d6c11]::result::Result<(), rustc_errors[1020869c0a53ac34]::ErrorGuaranteed>, rustc_driver[5f28de9a0492c992]::run_compiler::{closure#1}>
  42:     0x7efe83195982 - <scoped_tls[430d84ded6e482c8]::ScopedKey<rustc_span[efd8b0f1895919e0]::SessionGlobals>>::set::<rustc_interface[a2e36ac52ab23c81]::interface::run_compiler<core[2f8af133219d6c11]::result::Result<(), rustc_errors[1020869c0a53ac34]::ErrorGuaranteed>, rustc_driver[5f28de9a0492c992]::run_compiler::{closure#1}>::{closure#0}, core[2f8af133219d6c11]::result::Result<(), rustc_errors[1020869c0a53ac34]::ErrorGuaranteed>>
  43:     0x7efe8319566f - std[281da818632cbbdf]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[a2e36ac52ab23c81]::util::run_in_thread_pool_with_globals<rustc_interface[a2e36ac52ab23c81]::interface::run_compiler<core[2f8af133219d6c11]::result::Result<(), rustc_errors[1020869c0a53ac34]::ErrorGuaranteed>, rustc_driver[5f28de9a0492c992]::run_compiler::{closure#1}>::{closure#0}, core[2f8af133219d6c11]::result::Result<(), rustc_errors[1020869c0a53ac34]::ErrorGuaranteed>>::{closure#0}, core[2f8af133219d6c11]::result::Result<(), rustc_errors[1020869c0a53ac34]::ErrorGuaranteed>>
  44:     0x7efe84309550 - <<std[281da818632cbbdf]::thread::Builder>::spawn_unchecked_<rustc_interface[a2e36ac52ab23c81]::util::run_in_thread_pool_with_globals<rustc_interface[a2e36ac52ab23c81]::interface::run_compiler<core[2f8af133219d6c11]::result::Result<(), rustc_errors[1020869c0a53ac34]::ErrorGuaranteed>, rustc_driver[5f28de9a0492c992]::run_compiler::{closure#1}>::{closure#0}, core[2f8af133219d6c11]::result::Result<(), rustc_errors[1020869c0a53ac34]::ErrorGuaranteed>>::{closure#0}, core[2f8af133219d6c11]::result::Result<(), rustc_errors[1020869c0a53ac34]::ErrorGuaranteed>>::{closure#1} as core[2f8af133219d6c11]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  45:     0x7efe81c45433 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h26c13cce480449d5
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/alloc/src/boxed.rs:1938:9
  46:     0x7efe81c45433 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h1d016e890f9a0fa4
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/alloc/src/boxed.rs:1938:9
  47:     0x7efe81c45433 - std::sys::unix::thread::Thread::new::thread_start::ha5f4632b746acf38
                               at /rustc/57f097ea25f2c05f424fc9b9dc50dbd6d399845c/library/std/src/sys/unix/thread.rs:108:17
  48:     0x7efe8199d78d - <unknown>
  49:     0x7efe81a1e8e4 - 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/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.66.0-nightly (57f097ea2 2022-10-01) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [associated_item] computing associated item data for `Foo::bar::{opaque#1}`
end of query stack
error: aborting due to previous error

@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. F-return_position_impl_trait_in_trait `#![feature(return_position_impl_trait_in_trait)]` labels Oct 2, 2022
@compiler-errors
Copy link
Member

compiler-errors commented Oct 2, 2022

This can be repro'd without --emit mir, see the test in #102597. It just requires the RPITIT to be printed somehow.

@compiler-errors compiler-errors self-assigned this Oct 3, 2022
@bors bors closed this as completed in 8ede234 Oct 3, 2022
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
C-bug Category: This is a bug. F-return_position_impl_trait_in_trait `#![feature(return_position_impl_trait_in_trait)]` 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.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants