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

Attempt to continue a labeled loop from within async block panics compiler #73704

Closed
nicolaiunrein opened this issue Jun 24, 2020 · 1 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.

Comments

@nicolaiunrein
Copy link

Description

I found the following compiler bug when attempting to continue a tagged loop from within an async block. In Coc I get a warning instead of an error for this. And when I try to compile the compiler panics. I tried on nightly as well and it seems to give the same error. If I change the continue to a break I get error `break` to unknown label as expected.

Code

    pub async fn run(&self) {
        'outer: loop {
            match TcpStream::connect(self.addr).await {
                Ok(mut stream) => {
                    trace!("Connected");
                    let (mut reader, mut writer) = self.get_framed(&mut stream);

                    let recv_loop = async move {
                        while let Some(item) = reader.next().await {
                            match item {
                                Ok(inner) => self.broadcast_msg(inner).await,
                                Err(err) => self.broadcast_decode_error(err).await,
                            }
                        }
                    };

                    let send_loop = async move {
                        let outbound_stream = self.outbound_ch.subscribe().await;
                        pin_mut!(outbound_stream);

                        while let Some(cmd) = outbound_stream.next().await {
                            match cmd {
                                Command::Msg(mut cmd) => {
                                    if let Err(err) = writer.send(cmd.cmd).await {
                                        if let Some(notify) = cmd.notify.take() {
                                            if let Ok(notify) = Arc::try_unwrap(notify) {
                                                let _ =
                                                    notify.send(Err(SendError::CodecError(err)));
                                            }
                                        }
                                    } else {
                                        if let Some(notify) = cmd.notify.take() {
                                            if let Ok(notify) = Arc::try_unwrap(notify) {
                                                let _ = notify.send(Ok(()));
                                            }
                                        }
                                    }
                                }

                                Command::Reconnect => {
                                    continue 'outer;
                                    // ^ ------------------------- This leads to the below bug...
                                }
                            }
                        }
                    };

                    let ping_loop = async move {
                        if let Some(ref token) = self.ping_token {
                            loop {
                                if let Err(_) = self
                                    .do_send_with_ack(token.clone(), self.ping_timeout, |_| true)
                                    .await
                                {
                                    self.broadcast_ping_timeout().await;
                                    return;
                                }
                                tokio::time::delay_for(self.ping_interval).await;
                            }
                        } else {
                            futures::future::pending().await
                        }
                    };

                    pin_mut!(recv_loop);
                    pin_mut!(send_loop);
                    pin_mut!(ping_loop);

                    self.broadcast_connect().await;

                    let io_loop = futures::future::select(recv_loop, send_loop);
                    pin_mut!(io_loop);

                    futures::future::select(io_loop, ping_loop).await;
                }

                Err(error) => {
                    self.broadcast_connect_error(error).await;
                    tokio::time::delay_for(self.retry_delay).await;
                    continue;
                }
            }

            self.broadcast_disconnect().await;
            tokio::time::delay_for(self.reconnect_delay).await;
        }
    }

Meta

rustc --version --verbose:

rustc 1.44.1 (c7087fe00 2020-06-17)
binary: rustc
commit-hash: c7087fe00d2ba919df1d813c040a5d47e43b0fe7
commit-date: 2020-06-17
host: x86_64-unknown-linux-gnu
release: 1.44.1
LLVM version: 9.0

rustup run nightly rustc --version --verbose

rustc 1.46.0-nightly (a8cf39911 2020-06-21)
binary: rustc
commit-hash: a8cf3991177f30694200002cd9479ffbbe6d9a1a
commit-date: 2020-06-21
host: x86_64-unknown-linux-gnu
release: 1.46.0-nightly
LLVM version: 10.0

Error output

error: internal compiler error: src/librustc_mir_build/build/scope.rs:313: no enclosing breakable scope found
   --> src/managed_connection/mod.rs:129:37
    |
129 | ...                   continue 'outer;
    |                       ^^^^^^^^^^^^^^^

thread 'rustc' panicked at 'Box<Any>', /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7/src/libstd/macros.rs:13:23
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.44.1 (c7087fe00 2020-06-17) running on x86_64-unknown-linux-gnu

note: compiler flags: -C debuginfo=2 -C incremental --crate-type lib

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

error: aborting due to previous error

error: could not compile `rust-utils`.

Backtrace

    Checking rust-utils v0.1.0 (/home/nicolai/Repos/Rust/rust-utils)
    Checking rust-utils v0.1.0 (/home/nicolai/Repos/Rust/rust-utils)
error: internal compiler error: src/librustc_mir_build/build/scope.rs:313: no enclosing breakable scope found
   --> src/managed_connection/mod.rs:129:37
    |
129 | ...                   continue 'outer;
    |                       ^^^^^^^^^^^^^^^

error: internal compiler error: src/librustc_mir_build/build/scope.rs:313: no enclosing breakable scope found
   --> src/managed_connection/mod.rs:129:37
    |
129 | ...                   continue 'outer;
    |                       ^^^^^^^^^^^^^^^

thread 'rustc' panicked at 'Box<Any>', /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7/src/libstd/macros.rs:13:23
stack backtrace:thread 'rustc' panicked at 'Box<Any>', /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7/src/libstd/macros.rs:13:23
stack backtrace:

   0: backtrace::backtrace::libunwind::trace
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/git.luolix.top-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/git.luolix.top-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
             at /cargo/registry/src/git.luolix.top-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/git.luolix.top-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1069
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1069
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1504
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1504
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   7: std::sys_common::backtrace::print

   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:198
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:198
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:218   9: std::panicking::default_hook
             at src/libstd/panicking.rs:218

  10: rustc_driver::report_ice
  10: rustc_driver::report_ice
  11: <alloc::boxed::Box<F> as core::ops::function::Fn<A>>::call
  11: <alloc::boxed::Box<F> as core::ops::function::Fn<A>>::call
             at /home/nicolai/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/liballoc/boxed.rs:1022             at /home/nicolai/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/liballoc/boxed.rs:1022

  12: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}::{{closure}}
  12: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}::{{closure}}
             at /home/nicolai/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libproc_macro/bridge/client.rs:305
             at /home/nicolai/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libproc_macro/bridge/client.rs:305
  13: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:515
  13: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:515
  14: std::panicking::begin_panic
  15: rustc_errors::HandlerInner::span_bug  14: std::panicking::begin_panic
  15: rustc_errors::HandlerInner::span_bug

  16: rustc_errors::Handler::span_bug
  16: rustc_errors::Handler::span_bug
  17: rustc_middle::util::bug::opt_span_bug_fmt::{{closure}}
  17: rustc_middle::util::bug::opt_span_bug_fmt::{{closure}}
  18: rustc_middle::ty::context::tls::with_opt::{{closure}}
  19: rustc_middle::ty::context::tls::with_opt  18: rustc_middle::ty::context::tls::with_opt::{{closure}}
  19: rustc_middle::ty::context::tls::with_opt

  20: rustc_middle::util::bug::opt_span_bug_fmt
  20: rustc_middle::util::bug::opt_span_bug_fmt
  21: rustc_middle::util::bug::span_bug_fmt
  22: rustc_mir_build::build::scope::Scopes::find_breakable_scope::{{closure}}::{{closure}}
  21: rustc_middle::util::bug::span_bug_fmt
  22: rustc_mir_build::build::scope::Scopes::find_breakable_scope::{{closure}}::{{closure}}
  23: rustc_mir_build::build::scope::Scopes::find_breakable_scope
  23: rustc_mir_build::build::scope::Scopes::find_breakable_scope
  24: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::break_scope
  25: rustc_mir_build::build::expr::stmt::<impl rustc_mir_build::build::Builder>::stmt_expr
  24: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::break_scope
  25: rustc_mir_build::build::expr::stmt::<impl rustc_mir_build::build::Builder>::stmt_expr
  26: rustc_mir_build::build::expr::stmt::<impl rustc_mir_build::build::Builder>::stmt_expr
  26: rustc_mir_build::build::expr::stmt::<impl rustc_mir_build::build::Builder>::stmt_expr
  27: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block_stmts
  27: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block_stmts
  28: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  28: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  29: rustc_mir_build::build::expr::as_temp::<impl rustc_mir_build::build::Builder>::expr_as_temp
  29: rustc_mir_build::build::expr::as_temp::<impl rustc_mir_build::build::Builder>::expr_as_temp
  30: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  30: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  31: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  31: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  32: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  32: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  33: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::in_scope
  33: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::in_scope
  34: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  34: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  35: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  35: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  36: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  36: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  37: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block_stmts
  37: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block_stmts
  38: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  38: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  39: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  39: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  40: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  40: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  41: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::in_scope
  41: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::in_scope
  42: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  42: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  43: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  43: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  44: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  44: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  45: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block_stmts
  45: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block_stmts
  46: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  46: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  47: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  47: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  48: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  48: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  49: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block_stmts
  49: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block_stmts
  50: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  50: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  51: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  51: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  52: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  52: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
  53: rustc_mir_build::build::construct_fn
  53: rustc_mir_build::build::construct_fn
  54: rustc_infer::infer::InferCtxtBuilder::enter
  54: rustc_infer::infer::InferCtxtBuilder::enter
  55: rustc_mir_build::build::mir_built
  55: rustc_mir_build::build::mir_built
  56: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_built>::compute
  56: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_built>::compute
  57: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  57: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  58: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  58: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  59: rustc_query_system::query::plumbing::get_query
  59: rustc_query_system::query::plumbing::get_query
  60: rustc_mir::transform::check_unsafety::unsafety_check_result
  60: rustc_mir::transform::check_unsafety::unsafety_check_result
  61: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::unsafety_check_result>::compute
  61: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::unsafety_check_result>::compute
  62: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  62: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  63: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  63: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  64: rustc_query_system::query::plumbing::get_query
  64: rustc_query_system::query::plumbing::get_query
  65: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_rvalue
  65: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_rvalue
  66: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_statement
  66: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_statement
  67: rustc_mir::transform::check_unsafety::unsafety_check_result
  67: rustc_mir::transform::check_unsafety::unsafety_check_result
  68: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::unsafety_check_result>::compute
  68: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::unsafety_check_result>::compute
  69: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  69: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  70: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  70: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  71: rustc_query_system::query::plumbing::get_query
  71: rustc_query_system::query::plumbing::get_query
  72: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_rvalue
  72: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_rvalue
  73: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_statement
  73: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_statement
  74: rustc_mir::transform::check_unsafety::unsafety_check_result
  74: rustc_mir::transform::check_unsafety::unsafety_check_result
  75: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::unsafety_check_result>::compute
  75: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::unsafety_check_result>::compute
  76: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  76: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  77: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  77: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  78: rustc_query_system::query::plumbing::get_query
  78: rustc_query_system::query::plumbing::get_query
  79: rustc_mir::transform::mir_const
  79: rustc_mir::transform::mir_const
  80: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_const>::compute
  80: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_const>::compute
  81: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  81: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  82: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  82: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  83: rustc_query_system::query::plumbing::get_query
  83: rustc_query_system::query::plumbing::get_query
  84: rustc_mir::transform::mir_validated
  84: rustc_mir::transform::mir_validated
  85: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_validated>::compute
  85: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_validated>::compute
  86: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  86: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  87: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  87: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  88: rustc_query_system::query::plumbing::get_query
  88: rustc_query_system::query::plumbing::get_query
  89: rustc_mir::borrow_check::mir_borrowck
  89: rustc_mir::borrow_check::mir_borrowck
  90: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_borrowck>::compute
  90: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_borrowck>::compute
  91: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  91: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  92: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  92: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  93: rustc_query_system::query::plumbing::get_query
  93: rustc_query_system::query::plumbing::get_query
  94: rustc_typeck::collect::type_of::type_of
  94: rustc_typeck::collect::type_of::type_of
  95: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  95: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  96: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  96: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  97: rustc_query_system::query::plumbing::get_query
  97: rustc_query_system::query::plumbing::get_query
  98: rustc_middle::ty::util::<impl rustc_middle::ty::context::TyCtxt>::try_expand_impl_trait_type::OpaqueTypeExpander::expand_opaque_ty
  98: rustc_middle::ty::util::<impl rustc_middle::ty::context::TyCtxt>::try_expand_impl_trait_type::OpaqueTypeExpander::expand_opaque_ty
  99: rustc_middle::ty::util::<impl rustc_middle::ty::context::TyCtxt>::try_expand_impl_trait_type
  99: rustc_middle::ty::util::<impl rustc_middle::ty::context::TyCtxt>::try_expand_impl_trait_type
 100: rustc_typeck::check::check_item_type
 100: rustc_typeck::check::check_item_type
 101: rustc_middle::hir::map::Map::visit_item_likes_in_module
 101: rustc_middle::hir::map::Map::visit_item_likes_in_module
 102: rustc_typeck::check::check_mod_item_types
 102: rustc_typeck::check::check_mod_item_types
 103: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::check_mod_item_types>::compute
 103: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::check_mod_item_types>::compute
 104: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
 104: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
 105: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
 105: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.


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

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-reportsnote: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports



note: rustc 1.44.1 (c7087fe00 2020-06-17) running on x86_64-unknown-linux-gnu

note: rustc 1.44.1 (c7087fe00 2020-06-17) running on x86_64-unknown-linux-gnu

note: compiler flags: -C debuginfo=2 -C incremental --crate-type lib
note: compiler flags: -C debuginfo=2 -C incremental --crate-type lib


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

query stack during panic:note: some of the compiler flags provided by cargo are hidden

query stack during panic:

#0 [mir_built] building MIR for
#0 [mir_built] building MIR for
#1 [unsafety_check_result] unsafety-checking `managed_connection::ManagedConnection::<Output, Input, Encoder, Decoder, Error>::run::{{closure}}#0::{{closure}}#1`
#1 [unsafety_check_result] unsafety-checking `managed_connection::ManagedConnection::<Output, Input, Encoder, Decoder, Error>::run::{{closure}}#0::{{closure}}#1`
#2 [unsafety_check_result] unsafety-checking `managed_connection::ManagedConnection::<Output, Input, Encoder, Decoder, Error>::run::{{closure}}#0`
#3 [unsafety_check_result] unsafety-checking `managed_connection::ManagedConnection::<Output, Input, Encoder, Decoder, Error>::run`
#4 [mir_const] processing `managed_connection::ManagedConnection::<Output, Input, Encoder, Decoder, Error>::run`
#2 [unsafety_check_result] unsafety-checking `managed_connection::ManagedConnection::<Output, Input, Encoder, Decoder, Error>::run::{{closure}}#0`
#3 [unsafety_check_result] unsafety-checking `managed_connection::ManagedConnection::<Output, Input, Encoder, Decoder, Error>::run`
#4 [mir_const] processing `managed_connection::ManagedConnection::<Output, Input, Encoder, Decoder, Error>::run`
#5 [mir_validated] processing `managed_connection::ManagedConnection::<Output, Input, Encoder, Decoder, Error>::run`
#6 [mir_borrowck] borrow-checking `managed_connection::ManagedConnection::<Output, Input, Encoder, Decoder, Error>::run`
#7 [type_of] processing `managed_connection::ManagedConnection<Output, Input, Encoder, Decoder, Error>::run::{{opaque}}#0`
#5 [mir_validated] processing `managed_connection::ManagedConnection::<Output, Input, Encoder, Decoder, Error>::run`
#6 [mir_borrowck] borrow-checking `managed_connection::ManagedConnection::<Output, Input, Encoder, Decoder, Error>::run`
#7 [type_of] processing `managed_connection::ManagedConnection<Output, Input, Encoder, Decoder, Error>::run::{{opaque}}#0`
#8 [check_mod_item_types] checking item types in module `managed_connection`
#9 [analysis] running analysis passes on this crate#8 [check_mod_item_types] checking item types in module `managed_connection`
#9 [analysis] running analysis passes on this crate
end of query stack

end of query stack
error: aborting due to previous error

error: aborting due to previous error

error: could not compile `rust-utils`.

To learn more, run the command again with --verbose.
error: could not compile `rust-utils`.

To learn more, run the command again with --verbose.

@nicolaiunrein nicolaiunrein 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 Jun 24, 2020
@jonas-schievink
Copy link
Contributor

duplicate of #73541

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

No branches or pull requests

2 participants