Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

return_position_impl_trait_in_trait compiler bug #105838

Closed
awesomelemonade opened this issue Dec 17, 2022 · 0 comments · Fixed by #105846
Closed

return_position_impl_trait_in_trait compiler bug #105838

awesomelemonade opened this issue Dec 17, 2022 · 0 comments · Fixed by #105846
Assignees
Labels
C-bug Category: This is a bug. 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

@awesomelemonade
Copy link

awesomelemonade commented Dec 17, 2022

Stumbled across this compiler panic and replicated it with this. Likely related to the match statement.

Code

EDIT: A smaller example here: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=b35b23433ea143234d37f0e528fe559e

https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=f84b78cc8ef056b4cc2029784ef6f65d

#![feature(return_position_impl_trait_in_trait)]

struct TestA {}
struct TestB {}

impl TestTrait for TestA {
    type Output = ();
}
impl TestTrait for TestB {
    type Output = ();
}

trait TestTrait {
    type Output;
}

impl<A, B> TestTrait for GreeterOutput<A, B>
where
    A: TestTrait<Output = ()>,
    B: TestTrait<Output = ()>,
{
    type Output = ();
}

enum GreeterOutput<A, B>
where
    A: TestTrait<Output = ()>,
    B: TestTrait<Output = ()>,
{
    SayHello(A),
    SayGoodbye(B),
}

trait Greeter {
    fn test_func(&self, func: &str) -> impl TestTrait<Output = ()> {
        match func {
            "SayHello" => GreeterOutput::SayHello(TestA {}),
            "SayGoodbye" => GreeterOutput::SayGoodbye(TestB {}),
            _ => GreeterOutput::SayHello(TestA {}),
        }
    }
}

Meta

rustc --version --verbose:

rustc 1.68.0-nightly (9c07efe84 2022-12-16)
binary: rustc
commit-hash: 9c07efe84f28a44f3044237696acc295aa407ee5
commit-date: 2022-12-16
host: x86_64-unknown-linux-gnu
release: 1.68.0-nightly
LLVM version: 15.0.6

Error output

Backtrace

   Compiling trait-error-test v0.1.0 (/home/lemon/Data/trait-error-test)
warning: the feature `return_position_impl_trait_in_trait` is incomplete and may not be safe to use and/or cause compiler crashes
 --> src/main.rs:1:12
  |
1 | #![feature(return_position_impl_trait_in_trait)]
  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
  = note: `#[warn(incomplete_features)]` on by default

thread '<unnamed>' panicked at 'assertion failed: `(left == right)`
  left: `impl TestTrait<Output = ()>`,
 right: `impl TestTrait<Output = ()>`', compiler/rustc_hir_typeck/src/_match.rs:543:33
stack backtrace:
   0:     0x7fbba22fa85a - std::backtrace_rs::backtrace::libunwind::trace::hf3e23dba944728e7
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fbba22fa85a - std::backtrace_rs::backtrace::trace_unsynchronized::ha7a661dbe14f9bec
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fbba22fa85a - std::sys_common::backtrace::_print_fmt::h8bb3e793399a1d31
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7fbba22fa85a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h8f001b4156af7ff0
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fbba235d36e - core::fmt::write::h98c67bacb0ad9cb8
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/core/src/fmt/mod.rs:1208:17
   5:     0x7fbba22eabd5 - std::io::Write::write_fmt::h21d43ee83b8bf3da
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/io/mod.rs:1682:15
   6:     0x7fbba22fa625 - std::sys_common::backtrace::_print::hed3e659c4722fff2
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7fbba22fa625 - std::sys_common::backtrace::print::hf3af686623d05885
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7fbba22fd36f - std::panicking::default_hook::{{closure}}::hfbc532e2813a4fd8
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:267:22
   9:     0x7fbba22fd0ab - std::panicking::default_hook::hf22d9a6bedeb8cbb
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:286:9
  10:     0x7fbba22fdb8c - std::panicking::rust_panic_with_hook::h2e7c62506c5adf89
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:688:13
  11:     0x7fbba22fd929 - std::panicking::begin_panic_handler::{{closure}}::h691824ad0687f3c2
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:579:13
  12:     0x7fbba22fad0c - std::sys_common::backtrace::__rust_end_short_backtrace::hc3ca2684c4e495b8
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:137:18
  13:     0x7fbba22fd632 - rust_begin_unwind
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:575:5
  14:     0x7fbba2359d53 - core::panicking::panic_fmt::h598f9aca05f9965c
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/core/src/panicking.rs:64:14
  15:     0x7fbba235a14f - core::panicking::assert_failed_inner::h7bd2d237e3b3627a
  16:     0x7fbba58449ac - core[4c48bf2e04a135c7]::panicking::assert_failed::<rustc_middle[46166420d424f8d9]::ty::Ty, rustc_middle[46166420d424f8d9]::ty::Ty>
  17:     0x7fbba39fe9d4 - <rustc_hir_typeck[20dd85335634a743]::fn_ctxt::FnCtxt>::check_match::{closure#0}
  18:     0x7fbba398e700 - <rustc_hir_typeck[20dd85335634a743]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  19:     0x7fbba39daa37 - <rustc_hir_typeck[20dd85335634a743]::fn_ctxt::FnCtxt>::check_block_with_expected
  20:     0x7fbba398c51a - <rustc_hir_typeck[20dd85335634a743]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  21:     0x7fbba3b39e13 - <rustc_hir_typeck[20dd85335634a743]::fn_ctxt::FnCtxt>::check_return_expr
  22:     0x7fbba3b31ba9 - rustc_hir_typeck[20dd85335634a743]::check::check_fn
  23:     0x7fbba3b1cd99 - <rustc_hir_typeck[20dd85335634a743]::inherited::InheritedBuilder>::enter::<rustc_hir_typeck[20dd85335634a743]::typeck_with_fallback<rustc_hir_typeck[20dd85335634a743]::typeck::{closure#0}>::{closure#0}::{closure#1}, &rustc_middle[46166420d424f8d9]::ty::typeck_results::TypeckResults>
  24:     0x7fbba3b0fd11 - rustc_hir_typeck[20dd85335634a743]::typeck
  25:     0x7fbba3b1a1a4 - <rustc_query_system[b2d3787a6eb3f954]::dep_graph::graph::DepGraph<rustc_middle[46166420d424f8d9]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[46166420d424f8d9]::ty::context::TyCtxt, rustc_span[b683b297262634fe]::def_id::LocalDefId, &rustc_middle[46166420d424f8d9]::ty::typeck_results::TypeckResults>
  26:     0x7fbba3b0e5c1 - rustc_query_system[b2d3787a6eb3f954]::query::plumbing::try_execute_query::<rustc_query_impl[b1cf7b55e6424c26]::plumbing::QueryCtxt, rustc_query_system[b2d3787a6eb3f954]::query::caches::VecCache<rustc_span[b683b297262634fe]::def_id::LocalDefId, &rustc_middle[46166420d424f8d9]::ty::typeck_results::TypeckResults>>
  27:     0x7fbba4fac55c - <rustc_query_impl[b1cf7b55e6424c26]::Queries as rustc_middle[46166420d424f8d9]::ty::query::QueryEngine>::typeck
  28:     0x7fbba4036d7b - rustc_mir_build[acf460d81f0a9938]::thir::cx::thir_body
  29:     0x7fbba4678cbc - <rustc_query_system[b2d3787a6eb3f954]::dep_graph::graph::DepGraph<rustc_middle[46166420d424f8d9]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[46166420d424f8d9]::ty::context::TyCtxt, rustc_middle[46166420d424f8d9]::ty::WithOptConstParam<rustc_span[b683b297262634fe]::def_id::LocalDefId>, core[4c48bf2e04a135c7]::result::Result<(&rustc_data_structures[6865e20741ca8464]::steal::Steal<rustc_middle[46166420d424f8d9]::thir::Thir>, rustc_middle[46166420d424f8d9]::thir::ExprId), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>
  30:     0x7fbba4670686 - rustc_query_system[b2d3787a6eb3f954]::query::plumbing::try_execute_query::<rustc_query_impl[b1cf7b55e6424c26]::plumbing::QueryCtxt, rustc_query_system[b2d3787a6eb3f954]::query::caches::DefaultCache<rustc_middle[46166420d424f8d9]::ty::WithOptConstParam<rustc_span[b683b297262634fe]::def_id::LocalDefId>, core[4c48bf2e04a135c7]::result::Result<(&rustc_data_structures[6865e20741ca8464]::steal::Steal<rustc_middle[46166420d424f8d9]::thir::Thir>, rustc_middle[46166420d424f8d9]::thir::ExprId), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>>
  31:     0x7fbba46688fe - rustc_mir_build[acf460d81f0a9938]::build::mir_built
  32:     0x7fbba3f59ceb - <rustc_query_system[b2d3787a6eb3f954]::dep_graph::graph::DepGraph<rustc_middle[46166420d424f8d9]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[46166420d424f8d9]::ty::context::TyCtxt, rustc_middle[46166420d424f8d9]::ty::WithOptConstParam<rustc_span[b683b297262634fe]::def_id::LocalDefId>, &rustc_data_structures[6865e20741ca8464]::steal::Steal<rustc_middle[46166420d424f8d9]::mir::Body>>
  33:     0x7fbba3f58641 - rustc_query_system[b2d3787a6eb3f954]::query::plumbing::try_execute_query::<rustc_query_impl[b1cf7b55e6424c26]::plumbing::QueryCtxt, rustc_query_system[b2d3787a6eb3f954]::query::caches::DefaultCache<rustc_middle[46166420d424f8d9]::ty::WithOptConstParam<rustc_span[b683b297262634fe]::def_id::LocalDefId>, &rustc_data_structures[6865e20741ca8464]::steal::Steal<rustc_middle[46166420d424f8d9]::mir::Body>>>
  34:     0x7fbba3f63dba - rustc_mir_transform[b5e89e28eda50a52]::check_unsafety::unsafety_check_result
  35:     0x7fbba4f97e55 - <rustc_mir_transform[b5e89e28eda50a52]::check_unsafety::provide::{closure#0} as core[4c48bf2e04a135c7]::ops::function::FnOnce<(rustc_middle[46166420d424f8d9]::ty::context::TyCtxt, rustc_span[b683b297262634fe]::def_id::LocalDefId)>>::call_once
  36:     0x7fbba3f628a4 - <rustc_query_system[b2d3787a6eb3f954]::dep_graph::graph::DepGraph<rustc_middle[46166420d424f8d9]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[46166420d424f8d9]::ty::context::TyCtxt, rustc_span[b683b297262634fe]::def_id::LocalDefId, &rustc_middle[46166420d424f8d9]::mir::query::UnsafetyCheckResult>
  37:     0x7fbba3f5e3c8 - rustc_query_system[b2d3787a6eb3f954]::query::plumbing::try_execute_query::<rustc_query_impl[b1cf7b55e6424c26]::plumbing::QueryCtxt, rustc_query_system[b2d3787a6eb3f954]::query::caches::VecCache<rustc_span[b683b297262634fe]::def_id::LocalDefId, &rustc_middle[46166420d424f8d9]::mir::query::UnsafetyCheckResult>>
  38:     0x7fbba3f5a794 - rustc_mir_transform[b5e89e28eda50a52]::mir_const
  39:     0x7fbba3f59ceb - <rustc_query_system[b2d3787a6eb3f954]::dep_graph::graph::DepGraph<rustc_middle[46166420d424f8d9]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[46166420d424f8d9]::ty::context::TyCtxt, rustc_middle[46166420d424f8d9]::ty::WithOptConstParam<rustc_span[b683b297262634fe]::def_id::LocalDefId>, &rustc_data_structures[6865e20741ca8464]::steal::Steal<rustc_middle[46166420d424f8d9]::mir::Body>>
  40:     0x7fbba3f58641 - rustc_query_system[b2d3787a6eb3f954]::query::plumbing::try_execute_query::<rustc_query_impl[b1cf7b55e6424c26]::plumbing::QueryCtxt, rustc_query_system[b2d3787a6eb3f954]::query::caches::DefaultCache<rustc_middle[46166420d424f8d9]::ty::WithOptConstParam<rustc_span[b683b297262634fe]::def_id::LocalDefId>, &rustc_data_structures[6865e20741ca8464]::steal::Steal<rustc_middle[46166420d424f8d9]::mir::Body>>>
  41:     0x7fbba4316694 - rustc_mir_transform[b5e89e28eda50a52]::mir_promoted
  42:     0x7fbba431f73e - <rustc_query_system[b2d3787a6eb3f954]::dep_graph::graph::DepGraph<rustc_middle[46166420d424f8d9]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[46166420d424f8d9]::ty::context::TyCtxt, rustc_middle[46166420d424f8d9]::ty::WithOptConstParam<rustc_span[b683b297262634fe]::def_id::LocalDefId>, (&rustc_data_structures[6865e20741ca8464]::steal::Steal<rustc_middle[46166420d424f8d9]::mir::Body>, &rustc_data_structures[6865e20741ca8464]::steal::Steal<rustc_index[20f50a9c5367227e]::vec::IndexVec<rustc_middle[46166420d424f8d9]::mir::Promoted, rustc_middle[46166420d424f8d9]::mir::Body>>)>
  43:     0x7fbba43152dc - rustc_query_system[b2d3787a6eb3f954]::query::plumbing::try_execute_query::<rustc_query_impl[b1cf7b55e6424c26]::plumbing::QueryCtxt, rustc_query_system[b2d3787a6eb3f954]::query::caches::DefaultCache<rustc_middle[46166420d424f8d9]::ty::WithOptConstParam<rustc_span[b683b297262634fe]::def_id::LocalDefId>, (&rustc_data_structures[6865e20741ca8464]::steal::Steal<rustc_middle[46166420d424f8d9]::mir::Body>, &rustc_data_structures[6865e20741ca8464]::steal::Steal<rustc_index[20f50a9c5367227e]::vec::IndexVec<rustc_middle[46166420d424f8d9]::mir::Promoted, rustc_middle[46166420d424f8d9]::mir::Body>>)>>
  44:     0x7fbba431348f - rustc_borrowck[22d2e0d41163e72]::mir_borrowck
  45:     0x7fbba4312e65 - <rustc_borrowck[22d2e0d41163e72]::provide::{closure#0} as core[4c48bf2e04a135c7]::ops::function::FnOnce<(rustc_middle[46166420d424f8d9]::ty::context::TyCtxt, rustc_span[b683b297262634fe]::def_id::LocalDefId)>>::call_once
  46:     0x7fbba45c8694 - <rustc_query_system[b2d3787a6eb3f954]::dep_graph::graph::DepGraph<rustc_middle[46166420d424f8d9]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[46166420d424f8d9]::ty::context::TyCtxt, rustc_span[b683b297262634fe]::def_id::LocalDefId, &rustc_middle[46166420d424f8d9]::mir::query::BorrowCheckResult>
  47:     0x7fbba45c745c - rustc_query_system[b2d3787a6eb3f954]::query::plumbing::try_execute_query::<rustc_query_impl[b1cf7b55e6424c26]::plumbing::QueryCtxt, rustc_query_system[b2d3787a6eb3f954]::query::caches::VecCache<rustc_span[b683b297262634fe]::def_id::LocalDefId, &rustc_middle[46166420d424f8d9]::mir::query::BorrowCheckResult>>
  48:     0x7fbba4fac92a - <rustc_query_impl[b1cf7b55e6424c26]::Queries as rustc_middle[46166420d424f8d9]::ty::query::QueryEngine>::mir_borrowck
  49:     0x7fbba4dffac9 - rustc_hir_analysis[5f00ccdad38bd90]::collect::type_of::type_of
  50:     0x7fbba3eaf3a6 - <rustc_query_system[b2d3787a6eb3f954]::dep_graph::graph::DepGraph<rustc_middle[46166420d424f8d9]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[46166420d424f8d9]::ty::context::TyCtxt, rustc_span[b683b297262634fe]::def_id::DefId, rustc_middle[46166420d424f8d9]::ty::Ty>
  51:     0x7fbba3eacf4b - rustc_query_system[b2d3787a6eb3f954]::query::plumbing::get_query::<rustc_query_impl[b1cf7b55e6424c26]::queries::type_of, rustc_query_impl[b1cf7b55e6424c26]::plumbing::QueryCtxt>
  52:     0x7fbba4741fad - rustc_hir_analysis[5f00ccdad38bd90]::check::check::check_mod_item_types
  53:     0x7fbba415d1c4 - <rustc_query_system[b2d3787a6eb3f954]::dep_graph::graph::DepGraph<rustc_middle[46166420d424f8d9]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[46166420d424f8d9]::ty::context::TyCtxt, rustc_span[b683b297262634fe]::def_id::LocalDefId, ()>
  54:     0x7fbba415b35e - rustc_query_system[b2d3787a6eb3f954]::query::plumbing::try_execute_query::<rustc_query_impl[b1cf7b55e6424c26]::plumbing::QueryCtxt, rustc_query_system[b2d3787a6eb3f954]::query::caches::VecCache<rustc_span[b683b297262634fe]::def_id::LocalDefId, ()>>
  55:     0x7fbba49df1a3 - rustc_query_system[b2d3787a6eb3f954]::query::plumbing::get_query::<rustc_query_impl[b1cf7b55e6424c26]::queries::check_mod_item_types, rustc_query_impl[b1cf7b55e6424c26]::plumbing::QueryCtxt>
  56:     0x7fbba4c88315 - <rustc_middle[46166420d424f8d9]::hir::map::Map>::for_each_module::<rustc_hir_analysis[5f00ccdad38bd90]::check_crate::{closure#6}::{closure#0}>
  57:     0x7fbba3b6aff2 - rustc_hir_analysis[5f00ccdad38bd90]::check_crate
  58:     0x7fbba3b6ac3b - rustc_interface[3feed755d27e3616]::passes::analysis
  59:     0x7fbba4dc1795 - <rustc_query_system[b2d3787a6eb3f954]::dep_graph::graph::DepGraph<rustc_middle[46166420d424f8d9]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[46166420d424f8d9]::ty::context::TyCtxt, (), core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>
  60:     0x7fbba4dc0958 - rustc_query_system[b2d3787a6eb3f954]::query::plumbing::try_execute_query::<rustc_query_impl[b1cf7b55e6424c26]::plumbing::QueryCtxt, rustc_query_system[b2d3787a6eb3f954]::query::caches::DefaultCache<(), core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>>
  61:     0x7fbba4dc03c0 - rustc_query_system[b2d3787a6eb3f954]::query::plumbing::get_query::<rustc_query_impl[b1cf7b55e6424c26]::queries::analysis, rustc_query_impl[b1cf7b55e6424c26]::plumbing::QueryCtxt>
  62:     0x7fbba48836c3 - <rustc_interface[3feed755d27e3616]::passes::QueryContext>::enter::<rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}::{closure#2}::{closure#2}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>
  63:     0x7fbba487fa73 - <rustc_interface[3feed755d27e3616]::interface::Compiler>::enter::<rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}::{closure#2}, core[4c48bf2e04a135c7]::result::Result<core[4c48bf2e04a135c7]::option::Option<rustc_interface[3feed755d27e3616]::queries::Linker>, rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>
  64:     0x7fbba487aa88 - rustc_span[b683b297262634fe]::with_source_map::<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_interface[3feed755d27e3616]::interface::run_compiler<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
  65:     0x7fbba487a575 - <scoped_tls[b4ee55afb72dd1f]::ScopedKey<rustc_span[b683b297262634fe]::SessionGlobals>>::set::<rustc_interface[3feed755d27e3616]::interface::run_compiler<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}>::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>
  66:     0x7fbba4879b62 - std[fecc2c98d64c5e20]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[3feed755d27e3616]::util::run_in_thread_pool_with_globals<rustc_interface[3feed755d27e3616]::interface::run_compiler<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}>::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>
  67:     0x7fbba4eba1fe - <<std[fecc2c98d64c5e20]::thread::Builder>::spawn_unchecked_<rustc_interface[3feed755d27e3616]::util::run_in_thread_pool_with_globals<rustc_interface[3feed755d27e3616]::interface::run_compiler<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}>::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>::{closure#1} as core[4c48bf2e04a135c7]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  68:     0x7fbba63da923 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::ha40757527af5f65d
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/alloc/src/boxed.rs:2000:9
  69:     0x7fbba63da923 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf5bd55cd4ab92745
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/alloc/src/boxed.rs:2000:9
  70:     0x7fbba63da923 - std::sys::unix::thread::Thread::new::thread_start::h087de3b4a94ba02b
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys/unix/thread.rs:108:17
  71:     0x7fbba21bf609 - start_thread
                               at /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477:8
  72:     0x7fbba20e2133 - clone
                               at /build/glibc-SzIz7B/glibc-2.31/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
  73:                0x0 - <unknown>
error: internal compiler error: no errors encountered even though `delay_span_bug` issued

error: internal compiler error: VecMap([(OpaqueTypeKey { def_id: DefId(0:29 ~ trait_error_test[6898]::Greeter::test_func::{opaque#0}), substs: [Self] }, OpaqueTypeDecl { hidden_type: OpaqueHiddenType { span: src/main.rs:35:40: 35:67 (#6), ty: _ }, origin: FnReturn(DefId(0:25 ~ trait_error_test[6898]::Greeter::test_func)) })])
  |
  = note: delayed at compiler/rustc_infer/src/infer/opaque_types/table.rs:50:26

thread 'rustc' panicked at 'Box<dyn Any>', compiler/rustc_errors/src/lib.rs:1610:13
stack backtrace:
   0:     0x7fbba63d0d5a - std::backtrace_rs::backtrace::libunwind::trace::hf3e23dba944728e7
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fbba63d0d5a - std::backtrace_rs::backtrace::trace_unsynchronized::ha7a661dbe14f9bec
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fbba63d0d5a - std::sys_common::backtrace::_print_fmt::h8bb3e793399a1d31
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7fbba63d0d5a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h8f001b4156af7ff0
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fbba235d36e - core::fmt::write::h98c67bacb0ad9cb8
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/core/src/fmt/mod.rs:1208:17
   5:     0x7fbba63c4e35 - std::io::Write::write_fmt::h21d43ee83b8bf3da
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/io/mod.rs:1682:15
   6:     0x7fbba63d0b25 - std::sys_common::backtrace::_print::hed3e659c4722fff2
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7fbba63d0b25 - std::sys_common::backtrace::print::hf3af686623d05885
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7fbba63d2eaf - std::panicking::default_hook::{{closure}}::hfbc532e2813a4fd8
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:267:22
   9:     0x7fbba63d2beb - std::panicking::default_hook::hf22d9a6bedeb8cbb
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:286:9
  10:     0x7fbba55fc351 - rustc_driver[8203396c4671b89c]::DEFAULT_HOOK::{closure#0}::{closure#0}
  11:     0x7fbba63d36ad - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h839d8563a5defb2f
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/alloc/src/boxed.rs:2032:9
  12:     0x7fbba63d36ad - std::panicking::rust_panic_with_hook::h2e7c62506c5adf89
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:692:13
  13:     0x7fbba56354d1 - std[fecc2c98d64c5e20]::panicking::begin_panic::<rustc_errors[6c86e693eff69e36]::ExplicitBug>::{closure#0}
  14:     0x7fbba5633da6 - std[fecc2c98d64c5e20]::sys_common::backtrace::__rust_end_short_backtrace::<std[fecc2c98d64c5e20]::panicking::begin_panic<rustc_errors[6c86e693eff69e36]::ExplicitBug>::{closure#0}, !>
  15:     0x7fbba5612d66 - std[fecc2c98d64c5e20]::panicking::begin_panic::<rustc_errors[6c86e693eff69e36]::ExplicitBug>
  16:     0x7fbba5631806 - std[fecc2c98d64c5e20]::panic::panic_any::<rustc_errors[6c86e693eff69e36]::ExplicitBug>
  17:     0x7fbba4aea906 - <rustc_errors[6c86e693eff69e36]::HandlerInner>::flush_delayed::<alloc[4e38580f0181725e]::vec::Vec<rustc_errors[6c86e693eff69e36]::diagnostic::Diagnostic>, &str>
  18:     0x7fbba4ae9c0b - <rustc_errors[6c86e693eff69e36]::HandlerInner as core[4c48bf2e04a135c7]::ops::drop::Drop>::drop
  19:     0x7fbba488b9de - core[4c48bf2e04a135c7]::ptr::drop_in_place::<rustc_session[23982924e285e106]::parse::ParseSess>
  20:     0x7fbba487be3f - core[4c48bf2e04a135c7]::ptr::drop_in_place::<rustc_session[23982924e285e106]::session::Session>
  21:     0x7fbba487bb70 - core[4c48bf2e04a135c7]::ptr::drop_in_place::<rustc_interface[3feed755d27e3616]::interface::Compiler>
  22:     0x7fbba487af48 - rustc_span[b683b297262634fe]::with_source_map::<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_interface[3feed755d27e3616]::interface::run_compiler<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
  23:     0x7fbba487a575 - <scoped_tls[b4ee55afb72dd1f]::ScopedKey<rustc_span[b683b297262634fe]::SessionGlobals>>::set::<rustc_interface[3feed755d27e3616]::interface::run_compiler<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}>::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>
  24:     0x7fbba4879b62 - std[fecc2c98d64c5e20]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[3feed755d27e3616]::util::run_in_thread_pool_with_globals<rustc_interface[3feed755d27e3616]::interface::run_compiler<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}>::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>
  25:     0x7fbba4eba1fe - <<std[fecc2c98d64c5e20]::thread::Builder>::spawn_unchecked_<rustc_interface[3feed755d27e3616]::util::run_in_thread_pool_with_globals<rustc_interface[3feed755d27e3616]::interface::run_compiler<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}>::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>::{closure#1} as core[4c48bf2e04a135c7]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  26:     0x7fbba63da923 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::ha40757527af5f65d
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/alloc/src/boxed.rs:2000:9
  27:     0x7fbba63da923 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf5bd55cd4ab92745
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/alloc/src/boxed.rs:2000:9
  28:     0x7fbba63da923 - std::sys::unix::thread::Thread::new::thread_start::h087de3b4a94ba02b
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys/unix/thread.rs:108:17
  29:     0x7fbba21bf609 - start_thread
                               at /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477:8
  30:     0x7fbba20e2133 - clone
                               at /build/glibc-SzIz7B/glibc-2.31/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
  31:                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.68.0-nightly (9c07efe84 2022-12-16) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type bin -C embed-bitcode=no -C debuginfo=2 -C incremental=[REDACTED]

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
end of query stack
thread '<unnamed>' panicked at 'panic in a function that cannot unwind', library/core/src/panicking.rs:87:58
stack backtrace:
   0:     0x7fbba22fa85a - std::backtrace_rs::backtrace::libunwind::trace::hf3e23dba944728e7
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fbba22fa85a - std::backtrace_rs::backtrace::trace_unsynchronized::ha7a661dbe14f9bec
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fbba22fa85a - std::sys_common::backtrace::_print_fmt::h8bb3e793399a1d31
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7fbba22fa85a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h8f001b4156af7ff0
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fbba235d36e - core::fmt::write::h98c67bacb0ad9cb8
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/core/src/fmt/mod.rs:1208:17
   5:     0x7fbba22eabd5 - std::io::Write::write_fmt::h21d43ee83b8bf3da
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/io/mod.rs:1682:15
   6:     0x7fbba22fa625 - std::sys_common::backtrace::_print::hed3e659c4722fff2
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7fbba22fa625 - std::sys_common::backtrace::print::hf3af686623d05885
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7fbba22fd36f - std::panicking::default_hook::{{closure}}::hfbc532e2813a4fd8
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:267:22
   9:     0x7fbba22fd0ab - std::panicking::default_hook::hf22d9a6bedeb8cbb
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:286:9
  10:     0x7fbba22fdb8c - std::panicking::rust_panic_with_hook::h2e7c62506c5adf89
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:688:13
  11:     0x7fbba22fd8e2 - std::panicking::begin_panic_handler::{{closure}}::h691824ad0687f3c2
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:577:13
  12:     0x7fbba22fad0c - std::sys_common::backtrace::__rust_end_short_backtrace::hc3ca2684c4e495b8
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys_common/backtrace.rs:137:18
  13:     0x7fbba22fd632 - rust_begin_unwind
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/panicking.rs:575:5
  14:     0x7fbba2359dd3 - core::panicking::panic_str_nounwind::h91e5861b6e8788e7
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/core/src/panicking.rs:90:14
  15:     0x7fbba2359f43 - core::panicking::panic_no_unwind::hdb3a83216b242b46
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/core/src/panicking.rs:159:5
  16:     0x7fbba487af5f - rustc_span[b683b297262634fe]::with_source_map::<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_interface[3feed755d27e3616]::interface::run_compiler<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
  17:     0x7fbba487a575 - <scoped_tls[b4ee55afb72dd1f]::ScopedKey<rustc_span[b683b297262634fe]::SessionGlobals>>::set::<rustc_interface[3feed755d27e3616]::interface::run_compiler<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}>::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>
  18:     0x7fbba4879b62 - std[fecc2c98d64c5e20]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[3feed755d27e3616]::util::run_in_thread_pool_with_globals<rustc_interface[3feed755d27e3616]::interface::run_compiler<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}>::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>
  19:     0x7fbba4eba1fe - <<std[fecc2c98d64c5e20]::thread::Builder>::spawn_unchecked_<rustc_interface[3feed755d27e3616]::util::run_in_thread_pool_with_globals<rustc_interface[3feed755d27e3616]::interface::run_compiler<core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>, rustc_driver[8203396c4671b89c]::run_compiler::{closure#1}>::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[4c48bf2e04a135c7]::result::Result<(), rustc_errors[6c86e693eff69e36]::ErrorGuaranteed>>::{closure#1} as core[4c48bf2e04a135c7]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  20:     0x7fbba63da923 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::ha40757527af5f65d
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/alloc/src/boxed.rs:2000:9
  21:     0x7fbba63da923 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf5bd55cd4ab92745
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/alloc/src/boxed.rs:2000:9
  22:     0x7fbba63da923 - std::sys::unix::thread::Thread::new::thread_start::h087de3b4a94ba02b
                               at /rustc/9c07efe84f28a44f3044237696acc295aa407ee5/library/std/src/sys/unix/thread.rs:108:17
  23:     0x7fbba21bf609 - start_thread
                               at /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477:8
  24:     0x7fbba20e2133 - clone
                               at /build/glibc-SzIz7B/glibc-2.31/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
  25:                0x0 - <unknown>
thread panicked while panicking. aborting.
warning: `trait-error-test` (bin "trait-error-test") generated 1 warning
error: could not compile `trait-error-test`; 1 warning emitted

Caused by:
  process didn't exit successfully: `rustc --crate-name trait_error_test --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=7c90f596de056739 -C extra-filename=-7c90f596de056739 --out-dir /home/lemon/Data/trait-error-test/target/debug/deps -C incremental=/home/lemon/Data/trait-error-test/target/debug/incremental -L dependency=/home/lemon/Data/trait-error-test/target/debug/deps` (signal: 6, SIGABRT: process abort signal)

@awesomelemonade awesomelemonade added C-bug Category: This is a bug. 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. labels Dec 17, 2022
@compiler-errors compiler-errors self-assigned this Dec 17, 2022
compiler-errors added a commit to compiler-errors/rust that referenced this issue Jan 5, 2023
…ckh726

Account for return-position `impl Trait` in trait in `opt_suggest_box_span`

RPITITs are the only types where their opaque bounds might normalize to some other self type than the opaque type itself. To avoid needing to do normalization, let's just match on either alias kind.

Ideally, we'd just get rid of `opt_suggest_box_span`. It's kind of a wart on type-checking `if`/`match`. I've recently refactored this expression for being confusing/wrong, but moving it into the error path is pretty hard.

Fixes rust-lang#105838
@bors bors closed this as completed in f9ccbf0 Jan 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. 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