Skip to content

ICE: unexpected concrete region in borrowck: ReStatic #87455

@ehuss

Description

@ehuss

Trying to build warp 0.2.5 with latest nightly results in an ICE.

Bisected the regression to #87287, cc @oli-obk.

I have tried to minimize it. This still requires futures 0.3, I'm not sure how to minimize if further.

use futures::{Stream, TryStream}; use std::error::Error as StdError; use std::pin::Pin; use std::task::{Context, Poll}; pub trait ServerSentEvent: Sized + Send + Sync + 'static {} impl<T: Send + Sync + 'static> ServerSentEvent for T {} struct SseKeepAlive<S> { event_stream: S, } struct SseComment<T>(T); impl<S> Stream for SseKeepAlive<S> where S: TryStream + Send + 'static, S::Ok: ServerSentEvent, S::Error: StdError + Send + Sync + 'static, { type Item = Result<SseComment<&'static str>, ()>; fn poll_next(self: Pin<&mut Self>, _cx: &mut Context) -> Poll<Option<Self::Item>> { unimplemented!() } } pub fn keep<S>( event_stream: S, ) -> impl TryStream<Ok = impl ServerSentEvent + Send + 'static, Error = ()> + Send + 'static where S: TryStream + Send + 'static, S::Ok: ServerSentEvent + Send, S::Error: StdError + Send + Sync + 'static, { SseKeepAlive { event_stream } }

Meta

rustc --version --verbose:

rustc 1.56.0-nightly (d9aa28767 2021-07-24) binary: rustc commit-hash: d9aa28767287670df6cf823b94629122e04442c0 commit-date: 2021-07-24 host: x86_64-apple-darwin release: 1.56.0-nightly LLVM version: 12.0.1 

Error output

warning: field is never read: `event_stream` --> src/lib.rs:11:5 | 11 | event_stream: S, | ^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default warning: Error finalizing incremental compilation session directory `/Users/eric/Temp/z50/warp-0.2.5/eric/target/debug/incremental/eric-3a2ytbduf2rnx/s-g0sxn41dw4-19a86sm-working`: No such file or directory (os error 2) error: internal compiler error: unexpected concrete region in borrowck: ReStatic --> src/lib.rs:28:1 | 28 | / pub fn keep<S>( 29 | | event_stream: S, 30 | | ) -> impl TryStream<Ok = impl ServerSentEvent + Send + 'static, Error = ()> + Send + 'static 31 | | where ... | 36 | | SseKeepAlive { event_stream } 37 | | } | |_^ | = note: delayed at compiler/rustc_mir/src/borrow_check/region_infer/opaque_types.rs:87:44 thread 'rustc' panicked at 'no errors encountered even though `delay_span_bug` issued', compiler/rustc_errors/src/lib.rs:1050:13 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace error: internal compiler error: unexpected panic 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.56.0-nightly (d9aa28767 2021-07-24) running on x86_64-apple-darwin note: compiler flags: -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C incremental --crate-type lib note: some of the compiler flags provided by cargo are hidden query stack during panic: end of query stack warning: `eric` (lib) generated 2 warnings error: could not compile `eric`; 2 warnings emitted 
Backtrace

thread 'rustc' panicked at 'no errors encountered even though `delay_span_bug` issued', compiler/rustc_errors/src/lib.rs:1050:13 stack backtrace: 0: _rust_begin_unwind 1: std::panicking::begin_panic_fmt 2: rustc_errors::HandlerInner::flush_delayed 3: <rustc_errors::HandlerInner as core::ops::drop::Drop>::drop 4: core::ptr::drop_in_place<rustc_session::parse::ParseSess> 5: <alloc::rc::Rc<T> as core::ops::drop::Drop>::drop 6: core::ptr::drop_in_place<rustc_interface::interface::Compiler> 7: rustc_span::with_source_map 8: rustc_interface::interface::create_compiler_and_run 9: scoped_tls::ScopedKey<T>::set 

Metadata

Metadata

Labels

C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-highHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-betaPerformance or correctness regression from stable to beta.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions