Skip to content

ICE: cannot relate region: LUB(ReErased, ReErased) #102510

Closed
@QuentinPerez

Description

@QuentinPerez

👋 Since the nightly 2022-09-11, the following code doesn't compile anymore.

Code

#![feature(type_alias_impl_trait)]

use futures::Stream;

struct Output {}

#[async_trait::async_trait]
trait Service {
    type OutputStream;

    async fn stream(&self) -> Self::OutputStream;
}

#[async_trait::async_trait]
impl Service for () {
    type OutputStream = impl Stream<Item = Output>;

    async fn stream(&self) -> Self::OutputStream {
        futures::stream::iter(std::iter::from_fn(|| Some(Output {})))
        // futures::stream::iter(std::iter::repeat(Output {})) <- if we replace it with this line, it works
        // futures::stream::iter(std::iter::repeat(Output {}).map(|v| v)) <- doesn't work
    }
}

fn main() {}


// [dependencies]
// futures = "0.3"
// async-trait = "0.1"

Meta

rustc --version --verbose:

rustc 1.65.0-nightly (228710758 2022-09-10)
binary: rustc
commit-hash: 2287107588d92889d282e6cd3c1ca5df34cd34a5
commit-date: 2022-09-10
host: aarch64-apple-darwin
release: 1.65.0-nightly
LLVM version: 15.0.0

Error output

error: internal compiler error: compiler/rustc_infer/src/infer/lexical_region_resolve/mod.rs:536:17: cannot relate region: LUB(ReErased, ReErased)

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/2287107588d92889d282e6cd3c1ca5df34cd34a5/compiler/rustc_errors/src/lib.rs:1460:9
thread 'rustc' panicked at 'Box<dyn Any>', /rustc/2287107588d92889d282e6cd3c1ca5df34cd34a5/compiler/rustc_errors/src/lib.rs:1460:9

Backtrace

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/2287107588d92889d282e6cd3c1ca5df34cd34a5/compiler/rustc_errors/src/lib.rs:1460:9
thread 'rustc' panicked at 'Box<dyn Any>', /rustc/2287107588d92889d282e6cd3c1ca5df34cd34a5/compiler/rustc_errors/src/lib.rs:1460:9
stack backtrace:
stack backtrace:
   0:        0x10515f334 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h2fe0ddafe7e5c3a3
   0:        0x1058bf334 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h2fe0ddafe7e5c3a3
   1:        0x105909b14 - core::fmt::write::h8eaf3b4948b7ff36
   1:        0x1051a9b14 - core::fmt::write::h8eaf3b4948b7ff36
   2:        0x1058b1ff0 - std::io::Write::write_fmt::h4bc2d969eec13592
   2:        0x105151ff0 - std::io::Write::write_fmt::h4bc2d969eec13592
   3:        0x1058c1bb0 - std::panicking::default_hook::{{closure}}::h282893686f869ced
   3:        0x105161bb0 - std::panicking::default_hook::{{closure}}::h282893686f869ced
   4:        0x1058c18d4 - std::panicking::default_hook::h3986eac7ff8396ca
   4:        0x1051618d4 - std::panicking::default_hook::h3986eac7ff8396ca
   5:        0x10cfb0664 - rustc_driver[2308dbc839f5c469]::DEFAULT_HOOK::{closure#0}::{closure#0}
   5:        0x10d710664 - rustc_driver[2308dbc839f5c469]::DEFAULT_HOOK::{closure#0}::{closure#0}
   6:        0x1058c2274 - std::panicking::rust_panic_with_hook::h5a4b03a0872ff49e
   6:        0x105162274 - std::panicking::rust_panic_with_hook::h5a4b03a0872ff49e
   7:        0x111403000 - std[953e50f2bf2d6c99]::panicking::begin_panic::<rustc_errors[64d67c4b807721a5]::ExplicitBug>::{closure#0}
   7:        0x110ca3000 - std[953e50f2bf2d6c99]::panicking::begin_panic::<rustc_errors[64d67c4b807721a5]::ExplicitBug>::{closure#0}
   8:        0x110ca1b30 - std[953e50f2bf2d6c99]::sys_common::backtrace::__rust_end_short_backtrace::<std[953e50f2bf2d6c99]::panicking::begin_panic<rustc_errors[64d67c4b807721a5]::ExplicitBug>::{closure#0}, !>
   8:        0x111401b30 - std[953e50f2bf2d6c99]::sys_common::backtrace::__rust_end_short_backtrace::<std[953e50f2bf2d6c99]::panicking::begin_panic<rustc_errors[64d67c4b807721a5]::ExplicitBug>::{closure#0}, !>
   9:        0x1111a5094 - std[953e50f2bf2d6c99]::panicking::begin_panic::<rustc_errors[64d67c4b807721a5]::ExplicitBug>
   9:        0x111905094 - std[953e50f2bf2d6c99]::panicking::begin_panic::<rustc_errors[64d67c4b807721a5]::ExplicitBug>
  10:        0x1113fb0e0 - std[953e50f2bf2d6c99]::panic::panic_any::<rustc_errors[64d67c4b807721a5]::ExplicitBug>
  10:        0x110c9b0e0 - std[953e50f2bf2d6c99]::panic::panic_any::<rustc_errors[64d67c4b807721a5]::ExplicitBug>
  11:        0x110c9affc - <rustc_errors[64d67c4b807721a5]::HandlerInner>::bug::<&alloc[6b0ef6687e6c6d93]::string::String>
  12:        0x110c9a900 - <rustc_errors[64d67c4b807721a5]::Handler>::bug::<&alloc[6b0ef6687e6c6d93]::string::String>
  13:        0x110d5a110 - rustc_middle[6e96b350aa2bce63]::ty::context::tls::with_context_opt::<rustc_middle[6e96b350aa2bce63]::ty::context::tls::with_opt<rustc_middle[6e96b350aa2bce63]::util::bug::opt_span_bug_fmt<rustc_span[139c8615ac80492e]::span_encoding::Span>::{closure#0}, ()>::{closure#0}, ()>
  14:        0x110d5aa10 - rustc_middle[6e96b350aa2bce63]::util::bug::opt_span_bug_fmt::<rustc_span[139c8615ac80492e]::span_encoding::Span>
  15:        0x1111acaa4 - rustc_middle[6e96b350aa2bce63]::util::bug::bug_fmt
  11:        0x1113faffc - <rustc_errors[64d67c4b807721a5]::HandlerInner>::bug::<&alloc[6b0ef6687e6c6d93]::string::String>
  16:        0x110bc2c30 - <rustc_infer[2c5a0a049a29947e]::infer::lexical_region_resolve::LexicalResolver>::lub_concrete_regions
  17:        0x110bc14e4 - rustc_infer[2c5a0a049a29947e]::infer::lexical_region_resolve::resolve
  12:        0x1113fa900 - <rustc_errors[64d67c4b807721a5]::Handler>::bug::<&alloc[6b0ef6687e6c6d93]::string::String>
  18:        0x110b1a73c - <rustc_infer[2c5a0a049a29947e]::infer::InferCtxt>::resolve_regions
  13:        0x1114ba110 - rustc_middle[6e96b350aa2bce63]::ty::context::tls::with_context_opt::<rustc_middle[6e96b350aa2bce63]::ty::context::tls::with_opt<rustc_middle[6e96b350aa2bce63]::util::bug::opt_span_bug_fmt<rustc_span[139c8615ac80492e]::span_encoding::Span>::{closure#0}, ()>::{closure#0}, ()>
  19:        0x110b1a94c - <rustc_infer[2c5a0a049a29947e]::infer::InferCtxt>::resolve_regions_and_report_errors
  14:        0x1114baa10 - rustc_middle[6e96b350aa2bce63]::util::bug::opt_span_bug_fmt::<rustc_span[139c8615ac80492e]::span_encoding::Span>
  15:        0x11190caa4 - rustc_middle[6e96b350aa2bce63]::util::bug::bug_fmt
  16:        0x111322c30 - <rustc_infer[2c5a0a049a29947e]::infer::lexical_region_resolve::LexicalResolver>::lub_concrete_regions
  20:        0x10f73cd30 - <rustc_infer[2c5a0a049a29947e]::infer::InferCtxtBuilder>::enter::<(), rustc_typeck[15cb74585e045bd3]::check::check::check_opaque_meets_bounds::{closure#0}>
  17:        0x1113214e4 - rustc_infer[2c5a0a049a29947e]::infer::lexical_region_resolve::resolve
  21:        0x10f70dac0 - rustc_typeck[15cb74585e045bd3]::check::check::check_opaque
  18:        0x11127a73c - <rustc_infer[2c5a0a049a29947e]::infer::InferCtxt>::resolve_regions
  22:        0x10f70f510 - rustc_typeck[15cb74585e045bd3]::check::check::check_item_type
  19:        0x11127a94c - <rustc_infer[2c5a0a049a29947e]::infer::InferCtxt>::resolve_regions_and_report_errors
  23:        0x10f715d7c - rustc_typeck[15cb74585e045bd3]::check::check::check_mod_item_types
  20:        0x10fe9cd30 - <rustc_infer[2c5a0a049a29947e]::infer::InferCtxtBuilder>::enter::<(), rustc_typeck[15cb74585e045bd3]::check::check::check_opaque_meets_bounds::{closure#0}>
  24:        0x1101aee88 - <rustc_query_system[44980da0ed33a065]::dep_graph::graph::DepGraph<rustc_middle[6e96b350aa2bce63]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[6e96b350aa2bce63]::ty::context::TyCtxt, rustc_span[139c8615ac80492e]::def_id::LocalDefId, ()>
  21:        0x10fe6dac0 - rustc_typeck[15cb74585e045bd3]::check::check::check_opaque
  25:        0x10ff7a024 - rustc_query_system[44980da0ed33a065]::query::plumbing::try_execute_query::<rustc_query_impl[7656fa6fd748bddf]::plumbing::QueryCtxt, rustc_query_system[44980da0ed33a065]::query::caches::DefaultCache<rustc_span[139c8615ac80492e]::def_id::LocalDefId, ()>>
  26:        0x1100249d8 - rustc_query_system[44980da0ed33a065]::query::plumbing::get_query::<rustc_query_impl[7656fa6fd748bddf]::queries::check_mod_item_types, rustc_query_impl[7656fa6fd748bddf]::plumbing::QueryCtxt>
  22:        0x10fe6f510 - rustc_typeck[15cb74585e045bd3]::check::check::check_item_type
  27:        0x10f66c71c - <rustc_middle[6e96b350aa2bce63]::hir::map::Map>::for_each_module::<rustc_typeck[15cb74585e045bd3]::check_crate::{closure#6}::{closure#0}>
  23:        0x10fe75d7c - rustc_typeck[15cb74585e045bd3]::check::check::check_mod_item_types
  28:        0x10f68ccd0 - <rustc_session[fffe365febf7b6e3]::session::Session>::time::<(), rustc_typeck[15cb74585e045bd3]::check_crate::{closure#6}>
  24:        0x11090ee88 - <rustc_query_system[44980da0ed33a065]::dep_graph::graph::DepGraph<rustc_middle[6e96b350aa2bce63]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[6e96b350aa2bce63]::ty::context::TyCtxt, rustc_span[139c8615ac80492e]::def_id::LocalDefId, ()>
  29:        0x10f7c1fbc - rustc_typeck[15cb74585e045bd3]::check_crate
  25:        0x1106da024 - rustc_query_system[44980da0ed33a065]::query::plumbing::try_execute_query::<rustc_query_impl[7656fa6fd748bddf]::plumbing::QueryCtxt, rustc_query_system[44980da0ed33a065]::query::caches::DefaultCache<rustc_span[139c8615ac80492e]::def_id::LocalDefId, ()>>
  30:        0x10d0bee3c - rustc_interface[d4aa11f9707af7ae]::passes::analysis
  26:        0x1107849d8 - rustc_query_system[44980da0ed33a065]::query::plumbing::get_query::<rustc_query_impl[7656fa6fd748bddf]::queries::check_mod_item_types, rustc_query_impl[7656fa6fd748bddf]::plumbing::QueryCtxt>
  31:        0x1101d179c - <rustc_query_system[44980da0ed33a065]::dep_graph::graph::DepGraph<rustc_middle[6e96b350aa2bce63]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[6e96b350aa2bce63]::ty::context::TyCtxt, (), core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>
  32:        0x10ffc37ac - rustc_query_system[44980da0ed33a065]::query::plumbing::try_execute_query::<rustc_query_impl[7656fa6fd748bddf]::plumbing::QueryCtxt, rustc_query_system[44980da0ed33a065]::query::caches::DefaultCache<(), core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>>
  27:        0x10fdcc71c - <rustc_middle[6e96b350aa2bce63]::hir::map::Map>::for_each_module::<rustc_typeck[15cb74585e045bd3]::check_crate::{closure#6}::{closure#0}>
  33:        0x11003ea10 - rustc_query_system[44980da0ed33a065]::query::plumbing::get_query::<rustc_query_impl[7656fa6fd748bddf]::queries::analysis, rustc_query_impl[7656fa6fd748bddf]::plumbing::QueryCtxt>
  28:        0x10fdeccd0 - <rustc_session[fffe365febf7b6e3]::session::Session>::time::<(), rustc_typeck[15cb74585e045bd3]::check_crate::{closure#6}>
  34:        0x10cfe13d4 - <rustc_interface[d4aa11f9707af7ae]::passes::QueryContext>::enter::<rustc_driver[2308dbc839f5c469]::run_compiler::{closure#1}::{closure#2}::{closure#3}, core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>
  29:        0x10ff21fbc - rustc_typeck[15cb74585e045bd3]::check_crate
  35:        0x10cfcca40 - rustc_interface[d4aa11f9707af7ae]::interface::create_compiler_and_run::<core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>, rustc_driver[2308dbc839f5c469]::run_compiler::{closure#1}>
  30:        0x10d81ee3c - rustc_interface[d4aa11f9707af7ae]::passes::analysis
  36:        0x10d01929c - <scoped_tls[19da6ae19371f74a]::ScopedKey<rustc_span[139c8615ac80492e]::SessionGlobals>>::set::<rustc_interface[d4aa11f9707af7ae]::interface::run_compiler<core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>, rustc_driver[2308dbc839f5c469]::run_compiler::{closure#1}>::{closure#0}, core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>
  31:        0x11093179c - <rustc_query_system[44980da0ed33a065]::dep_graph::graph::DepGraph<rustc_middle[6e96b350aa2bce63]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[6e96b350aa2bce63]::ty::context::TyCtxt, (), core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>
  37:        0x10cfe4cac - std[953e50f2bf2d6c99]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[d4aa11f9707af7ae]::util::run_in_thread_pool_with_globals<rustc_interface[d4aa11f9707af7ae]::interface::run_compiler<core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>, rustc_driver[2308dbc839f5c469]::run_compiler::{closure#1}>::{closure#0}, core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>::{closure#0}, core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>
  32:        0x1107237ac - rustc_query_system[44980da0ed33a065]::query::plumbing::try_execute_query::<rustc_query_impl[7656fa6fd748bddf]::plumbing::QueryCtxt, rustc_query_system[44980da0ed33a065]::query::caches::DefaultCache<(), core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>>
  38:        0x10cfe7b30 - <<std[953e50f2bf2d6c99]::thread::Builder>::spawn_unchecked_<rustc_interface[d4aa11f9707af7ae]::util::run_in_thread_pool_with_globals<rustc_interface[d4aa11f9707af7ae]::interface::run_compiler<core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>, rustc_driver[2308dbc839f5c469]::run_compiler::{closure#1}>::{closure#0}, core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>::{closure#0}, core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>::{closure#1} as core[c703795cca38ec11]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  33:        0x11079ea10 - rustc_query_system[44980da0ed33a065]::query::plumbing::get_query::<rustc_query_impl[7656fa6fd748bddf]::queries::analysis, rustc_query_impl[7656fa6fd748bddf]::plumbing::QueryCtxt>
  39:        0x10516a110 - std::sys::unix::thread::Thread::new::thread_start::h7099863dbc9fa449
  34:        0x10d7413d4 - <rustc_interface[d4aa11f9707af7ae]::passes::QueryContext>::enter::<rustc_driver[2308dbc839f5c469]::run_compiler::{closure#1}::{closure#2}::{closure#3}, core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>
  35:        0x10d72ca40 - rustc_interface[d4aa11f9707af7ae]::interface::create_compiler_and_run::<core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>, rustc_driver[2308dbc839f5c469]::run_compiler::{closure#1}>
  36:        0x10d77929c - <scoped_tls[19da6ae19371f74a]::ScopedKey<rustc_span[139c8615ac80492e]::SessionGlobals>>::set::<rustc_interface[d4aa11f9707af7ae]::interface::run_compiler<core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>, rustc_driver[2308dbc839f5c469]::run_compiler::{closure#1}>::{closure#0}, core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>
  40:        0x1a98a826c - __pthread_deallocate
  37:        0x10d744cac - std[953e50f2bf2d6c99]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[d4aa11f9707af7ae]::util::run_in_thread_pool_with_globals<rustc_interface[d4aa11f9707af7ae]::interface::run_compiler<core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>, rustc_driver[2308dbc839f5c469]::run_compiler::{closure#1}>::{closure#0}, core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>::{closure#0}, core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>

  38:        0x10d747b30 - <<std[953e50f2bf2d6c99]::thread::Builder>::spawn_unchecked_<rustc_interface[d4aa11f9707af7ae]::util::run_in_thread_pool_with_globals<rustc_interface[d4aa11f9707af7ae]::interface::run_compiler<core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>, rustc_driver[2308dbc839f5c469]::run_compiler::{closure#1}>::{closure#0}, core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>::{closure#0}, core[c703795cca38ec11]::result::Result<(), rustc_errors[64d67c4b807721a5]::ErrorGuaranteed>>::{closure#1} as core[c703795cca38ec11]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
note: the compiler unexpectedly panicked. this is a bug.

  39:        0x1058ca110 - std::sys::unix::thread::Thread::new::thread_start::h7099863dbc9fa449
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
  40:        0x1a98a826c - __pthread_deallocate

note: rustc 1.65.0-nightly (228710758 2022-09-10) running on aarch64-apple-darwin

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

note: compiler flags: -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C incremental=[REDACTED]

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: some of the compiler flags provided by cargo are hidden
note: rustc 1.65.0-nightly (228710758 2022-09-10) running on aarch64-apple-darwin


query stack during panic:
note: compiler flags: --crate-type bin -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C incremental=[REDACTED]
#0 [check_mod_item_types] checking item types in top-level module

#1 [analysis] running analysis passes on this crate
note: some of the compiler flags provided by cargo are hidden

end of query stack
query stack during panic:
#0 [check_mod_item_types] checking item types in top-level module
#1 [analysis] running analysis passes on this crate
end of query stack

Metadata

Metadata

Assignees

No one assigned

    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.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions