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

Internal compiler error with async, const generics, and ?-operator #84841

Closed
ghost opened this issue May 2, 2021 · 7 comments · Fixed by #86866
Closed

Internal compiler error with async, const generics, and ?-operator #84841

ghost opened this issue May 2, 2021 · 7 comments · Fixed by #86866
Assignees
Labels
A-async-await Area: Async & Await A-const-generics Area: const generics (parameters and arguments) AsyncAwait-Triaged Async-await issues that have been triaged during a working group meeting. C-bug Category: This is a bug. glacier ICE tracked in rust-lang/glacier. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ P-high High priority regression-from-stable-to-stable Performance or correctness regression from one stable version to another. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@ghost
Copy link

ghost commented May 2, 2021

Code

async fn main() {
    // Adding an .await here avoids the ICE
    test()?;
}

// Removing the const generic parameter here avoids the ICE
async fn test<const N: usize>() {
}

Meta

rustc --version --verbose:

rustc 1.51.0 (2fd73fabe 2021-03-23)
binary: rustc
commit-hash: 2fd73fabe469357a12c2c974c140f67e7cdd76d0
commit-date: 2021-03-23
host: x86_64-pc-windows-gnu
release: 1.51.0
LLVM version: 11.0.1

The error also occurs on beta and nightly.

Error output

thread 'rustc' panicked at 'index out of bounds: the len is 0 but the index is 0', C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\ena-0.14.0\src\snapshot_vec.rs:199:10
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.51.0 (2fd73fabe 2021-03-23) running on x86_64-pc-windows-gnu

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

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

query stack during panic:
#0 [type_implements_trait] evaluating `type_implements_trait` `(DefId(2:9585 ~ core[2923]::future::future::Future), impl std::future::Future, [], ParamEnv { caller_bounds: [], reveal: UserFacing })`
#1 [typeck] type-checking `main`
end of query stack
Backtrace

thread 'rustc' panicked at 'index out of bounds: the len is 0 but the index is 0', C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\ena-0.14.0\src\snapshot_vec.rs:199:10
stack backtrace:
   0: rust_begin_unwind
             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\panicking.rs:493:5
   1: core::panicking::panic_fmt
             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\core\src\panicking.rs:92:14
   2: core::panicking::panic_bounds_check
             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\core\src\panicking.rs:69:5
   3: ena::unify::UnificationTable<S>::probe_value
   4: <rustc_infer::infer::canonical::canonicalizer::Canonicalizer as rustc_middle::ty::fold::TypeFolder>::fold_const
   5: rustc_middle::ty::fold::TypeFoldable::fold_with
   6: <rustc_infer::infer::canonical::canonicalizer::Canonicalizer as rustc_middle::ty::fold::TypeFolder>::fold_ty
   7: rustc_middle::ty::fold::TypeFoldable::fold_with
   8: rustc_middle::ty::fold::TypeFoldable::fold_with
   9: rustc_middle::ty::fold::TypeFoldable::fold_with
  10: rustc_infer::infer::canonical::canonicalizer::Canonicalizer::canonicalize
  11: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
  12: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
  13: rustc_infer::infer::InferCtxtBuilder::enter
  14: rustc_trait_selection::traits::type_implements_trait
  15: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::type_implements_trait>::compute
  16: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  17: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  18: rustc_data_structures::stack::ensure_sufficient_stack
  19: rustc_query_system::query::plumbing::force_query_with_job
  20: rustc_query_system::query::plumbing::get_query_impl
  21: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::suggestions::InferCtxtExt>::suggest_await_before_try
  22: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtExt>::report_selection_error
  23: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtPrivExt>::report_fulfillment_error
  24: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtExt>::report_fulfillment_errors
  25: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
  26: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
  27: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
  28: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  29: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  30: rustc_typeck::check::_match::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::demand_scrutinee_type
  31: rustc_typeck::check::_match::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_match
  32: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  33: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  34: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_stmt
  35: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
  36: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  37: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  38: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  39: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  40: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
  41: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  42: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  43: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_return_expr
  44: rustc_typeck::check::check::check_fn
  45: rustc_typeck::check::closure::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_closure
  46: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  47: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  48: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
  49: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
  50: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
  51: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  52: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  53: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_return_expr
  54: rustc_typeck::check::check::check_fn
  55: rustc_infer::infer::InferCtxtBuilder::enter
  56: rustc_typeck::check::typeck
  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
  59: rustc_data_structures::stack::ensure_sufficient_stack
  60: rustc_query_system::query::plumbing::force_query_with_job
  61: rustc_query_system::query::plumbing::get_query_impl
  62: rustc_middle::ty::context::TyCtxt::typeck_opt_const_arg
  63: rustc_mir_build::thir::cx::Cx::new
  64: rustc_infer::infer::InferCtxtBuilder::enter
  65: rustc_mir_build::build::mir_built
  66: 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
  67: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  68: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  69: rustc_data_structures::stack::ensure_sufficient_stack
  70: rustc_query_system::query::plumbing::force_query_with_job
  71: rustc_query_system::query::plumbing::get_query_impl
  72: rustc_mir::transform::check_unsafety::unsafety_check_result
  73: core::ops::function::FnOnce::call_once
  74: 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::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  76: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  77: rustc_data_structures::stack::ensure_sufficient_stack
  78: rustc_query_system::query::plumbing::force_query_with_job
  79: rustc_query_system::query::plumbing::get_query_impl
  80: rustc_query_system::query::plumbing::ensure_query_impl
  81: rustc_mir::transform::mir_const
  82: 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
  83: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  84: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  85: rustc_data_structures::stack::ensure_sufficient_stack
  86: rustc_query_system::query::plumbing::force_query_with_job
  87: rustc_query_system::query::plumbing::get_query_impl
  88: rustc_mir::transform::mir_promoted
  89: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_promoted>::compute
  90: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  91: 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.

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.51.0 (2fd73fabe 2021-03-23) running on x86_64-pc-windows-gnu

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

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

query stack during panic:
#0 [type_implements_trait] evaluating `type_implements_trait` `(DefId(2:9585 ~ core[2923]::future::future::Future), impl std::future::Future, [], ParamEnv { caller_bounds: [], reveal: UserFacing })`
#1 [typeck] type-checking `main`
#2 [mir_built] building MIR for `main`
#3 [unsafety_check_result] unsafety-checking `main`
#4 [mir_const] processing MIR for `main`
#5 [mir_promoted] processing `main`
#6 [mir_borrowck] borrow-checking `main`
#7 [type_of] computing type of `main::{opaque#0}`
#8 [check_mod_item_types] checking item types in top-level module
#9 [analysis] running analysis passes on this crate
end of query stack
error: internal compiler error: trimmed_def_paths constructed
  |
  = note: delayed at    0: std::backtrace_rs::backtrace::dbghelp::trace
                       at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\..\..\backtrace\src\backtrace\dbghelp.rs:98:5
                std::backtrace_rs::backtrace::trace_unsynchronized
                       at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66:5
                std::backtrace::Backtrace::create
                       at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\backtrace.rs:327:13
             1: std::backtrace::Backtrace::force_capture
                       at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\backtrace.rs:310:9
             2: rustc_errors::Handler::delay_good_path_bug
             3: rustc_middle::ty::print::pretty::trimmed_def_paths
             4: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::trimmed_def_paths>::compute
             5: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
             6: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             7: rustc_data_structures::stack::ensure_sufficient_stack
             8: rustc_query_system::query::plumbing::force_query_with_job
             9: rustc_query_system::query::plumbing::get_query_impl
            10: <rustc_middle::ty::print::pretty::FmtPrinter<F> as rustc_middle::ty::print::Printer>::print_def_path
            11: rustc_middle::ty::print::Printer::default_print_def_path
            12: <rustc_middle::ty::print::pretty::FmtPrinter<F> as rustc_middle::ty::print::Printer>::print_def_path
            13: <rustc_middle::ty::print::pretty::FmtPrinter<F> as rustc_middle::ty::print::pretty::PrettyPrinter>::in_binder
            14: std::thread::local::LocalKey<T>::with
            15: rustc_middle::ty::print::pretty::PrettyPrinter::pretty_print_type
            16: <rustc_middle::ty::print::pretty::FmtPrinter<F> as rustc_middle::ty::print::Printer>::print_type
            17: rustc_middle::ty::print::pretty::<impl core::fmt::Display for &rustc_middle::ty::TyS>::fmt
            18: core::fmt::write
                       at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\core\src\fmt\mod.rs:1096:17
            19: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::on_unimplemented::InferCtxtExt>::on_unimplemented_note
            20: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtExt>::report_selection_error
            21: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtPrivExt>::report_fulfillment_error
            22: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtExt>::report_fulfillment_errors
            23: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
            24: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
            25: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
            26: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
            27: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            28: rustc_typeck::check::_match::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::demand_scrutinee_type
            29: rustc_typeck::check::_match::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_match
            30: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
            31: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            32: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_stmt
            33: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
            34: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
            35: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            36: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
            37: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            38: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
            39: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
            40: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            41: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_return_expr
            42: rustc_typeck::check::check::check_fn
            43: rustc_typeck::check::closure::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_closure
            44: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
            45: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            46: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
            47: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
            48: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
            49: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
            50: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            51: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_return_expr
            52: rustc_typeck::check::check::check_fn
            53: rustc_infer::infer::InferCtxtBuilder::enter
            54: rustc_typeck::check::typeck
            55: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
            56: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            57: rustc_data_structures::stack::ensure_sufficient_stack
            58: rustc_query_system::query::plumbing::force_query_with_job
            59: rustc_query_system::query::plumbing::get_query_impl
            60: rustc_middle::ty::context::TyCtxt::typeck_opt_const_arg
            61: rustc_mir_build::thir::cx::Cx::new
            62: rustc_infer::infer::InferCtxtBuilder::enter
            63: rustc_mir_build::build::mir_built
            64: 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
            65: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
            66: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            67: rustc_data_structures::stack::ensure_sufficient_stack
            68: rustc_query_system::query::plumbing::force_query_with_job
            69: rustc_query_system::query::plumbing::get_query_impl
            70: rustc_mir::transform::check_unsafety::unsafety_check_result
            71: core::ops::function::FnOnce::call_once
            72: 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
            73: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
            74: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            75: rustc_data_structures::stack::ensure_sufficient_stack
            76: rustc_query_system::query::plumbing::force_query_with_job
            77: rustc_query_system::query::plumbing::get_query_impl
            78: rustc_query_system::query::plumbing::ensure_query_impl
            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
            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
            83: rustc_data_structures::stack::ensure_sufficient_stack
            84: rustc_query_system::query::plumbing::force_query_with_job
            85: rustc_query_system::query::plumbing::get_query_impl
            86: rustc_mir::transform::mir_promoted
            87: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_promoted>::compute
            88: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
            89: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            90: rustc_data_structures::stack::ensure_sufficient_stack
            91: rustc_query_system::query::plumbing::force_query_with_job
            92: rustc_query_system::query::plumbing::get_query_impl
            93: rustc_mir::borrow_check::mir_borrowck
            94: core::ops::function::FnOnce::call_once
            95: 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
            96: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
            97: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            98: rustc_data_structures::stack::ensure_sufficient_stack
            99: rustc_query_system::query::plumbing::force_query_with_job
           100: rustc_query_system::query::plumbing::get_query_impl
           101: rustc_typeck::collect::type_of::type_of
           102: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::type_of>::compute
           103: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
           104: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
           105: rustc_data_structures::stack::ensure_sufficient_stack
           106: rustc_query_system::query::plumbing::force_query_with_job
           107: rustc_query_system::query::plumbing::get_query_impl
           108: rustc_typeck::check::check::check_item_type
           109: rustc_middle::hir::map::Map::visit_item_likes_in_module
           110: rustc_typeck::check::check::check_mod_item_types
           111: 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
           112: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
           113: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
           114: rustc_data_structures::stack::ensure_sufficient_stack
           115: rustc_query_system::query::plumbing::force_query_with_job
           116: rustc_query_system::query::plumbing::get_query_impl
           117: rustc_query_system::query::plumbing::ensure_query_impl
           118: rustc_session::utils::<impl rustc_session::session::Session>::time
           119: rustc_typeck::check_crate
           120: rustc_interface::passes::analysis
           121: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute
           122: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
           123: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
           124: rustc_data_structures::stack::ensure_sufficient_stack
           125: rustc_query_system::query::plumbing::force_query_with_job
           126: rustc_query_system::query::plumbing::get_query_impl
           127: rustc_interface::passes::QueryContext::enter
           128: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
           129: rustc_span::with_source_map
           130: rustc_interface::interface::create_compiler_and_run
           131: rustc_span::with_session_globals
           132: std::sys_common::backtrace::__rust_begin_short_backtrace
           133: core::ops::function::FnOnce::call_once{{vtable.shim}}
           134: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
                       at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\library\alloc\src/boxed.rs:1521:9
                <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
                       at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\library\alloc\src/boxed.rs:1521:9
                std::sys::windows::thread::Thread::new::thread_start
                       at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\sys\windows\thread.rs:56:17
           135: <unknown>
           136: <unknown>


thread 'rustc' panicked at 'no warnings or errors encountered even though `delayed_good_path_bugs` issued', compiler\rustc_errors\src\lib.rs:974:13
stack backtrace:
   0:         0x527ea6db - std::backtrace_rs::backtrace::dbghelp::trace::h099c0ebce18042e7
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\..\..\backtrace\src\backtrace\dbghelp.rs:98:5
   1:         0x527ea6db - std::backtrace_rs::backtrace::trace_unsynchronized::h60466f2375b69387
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66:5
   2:         0x527ea6db - std::sys_common::backtrace::_print_fmt::h8b4dc0c0d2fa23f6
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\sys_common\backtrace.rs:67:5
   3:         0x527ea6db - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h35b8b38915e1bc02
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\sys_common\backtrace.rs:46:22
   4:         0x528554ab - core::fmt::write::h84e7aafa8dd4e2b5
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\core\src\fmt\mod.rs:1096:17
   5:         0x527dd661 - std::io::Write::write_fmt::h5cf20dc1f436c697
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\io\mod.rs:1568:15
   6:         0x527ee1a8 - std::sys_common::backtrace::_print::h0168c471b620d9ec
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\sys_common\backtrace.rs:49:5
   7:         0x527ee1a8 - std::sys_common::backtrace::print::h5dc90305ae0c8ef5
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\sys_common\backtrace.rs:36:9
   8:         0x527ee1a8 - std::panicking::default_hook::{{closure}}::h776b613ba0b5bd15
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\panicking.rs:208:50
   9:         0x527edd46 - std::panicking::default_hook::h0cedd2beda71d0c5
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\panicking.rs:225:9
  10:         0x530b8da6 - rustc_driver::report_ice::h4c1b428b89d209a5
  11:         0x527eea0d - std::panicking::rust_panic_with_hook::hc47aa3eac4f4ebeb
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\panicking.rs:595:17
  12:         0x527ee579 - std::panicking::begin_panic_handler::{{closure}}::hab1cbc585893772b
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\panicking.rs:497:13
  13:         0x527eb0bf - std::sys_common::backtrace::__rust_end_short_backtrace::h3520c0a5bc5dd883
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\sys_common\backtrace.rs:141:18
  14:         0x527ee4d9 - rust_begin_unwind
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\panicking.rs:493:5
  15:         0x527ee48c - std::panicking::begin_panic_fmt::h8dba33e1cd895182
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\panicking.rs:435:5
  16:         0x560a8932 - rustc_errors::HandlerInner::flush_delayed::h52e4edff29297038
  17:         0x560a4d22 - <rustc_errors::HandlerInner as core::ops::drop::Drop>::drop::h84880c0dcb2530d7
  18:         0x530c9279 - core::ptr::drop_in_place<rustc_session::parse::ParseSess>::h51620a7d665196c8
  19:         0x530d06ca - <alloc::rc::Rc<T> as core::ops::drop::Drop>::drop::haf7dc27497eb43d0
  20:         0x530ca5cf - core::ptr::drop_in_place<rustc_interface::interface::Compiler>::h6dfee60c1838f683
  21:         0x530bdd3f - rustc_span::with_source_map::h64b47373b08a1e5c
  22:         0x530dec3f - rustc_interface::interface::create_compiler_and_run::h29ef442a0b952274
  23:         0x530be53d - rustc_span::with_session_globals::hc735291d0ad65499
  24:         0x530e1235 - std::sys_common::backtrace::__rust_begin_short_backtrace::hec005665202107ca
  25:         0x53109f97 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h49a6bdc92bb48f1d
  26:         0x527fd329 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hada1b7cf3cf4998d
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\library\alloc\src/boxed.rs:1521:9
  27:         0x527fd329 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hc25ab237b938f88a
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\library\alloc\src/boxed.rs:1521:9
  28:         0x527fd329 - std::sys::windows::thread::Thread::new::thread_start::hd12c2139229b9a8f
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0\/library\std\src\sys\windows\thread.rs:56:17
  29:     0x7ff9a74c7034 - <unknown>
  30:     0x7ff9a7f62651 - <unknown>

error: internal compiler error: unexpected panic

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

@ghost ghost 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 May 2, 2021
@hellow554
Copy link
Contributor

complete backtrace
⣿
Standard Error

   Compiling playground v0.0.1 (/playground)
thread 'rustc' panicked at 'index out of bounds: the len is 0 but the index is 0', /cargo/registry/src/github.com-1ecc6299db9ec823/ena-0.14.0/src/snapshot_vec.rs:199:10
stack backtrace:
   0: rust_begin_unwind
             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/panicking.rs:493:5
   1: core::panicking::panic_fmt
             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/core/src/panicking.rs:92:14
   2: core::panicking::panic_bounds_check
             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/core/src/panicking.rs:69:5
   3: ena::unify::UnificationTable<S>::probe_value
   4: <rustc_infer::infer::canonical::canonicalizer::Canonicalizer as rustc_middle::ty::fold::TypeFolder>::fold_const
   5: rustc_middle::ty::fold::TypeFoldable::fold_with
   6: <rustc_infer::infer::canonical::canonicalizer::Canonicalizer as rustc_middle::ty::fold::TypeFolder>::fold_ty
   7: rustc_middle::ty::fold::TypeFoldable::fold_with
   8: rustc_middle::ty::fold::TypeFoldable::fold_with
   9: rustc_middle::ty::fold::TypeFoldable::fold_with
  10: rustc_infer::infer::canonical::canonicalizer::Canonicalizer::canonicalize
  11: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
  12: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
  13: rustc_infer::infer::InferCtxtBuilder::enter
  14: rustc_trait_selection::traits::type_implements_trait
  15: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::type_implements_trait>::compute
  16: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  17: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
  18: rustc_data_structures::stack::ensure_sufficient_stack
  19: rustc_query_system::query::plumbing::force_query_with_job
  20: rustc_query_system::query::plumbing::get_query_impl
  21: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::suggestions::InferCtxtExt>::suggest_await_before_try
  22: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtExt>::report_selection_error
  23: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtExt>::report_fulfillment_errors
  24: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
  25: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
  26: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
  27: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  28: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  29: rustc_typeck::check::_match::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::demand_scrutinee_type
  30: rustc_typeck::check::_match::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_match
  31: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  32: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  33: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_stmt
  34: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
  35: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  36: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  37: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
  38: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  39: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_return_expr
  40: rustc_typeck::check::check::check_fn
  41: rustc_typeck::check::closure::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_closure
  42: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  43: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  44: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
  45: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
  46: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
  47: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  48: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  49: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_return_expr
  50: rustc_typeck::check::check::check_fn
  51: rustc_infer::infer::InferCtxtBuilder::enter
  52: rustc_typeck::check::typeck
  53: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  54: rustc_data_structures::stack::ensure_sufficient_stack
  55: rustc_query_system::query::plumbing::force_query_with_job
  56: rustc_query_system::query::plumbing::get_query_impl
  57: rustc_middle::ty::context::TyCtxt::typeck_opt_const_arg
  58: rustc_infer::infer::InferCtxtBuilder::enter
  59: rustc_mir_build::build::mir_built
  60: 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
  61: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  62: rustc_data_structures::stack::ensure_sufficient_stack
  63: rustc_query_system::query::plumbing::force_query_with_job
  64: rustc_query_system::query::plumbing::get_query_impl
  65: rustc_mir::transform::check_unsafety::unsafety_check_result
  66: core::ops::function::FnOnce::call_once
  67: 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_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  69: rustc_data_structures::stack::ensure_sufficient_stack
  70: rustc_query_system::query::plumbing::force_query_with_job
  71: rustc_query_system::query::plumbing::get_query_impl
  72: rustc_query_system::query::plumbing::ensure_query_impl
  73: rustc_mir::transform::mir_const
  74: 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
  75: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  76: rustc_data_structures::stack::ensure_sufficient_stack
  77: rustc_query_system::query::plumbing::force_query_with_job
  78: rustc_query_system::query::plumbing::get_query_impl
  79: rustc_mir::transform::mir_promoted
  80: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_promoted>::compute
  81: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  82: rustc_data_structures::stack::ensure_sufficient_stack
  83: rustc_query_system::query::plumbing::force_query_with_job
  84: rustc_query_system::query::plumbing::get_query_impl
  85: rustc_mir::borrow_check::mir_borrowck
  86: core::ops::function::FnOnce::call_once
  87: 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
  88: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  89: rustc_data_structures::stack::ensure_sufficient_stack
  90: rustc_query_system::query::plumbing::force_query_with_job
  91: rustc_query_system::query::plumbing::get_query_impl
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose 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.51.0 (2fd73fabe 2021-03-23) running on x86_64-unknown-linux-gnu

note: compiler flags: -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2 --crate-type bin

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

query stack during panic:
#0 [type_implements_trait] evaluating `type_implements_trait` `(DefId(2:9578 ~ core[4fe0]::future::future::Future), impl std::future::Future, [], ParamEnv { caller_bounds: [], reveal: UserFacing })`
#1 [typeck] type-checking `main`
#2 [mir_built] building MIR for `main`
#3 [unsafety_check_result] unsafety-checking `main`
#4 [mir_const] processing MIR for `main`
#5 [mir_promoted] processing `main`
#6 [mir_borrowck] borrow-checking `main`
#7 [type_of] computing type of `main::{opaque#0}`
#8 [check_mod_item_types] checking item types in top-level module
#9 [analysis] running analysis passes on this crate
end of query stack
error: internal compiler error: trimmed_def_paths constructed
  |
  = note: delayed at    0: rustc_errors::Handler::delay_good_path_bug
             1: rustc_middle::ty::print::pretty::trimmed_def_paths
             2: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::trimmed_def_paths>::compute
             3: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             4: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
             5: rustc_data_structures::stack::ensure_sufficient_stack
             6: rustc_query_system::query::plumbing::force_query_with_job
             7: rustc_query_system::query::plumbing::get_query_impl
             8: <rustc_middle::ty::print::pretty::FmtPrinter<F> as rustc_middle::ty::print::Printer>::print_def_path
             9: <rustc_middle::ty::print::pretty::FmtPrinter<F> as rustc_middle::ty::print::Printer>::print_def_path
            10: <rustc_middle::ty::print::pretty::FmtPrinter<F> as rustc_middle::ty::print::pretty::PrettyPrinter>::in_binder
            11: std::thread::local::LocalKey<T>::with
            12: rustc_middle::ty::print::pretty::PrettyPrinter::pretty_print_type
            13: <rustc_middle::ty::print::pretty::FmtPrinter<F> as rustc_middle::ty::print::Printer>::print_type
            14: rustc_middle::ty::print::pretty::<impl core::fmt::Display for &rustc_middle::ty::TyS>::fmt
            15: core::fmt::write
                       at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/core/src/fmt/mod.rs:1096:17
            16: core::fmt::Write::write_fmt
            17: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::on_unimplemented::InferCtxtExt>::on_unimplemented_note
            18: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtExt>::report_selection_error
            19: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtExt>::report_fulfillment_errors
            20: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
            21: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
            22: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
            23: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
            24: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            25: rustc_typeck::check::_match::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::demand_scrutinee_type
            26: rustc_typeck::check::_match::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_match
            27: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
            28: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            29: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_stmt
            30: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
            31: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            32: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            33: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
            34: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            35: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_return_expr
            36: rustc_typeck::check::check::check_fn
            37: rustc_typeck::check::closure::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_closure
            38: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
            39: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            40: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
            41: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
            42: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
            43: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
            44: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
            45: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_return_expr
            46: rustc_typeck::check::check::check_fn
            47: rustc_infer::infer::InferCtxtBuilder::enter
            48: rustc_typeck::check::typeck
            49: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            50: rustc_data_structures::stack::ensure_sufficient_stack
            51: rustc_query_system::query::plumbing::force_query_with_job
            52: rustc_query_system::query::plumbing::get_query_impl
            53: rustc_middle::ty::context::TyCtxt::typeck_opt_const_arg
            54: rustc_infer::infer::InferCtxtBuilder::enter
            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
            57: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            58: rustc_data_structures::stack::ensure_sufficient_stack
            59: rustc_query_system::query::plumbing::force_query_with_job
            60: rustc_query_system::query::plumbing::get_query_impl
            61: rustc_mir::transform::check_unsafety::unsafety_check_result
            62: core::ops::function::FnOnce::call_once
            63: 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
            64: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            65: rustc_data_structures::stack::ensure_sufficient_stack
            66: rustc_query_system::query::plumbing::force_query_with_job
            67: rustc_query_system::query::plumbing::get_query_impl
            68: rustc_query_system::query::plumbing::ensure_query_impl
            69: rustc_mir::transform::mir_const
            70: 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
            71: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            72: rustc_data_structures::stack::ensure_sufficient_stack
            73: rustc_query_system::query::plumbing::force_query_with_job
            74: rustc_query_system::query::plumbing::get_query_impl
            75: rustc_mir::transform::mir_promoted
            76: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_promoted>::compute
            77: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            78: rustc_data_structures::stack::ensure_sufficient_stack
            79: rustc_query_system::query::plumbing::force_query_with_job
            80: rustc_query_system::query::plumbing::get_query_impl
            81: rustc_mir::borrow_check::mir_borrowck
            82: core::ops::function::FnOnce::call_once
            83: 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
            84: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            85: rustc_data_structures::stack::ensure_sufficient_stack
            86: rustc_query_system::query::plumbing::force_query_with_job
            87: rustc_query_system::query::plumbing::get_query_impl
            88: rustc_typeck::collect::type_of::type_of
            89: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::type_of>::compute
            90: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            91: rustc_data_structures::stack::ensure_sufficient_stack
            92: rustc_query_system::query::plumbing::force_query_with_job
            93: rustc_query_system::query::plumbing::get_query_impl
            94: rustc_typeck::check::check::check_item_type
            95: rustc_middle::hir::map::Map::visit_item_likes_in_module
            96: rustc_typeck::check::check::check_mod_item_types
            97: 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
            98: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
            99: rustc_data_structures::stack::ensure_sufficient_stack
           100: rustc_query_system::query::plumbing::force_query_with_job
           101: rustc_query_system::query::plumbing::get_query_impl
           102: rustc_query_system::query::plumbing::ensure_query_impl
           103: rustc_session::utils::<impl rustc_session::session::Session>::time
           104: rustc_typeck::check_crate
           105: rustc_interface::passes::analysis
           106: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute
           107: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
           108: rustc_data_structures::stack::ensure_sufficient_stack
           109: rustc_query_system::query::plumbing::force_query_with_job
           110: rustc_query_system::query::plumbing::get_query_impl
           111: rustc_interface::passes::QueryContext::enter
           112: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
           113: rustc_span::with_source_map
           114: rustc_interface::interface::create_compiler_and_run
           115: rustc_span::with_session_globals
           116: std::sys_common::backtrace::__rust_begin_short_backtrace
           117: core::ops::function::FnOnce::call_once{{vtable.shim}}
           118: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
                       at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/alloc/src/boxed.rs:1521:9
                <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
                       at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/alloc/src/boxed.rs:1521:9
                std::sys::unix::thread::Thread::new::thread_start
                       at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/sys/unix/thread.rs:71:17
           119: start_thread
           120: clone
          

thread 'rustc' panicked at 'no warnings or errors encountered even though `delayed_good_path_bugs` issued', compiler/rustc_errors/src/lib.rs:974:13
stack backtrace:
   0:     0x7f8cf5fe5ee0 - std::backtrace_rs::backtrace::libunwind::trace::h5e9d00f0cdf4f57e
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
   1:     0x7f8cf5fe5ee0 - std::backtrace_rs::backtrace::trace_unsynchronized::hd5302bd66215dab9
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f8cf5fe5ee0 - std::sys_common::backtrace::_print_fmt::ha0237cd11a34e2bf
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/sys_common/backtrace.rs:67:5
   3:     0x7f8cf5fe5ee0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h171d4c10df1a98ee
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/sys_common/backtrace.rs:46:22
   4:     0x7f8cf6056d0c - core::fmt::write::h89e4288724daa3fa
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/core/src/fmt/mod.rs:1096:17
   5:     0x7f8cf5fd8ff2 - std::io::Write::write_fmt::h6d40f996e84584d9
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/io/mod.rs:1568:15
   6:     0x7f8cf5fe9d95 - std::sys_common::backtrace::_print::h0c0b93221682afc8
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/sys_common/backtrace.rs:49:5
   7:     0x7f8cf5fe9d95 - std::sys_common::backtrace::print::h57a9f95204c2fdd6
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/sys_common/backtrace.rs:36:9
   8:     0x7f8cf5fe9d95 - std::panicking::default_hook::{{closure}}::h4245258b50e37e69
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/panicking.rs:208:50
   9:     0x7f8cf5fe98f3 - std::panicking::default_hook::h7b00dcc1d0944747
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/panicking.rs:225:9
  10:     0x7f8cf684bf3b - rustc_driver::report_ice::hd11b2540f4ebea82
  11:     0x7f8cf5fea696 - std::panicking::rust_panic_with_hook::h71e6a073d87de1f5
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/panicking.rs:595:17
  12:     0x7f8cf5fea1b7 - std::panicking::begin_panic_handler::{{closure}}::hd549436f6bb6dbb8
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/panicking.rs:497:13
  13:     0x7f8cf5fe637c - std::sys_common::backtrace::__rust_end_short_backtrace::h4e5f4b72b04174c3
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/sys_common/backtrace.rs:141:18
  14:     0x7f8cf5fea119 - rust_begin_unwind
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/panicking.rs:493:5
  15:     0x7f8cf5fea0cb - std::panicking::begin_panic_fmt::h818c3c917eaeb432
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/panicking.rs:435:5
  16:     0x7f8cf97aa023 - rustc_errors::HandlerInner::flush_delayed::h07c536cfe5282664
  17:     0x7f8cf97a8922 - <rustc_errors::HandlerInner as core::ops::drop::Drop>::drop::h866df0da1f18e81d
  18:     0x7f8cf8b8b398 - core::ptr::drop_in_place<rustc_session::parse::ParseSess>::h7d54056c5d0955f3
  19:     0x7f8cf8b8eb6d - <alloc::rc::Rc<T> as core::ops::drop::Drop>::drop::haeaa1478c51489e4
  20:     0x7f8cf8b8c37d - core::ptr::drop_in_place<rustc_interface::interface::Compiler>::hc8b67c944d56a5c9
  21:     0x7f8cf8b89c04 - rustc_span::with_source_map::hedfeccc0422f91c4
  22:     0x7f8cf8b90eca - rustc_interface::interface::create_compiler_and_run::h7abf0b53119fd7ea
  23:     0x7f8cf8b89d05 - rustc_span::with_session_globals::hb5dbfdbd3bd12723
  24:     0x7f8cf8b9136a - std::sys_common::backtrace::__rust_begin_short_backtrace::hfe0fde7e082e2baf
  25:     0x7f8cf8badc4a - core::ops::function::FnOnce::call_once{{vtable.shim}}::h83306388c44d16bf
  26:     0x7f8cf5ffac8a - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61144a2be4ee36d8
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/alloc/src/boxed.rs:1521:9
  27:     0x7f8cf5ffac8a - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hcf5d395fdd120c17
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/alloc/src/boxed.rs:1521:9
  28:     0x7f8cf5ffac8a - std::sys::unix::thread::Thread::new::thread_start::hb5e40d3d934ebb7a
                               at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/sys/unix/thread.rs:71:17
  29:     0x7f8cf5f2e609 - start_thread
  30:     0x7f8cf5e42293 - clone
  31:                0x0 - <unknown>

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.51.0 (2fd73fabe 2021-03-23) running on x86_64-unknown-linux-gnu

note: compiler flags: -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2 --crate-type bin

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

Does not occur on stable 1.50.0, but on 1.51.0

@rustbot modify labels: A-async-await regression-from-stable-to-stable

@rustbot rustbot added A-async-await Area: Async & Await regression-from-stable-to-stable Performance or correctness regression from one stable version to another. I-prioritize Issue: Indicates that prioritization has been requested for this issue. labels May 3, 2021
@hellow554
Copy link
Contributor

Regression in nightly-2020-05-17 between ed084b0...dd927a5

@hameerabbasi
Copy link
Contributor

@rustbot labels -I-prioritize +P-high

As discussed in the prioritization working group on Zulip

@hameerabbasi hameerabbasi added P-high High priority and removed I-prioritize Issue: Indicates that prioritization has been requested for this issue. labels May 3, 2021
@steffahn
Copy link
Member

steffahn commented May 3, 2021

The bisection seems accurate, but (just so nobody misses this) this does mean it does also occur on 1.50 and all the way back to 1.45. Also this is seems const-generics related: @rustbot label A-const-generics.

PRs in the relevant range:

  commit[0] 2020-05-15UTC: Auto merge of #69659 - CAD97:step-rework-take-3, r=Amanieu
  commit[1] 2020-05-16UTC: Auto merge of #72251 - Dylan-DPC:rollup-4mik3o7, r=Dylan-DPC
  commit[2] 2020-05-16UTC: Auto merge of #72079 - semarie:openbsd-stacker, r=Mark-Simulacrum
  commit[3] 2020-05-16UTC: Auto merge of #71665 - RalfJung:miri-intern-no-ice, r=oli-obk
  commit[4] 2020-05-16UTC: Auto merge of #71872 - nnethercote:less-aggressive-arena-growth, r=oli-obk
  commit[5] 2020-05-16UTC: Auto merge of #72262 - Dylan-DPC:rollup-x56q1jj, r=Dylan-DPC
  commit[6] 2020-05-16UTC: Auto merge of #72276 - RalfJung:rollup-nkfu3is, r=RalfJung

@rustbot rustbot added the A-const-generics Area: const generics (parameters and arguments) label May 3, 2021
@tmandry tmandry added this to On deck in wg-async work via automation May 7, 2021
@tmandry tmandry added the AsyncAwait-Triaged Async-await issues that have been triaged during a working group meeting. label May 7, 2021
@tmandry
Copy link
Member

tmandry commented May 7, 2021

@rustbot claim

Claiming to investigate more

@rust-lang-glacier-bot rust-lang-glacier-bot added the glacier ICE tracked in rust-lang/glacier. label May 13, 2021
@tmandry
Copy link
Member

tmandry commented Jun 9, 2021

This panic happens while reporting an error, specifically in suggest_await_before_try:

let impls_future = self.tcx.type_implements_trait((
future_trait,
self_ty.skip_binder(),
ty::List::empty(),
obligation.param_env,
));

It appears to be the result of calling probe_const_var inside of an InferCtxt with an empty const unification table.

I haven't yet investigated why this would happen. The ConstVid must come from somewhere. type_implements_trait does enter a new inference context.

Logs from before the panic:

DEBUG rustc_trait_selection::traits::error_reporting::suggestions suggest_await_before_try: obligation=Obligation(predicate=Binder(TraitPredicate(<impl std::future::Future as std::ops::Try>), []), depth=0), span=issue-84841.rs:3:5: 3:12 (#3), trait_ref=Binder(<impl std::future::Future as std::ops::Try>, []), trait_ref_self_ty=Binder(impl std::future::Future, [])
DEBUG rustc_trait_selection::traits type_implements_trait: trait_def_id=DefId(2:12109 ~ core[ef11]::future::future::Future), type=impl std::future::Future, params=[], param_env=ParamEnv { caller_bounds: [], reveal: UserFacing }
thread 'rustc' panicked at 'index out of bounds: the len is 0 but the index is 0', /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/ena-0.14.0/src/snapshot_vec.rs:199:10
More detailed backtrace

thread 'rustc' panicked at 'index out of bounds: the len is 0 but the index is 0', /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/ena-0.14.0/src/snapshot_vec.rs:199:10
stack backtrace:
0: rust_begin_unwind
at ./library/std/src/panicking.rs:515:5
1: core::panicking::panic_fmt
at ./library/core/src/panicking.rs:92:14
2: core::panicking::panic_bounds_check
at ./library/core/src/panicking.rs:69:5
3: ena::snapshot_vec::SnapshotVec<D,V,U>::get
at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/ena-0.14.0/src/snapshot_vec.rs:199:10
4: <ena::snapshot_vec::SnapshotVec<D,V,L> as core::ops::index::Index>::index
at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/ena-0.14.0/src/snapshot_vec.rs:319:9
5: <ena::unify::backing_vec::InPlace<K,V,L> as core::ops::index::Index>::index
at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/ena-0.14.0/src/unify/backing_vec.rs:152:10
6: ena::unify::UnificationTable::value
at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/ena-0.14.0/src/unify/mod.rs:347:10
7: ena::unify::UnificationTable::inlined_get_root_key
at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/ena-0.14.0/src/unify/mod.rs:362:19
8: ena::unify::UnificationTable::inlined_probe_value
at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/ena-0.14.0/src/unify/mod.rs:566:18
9: ena::unify::UnificationTable::probe_value
at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/ena-0.14.0/src/unify/mod.rs:556:9
10: rustc_infer::infer::InferCtxt::probe_const_var
at ./compiler/rustc_infer/src/infer/mod.rs:1330:15
11: <rustc_infer::infer::canonical::canonicalizer::Canonicalizer as rustc_middle::ty::fold::TypeFolder>::fold_const
at ./compiler/rustc_infer/src/infer/canonical/canonicalizer.rs:432:23
12: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::consts::Const>::fold_with
at ./compiler/rustc_middle/src/ty/structural_impls.rs:1024:9
13: <rustc_middle::ty::subst::GenericArg as rustc_middle::ty::fold::TypeFoldable>::super_fold_with
at ./compiler/rustc_middle/src/ty/subst.rs:160:42
14: rustc_middle::ty::fold::TypeFoldable::fold_with
at ./compiler/rustc_middle/src/ty/fold.rs:51:9
15: rustc_middle::ty::subst::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>>::super_fold_with
at ./compiler/rustc_middle/src/ty/subst.rs:376:30
16: rustc_middle::ty::fold::TypeFoldable::fold_with
at ./compiler/rustc_middle/src/ty/fold.rs:51:9
17: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::super_fold_with
at ./compiler/rustc_middle/src/ty/structural_impls.rs:880:56
18: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::fold_with
at ./compiler/rustc_middle/src/ty/structural_impls.rs:901:9
19: <rustc_middle::ty::subst::GenericArg as rustc_middle::ty::fold::TypeFoldable>::super_fold_with
at ./compiler/rustc_middle/src/ty/subst.rs:159:41
20: rustc_middle::ty::fold::TypeFoldable::fold_with
at ./compiler/rustc_middle/src/ty/fold.rs:51:9
21: rustc_middle::ty::subst::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>>::super_fold_with
at ./compiler/rustc_middle/src/ty/subst.rs:376:30
22: rustc_middle::ty::fold::TypeFoldable::fold_with
at ./compiler/rustc_middle/src/ty/fold.rs:51:9
23: rustc_middle::ty::sty::_DERIVE_rustc_middle_ty_fold_TypeFoldable_tcx_FOR_TraitRef::::super_fold_with
at ./compiler/rustc_middle/src/ty/sty.rs:835:22
24: rustc_middle::ty::fold::TypeFoldable::fold_with
at ./compiler/rustc_middle/src/ty/fold.rs:51:9
25: rustc_middle::ty::_DERIVE_rustc_middle_ty_fold_TypeFoldable_tcx_FOR_TraitPredicate::::super_fold_with
at ./compiler/rustc_middle/src/ty/mod.rs:590:22
26: rustc_middle::ty::fold::TypeFoldable::fold_with
at ./compiler/rustc_middle/src/ty/fold.rs:51:9
27: rustc_middle::ty::_DERIVE_rustc_middle_ty_fold_TypeFoldable_tcx_FOR_PredicateKind::::super_fold_with
at ./compiler/rustc_middle/src/ty/mod.rs:428:22
28: rustc_middle::ty::fold::TypeFoldable::fold_with
at ./compiler/rustc_middle/src/ty/fold.rs:51:9
29: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for rustc_middle::ty::sty::Binder>::super_fold_with::{{closure}}
at ./compiler/rustc_middle/src/ty/structural_impls.rs:762:29
30: rustc_middle::ty::sty::Binder::map_bound
at ./compiler/rustc_middle/src/ty/sty.rs:1037:21
31: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for rustc_middle::ty::sty::Binder>::super_fold_with
at ./compiler/rustc_middle/src/ty/structural_impls.rs:762:9
32: <rustc_infer::infer::canonical::canonicalizer::Canonicalizer as rustc_middle::ty::fold::TypeFolder>::fold_binder
at ./compiler/rustc_infer/src/infer/canonical/canonicalizer.rs:301:17
33: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for rustc_middle::ty::sty::Binder>::fold_with
at ./compiler/rustc_middle/src/ty/structural_impls.rs:766:9
34: rustc_middle::ty::structural_impls::::super_fold_with
at ./compiler/rustc_middle/src/ty/structural_impls.rs:971:19
35: rustc_middle::ty::fold::TypeFoldable::fold_with
at ./compiler/rustc_middle/src/ty/fold.rs:51:9
36: rustc_middle::ty::_DERIVE_rustc_middle_ty_fold_TypeFoldable_tcx_FOR_ParamEnvAnd::<impl rustc_middle::ty::fold::TypeFoldable for rustc_middle::ty::ParamEnvAnd>::super_fold_with
at ./compiler/rustc_middle/src/ty/mod.rs:1263:51
37: rustc_middle::ty::fold::TypeFoldable::fold_with
at ./compiler/rustc_middle/src/ty/fold.rs:51:9
38: rustc_infer::infer::canonical::canonicalizer::Canonicalizer::canonicalize
at ./compiler/rustc_infer/src/infer/canonical/canonicalizer.rs:519:25
39: rustc_infer::infer::canonical::canonicalizer::::canonicalize_query
at ./compiler/rustc_infer/src/infer/canonical/canonicalizer.rs:49:9
40: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
at ./compiler/rustc_trait_selection/src/traits/query/evaluate_obligation.rs:67:22
41: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
at ./compiler/rustc_trait_selection/src/traits/query/evaluate_obligation.rs:82:15
42: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::predicate_must_hold_modulo_regions
at ./compiler/rustc_trait_selection/src/traits/query/evaluate_obligation.rs:58:9
43: rustc_trait_selection::traits::type_implements_trait::{{closure}}
at ./compiler/rustc_trait_selection/src/traits/mod.rs:540:36
44: rustc_infer::infer::InferCtxtBuilder::enter
at ./compiler/rustc_infer/src/infer/mod.rs:580:9
45: rustc_trait_selection::traits::type_implements_trait
at ./compiler/rustc_trait_selection/src/traits/mod.rs:540:5
46: rustc_query_impl::<impl rustc_query_system::query::config::QueryAccessors<rustc_query_impl::plumbing::QueryCtxt> for rustc_query_impl::queries::type_implements_trait>::compute
at ./compiler/rustc_query_impl/src/plumbing.rs:363:17
47: rustc_query_system::query::config::QueryVtable<CTX,K,V>::compute
at ./compiler/rustc_query_system/src/query/config.rs:44:9
48: rustc_query_system::query::plumbing::try_execute_query::{{closure}}
at ./compiler/rustc_query_system/src/query/plumbing.rs:460:55
49: stacker::maybe_grow
at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.12/src/lib.rs:55:9
50: rustc_data_structures::stack::ensure_sufficient_stack
at ./compiler/rustc_data_structures/src/stack.rs:16:5
51: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:133:17
52: rustc_middle::ty::context::tls::enter_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1723:50
53: rustc_middle::ty::context::tls::set_tlv
at ./compiler/rustc_middle/src/ty/context.rs:1707:9
54: rustc_middle::ty::context::tls::enter_context
at ./compiler/rustc_middle/src/ty/context.rs:1723:9
55: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:132:13
56: rustc_middle::ty::context::tls::with_related_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1767:13
57: rustc_middle::ty::context::tls::with_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1751:40
58: rustc_middle::ty::context::tls::with_context_opt
at ./compiler/rustc_middle/src/ty/context.rs:1740:22
59: rustc_middle::ty::context::tls::with_context
at ./compiler/rustc_middle/src/ty/context.rs:1751:9
60: rustc_middle::ty::context::tls::with_related_context
at ./compiler/rustc_middle/src/ty/context.rs:1764:9
61: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query
at ./compiler/rustc_query_impl/src/plumbing.rs:121:9
62: rustc_query_system::query::plumbing::try_execute_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:460:22
63: rustc_query_system::query::plumbing::get_query_impl
at ./compiler/rustc_query_system/src/query/plumbing.rs:699:5
64: rustc_query_system::query::plumbing::get_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:832:9
65: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::type_implements_trait
at ./compiler/rustc_query_impl/src/plumbing.rs:552:17
66: rustc_middle::ty::query::TyCtxtAt::type_implements_trait
at ./compiler/rustc_middle/src/ty/query/mod.rs:206:17
67: rustc_middle::ty::query::::type_implements_trait
at ./compiler/rustc_middle/src/ty/query/mod.rs:187:17
68: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::suggestions::InferCtxtExt>::suggest_await_before_try
at ./compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs:2352:36
69: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtExt>::report_selection_error
at ./compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs:418:29
70: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtPrivExt>::report_fulfillment_error
at ./compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs:1146:17
71: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::error_reporting::InferCtxtExt>::report_fulfillment_errors
at ./compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs:167:17
72: rustc_typeck::check::fn_ctxt::_impl::::select_obligations_where_possible
at ./compiler/rustc_typeck/src/check/fn_ctxt/_impl.rs:728:13
73: rustc_typeck::check::fn_ctxt::checks::::check_argument_types
at ./compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:301:17
74: rustc_typeck::check::callee::::confirm_builtin_call
at ./compiler/rustc_typeck/src/check/callee.rs:475:9
75: rustc_typeck::check::callee::::check_call
76: rustc_typeck::check::expr::::check_expr_kind
at ./compiler/rustc_typeck/src/check/expr.rs:275:45
77: rustc_typeck::check::expr::::check_expr_with_expectation
at ./compiler/rustc_typeck/src/check/expr.rs:186:18
78: rustc_typeck::check::expr::::check_expr_meets_expectation_or_error
at ./compiler/rustc_typeck/src/check/expr.rs:71:22
79: rustc_typeck::check::expr::::check_expr_has_type_or_error
at ./compiler/rustc_typeck/src/check/expr.rs:61:9
80: rustc_typeck::check::_match::::demand_scrutinee_type
at ./compiler/rustc_typeck/src/check/_match.rs:567:13
81: rustc_typeck::check::_match::::check_match
at ./compiler/rustc_typeck/src/check/_match.rs:81:13
82: rustc_typeck::check::expr::::check_expr_kind
at ./compiler/rustc_typeck/src/check/expr.rs:269:17
83: rustc_typeck::check::expr::::check_expr_with_expectation
at ./compiler/rustc_typeck/src/check/expr.rs:186:18
84: rustc_typeck::check::fn_ctxt::checks::::check_stmt
at ./compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:578:17
85: rustc_typeck::check::fn_ctxt::checks::::check_block_with_expected::{{closure}}
at ./compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:638:17
86: rustc_typeck::check::fn_ctxt::_impl::::with_breakable_ctxt
at ./compiler/rustc_typeck/src/check/fn_ctxt/_impl.rs:1597:22
87: rustc_typeck::check::fn_ctxt::checks::::check_block_with_expected
at ./compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:636:26
88: rustc_typeck::check::expr::::check_expr_kind
at ./compiler/rustc_typeck/src/check/expr.rs:274:41
89: rustc_typeck::check::expr::::check_expr_with_expectation
at ./compiler/rustc_typeck/src/check/expr.rs:186:18
90: rustc_typeck::check::expr::::check_expr_kind
at ./compiler/rustc_typeck/src/check/expr.rs:288:39
91: rustc_typeck::check::expr::::check_expr_with_expectation
at ./compiler/rustc_typeck/src/check/expr.rs:186:18
92: rustc_typeck::check::fn_ctxt::checks::::check_block_with_expected::{{closure}}::{{closure}}
at ./compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:643:50
93: core::option::Option::map
at ./library/core/src/option.rs:489:29
94: rustc_typeck::check::fn_ctxt::checks::::check_block_with_expected::{{closure}}
at ./compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:643:32
95: rustc_typeck::check::fn_ctxt::_impl::::with_breakable_ctxt
at ./compiler/rustc_typeck/src/check/fn_ctxt/_impl.rs:1597:22
96: rustc_typeck::check::fn_ctxt::checks::::check_block_with_expected
at ./compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:636:26
97: rustc_typeck::check::expr::::check_expr_kind
at ./compiler/rustc_typeck/src/check/expr.rs:274:41
98: rustc_typeck::check::expr::::check_expr_with_expectation
at ./compiler/rustc_typeck/src/check/expr.rs:186:18
99: rustc_typeck::check::expr::::check_expr_with_hint
at ./compiler/rustc_typeck/src/check/expr.rs:117:9
100: rustc_typeck::check::expr::::check_return_expr
at ./compiler/rustc_typeck/src/check/expr.rs:717:30
101: rustc_typeck::check::check::check_fn
at ./compiler/rustc_typeck/src/check/check.rs:272:9
102: rustc_typeck::check::closure::::check_closure
at ./compiler/rustc_typeck/src/check/closure.rs:77:13
103: rustc_typeck::check::closure::::check_expr_closure
at ./compiler/rustc_typeck/src/check/closure.rs:55:9
104: rustc_typeck::check::expr::::check_expr_kind
at ./compiler/rustc_typeck/src/check/expr.rs:272:17
105: rustc_typeck::check::expr::::check_expr_with_expectation
at ./compiler/rustc_typeck/src/check/expr.rs:186:18
106: rustc_typeck::check::fn_ctxt::checks::::check_argument_types
at ./compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:343:34
107: rustc_typeck::check::callee::::confirm_builtin_call
at ./compiler/rustc_typeck/src/check/callee.rs:475:9
108: rustc_typeck::check::callee::::check_call
109: rustc_typeck::check::expr::::check_expr_kind
at ./compiler/rustc_typeck/src/check/expr.rs:275:45
110: rustc_typeck::check::expr::::check_expr_with_expectation
at ./compiler/rustc_typeck/src/check/expr.rs:186:18
111: rustc_typeck::check::expr::::check_expr_with_hint
at ./compiler/rustc_typeck/src/check/expr.rs:117:9
112: rustc_typeck::check::expr::::check_return_expr
at ./compiler/rustc_typeck/src/check/expr.rs:717:30
113: rustc_typeck::check::check::check_fn
at ./compiler/rustc_typeck/src/check/check.rs:272:9
114: rustc_typeck::check::typeck_with_fallback::{{closure}}
at ./compiler/rustc_typeck/src/check/mod.rs:524:23
115: rustc_typeck::check::inherited::InheritedBuilder::enter::{{closure}}
at ./compiler/rustc_typeck/src/check/inherited.rs:105:34
116: rustc_infer::infer::InferCtxtBuilder::enter
at ./compiler/rustc_infer/src/infer/mod.rs:580:9
117: rustc_typeck::check::inherited::InheritedBuilder::enter
at ./compiler/rustc_typeck/src/check/inherited.rs:105:9
118: rustc_typeck::check::typeck_with_fallback
at ./compiler/rustc_typeck/src/check/mod.rs:492:26
119: rustc_typeck::check::typeck
at ./compiler/rustc_typeck/src/check/mod.rs:457:9
120: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:133:17
121: rustc_middle::ty::context::tls::enter_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1723:50
122: rustc_middle::ty::context::tls::set_tlv
at ./compiler/rustc_middle/src/ty/context.rs:1707:9
123: rustc_middle::ty::context::tls::enter_context
at ./compiler/rustc_middle/src/ty/context.rs:1723:9
124: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:132:13
125: rustc_middle::ty::context::tls::with_related_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1767:13
126: rustc_middle::ty::context::tls::with_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1751:40
127: rustc_middle::ty::context::tls::with_context_opt
at ./compiler/rustc_middle/src/ty/context.rs:1740:22
128: rustc_middle::ty::context::tls::with_context
at ./compiler/rustc_middle/src/ty/context.rs:1751:9
129: rustc_middle::ty::context::tls::with_related_context
at ./compiler/rustc_middle/src/ty/context.rs:1764:9
130: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query
at ./compiler/rustc_query_impl/src/plumbing.rs:121:9
131: rustc_query_system::query::plumbing::try_execute_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:460:22
132: rustc_query_system::query::plumbing::get_query_impl
at ./compiler/rustc_query_system/src/query/plumbing.rs:699:5
133: rustc_query_system::query::plumbing::get_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:832:9
134: rustc_middle::ty::query::TyCtxtAt::typeck
at ./compiler/rustc_middle/src/ty/query/mod.rs:206:17
135: rustc_middle::ty::query::::typeck
at ./compiler/rustc_middle/src/ty/query/mod.rs:187:17
136: rustc_middle::ty::context::TyCtxt::typeck_opt_const_arg
at ./compiler/rustc_middle/src/ty/context.rs:1037:13
137: rustc_mir_build::build::mir_build
at ./compiler/rustc_mir_build/src/build/mod.rs:47:26
138: rustc_mir_build::build::mir_built
at ./compiler/rustc_mir_build/src/build/mod.rs:34:20
139: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:133:17
140: rustc_middle::ty::context::tls::enter_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1723:50
141: rustc_middle::ty::context::tls::set_tlv
at ./compiler/rustc_middle/src/ty/context.rs:1707:9
142: rustc_middle::ty::context::tls::enter_context
at ./compiler/rustc_middle/src/ty/context.rs:1723:9
143: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:132:13
144: rustc_middle::ty::context::tls::with_related_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1767:13
145: rustc_middle::ty::context::tls::with_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1751:40
146: rustc_middle::ty::context::tls::with_context_opt
at ./compiler/rustc_middle/src/ty/context.rs:1740:22
147: rustc_middle::ty::context::tls::with_context
at ./compiler/rustc_middle/src/ty/context.rs:1751:9
148: rustc_middle::ty::context::tls::with_related_context
at ./compiler/rustc_middle/src/ty/context.rs:1764:9
149: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query
at ./compiler/rustc_query_impl/src/plumbing.rs:121:9
150: rustc_query_system::query::plumbing::try_execute_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:460:22
151: rustc_query_system::query::plumbing::get_query_impl
at ./compiler/rustc_query_system/src/query/plumbing.rs:699:5
152: rustc_query_system::query::plumbing::get_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:832:9
153: rustc_middle::ty::query::TyCtxtAt::mir_built
at ./compiler/rustc_middle/src/ty/query/mod.rs:206:17
154: rustc_middle::ty::query::::mir_built
at ./compiler/rustc_middle/src/ty/query/mod.rs:187:17
155: rustc_mir::transform::check_unsafety::unsafety_check_result
at ./compiler/rustc_mir/src/transform/check_unsafety.rs:468:17
156: rustc_mir::transform::check_unsafety::provide::{{closure}}
at ./compiler/rustc_mir/src/transform/check_unsafety.rs:404:17
157: core::ops::function::FnOnce::call_once
at ./library/core/src/ops/function.rs:227:5
158: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:133:17
159: rustc_middle::ty::context::tls::enter_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1723:50
160: rustc_middle::ty::context::tls::set_tlv
at ./compiler/rustc_middle/src/ty/context.rs:1707:9
161: rustc_middle::ty::context::tls::enter_context
at ./compiler/rustc_middle/src/ty/context.rs:1723:9
162: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:132:13
163: rustc_middle::ty::context::tls::with_related_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1767:13
164: rustc_middle::ty::context::tls::with_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1751:40
165: rustc_middle::ty::context::tls::with_context_opt
at ./compiler/rustc_middle/src/ty/context.rs:1740:22
166: rustc_middle::ty::context::tls::with_context
at ./compiler/rustc_middle/src/ty/context.rs:1751:9
167: rustc_middle::ty::context::tls::with_related_context
at ./compiler/rustc_middle/src/ty/context.rs:1764:9
168: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query
at ./compiler/rustc_query_impl/src/plumbing.rs:121:9
169: rustc_query_system::query::plumbing::try_execute_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:460:22
170: rustc_query_system::query::plumbing::get_query_impl
at ./compiler/rustc_query_system/src/query/plumbing.rs:699:5
171: rustc_query_system::query::plumbing::get_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:832:9
172: rustc_middle::ty::query::TyCtxtEnsure::unsafety_check_result
at ./compiler/rustc_middle/src/ty/query/mod.rs:177:17
173: rustc_mir::transform::mir_const
at ./compiler/rustc_mir/src/transform/mod.rs:263:9
174: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:133:17
175: rustc_middle::ty::context::tls::enter_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1723:50
176: rustc_middle::ty::context::tls::set_tlv
at ./compiler/rustc_middle/src/ty/context.rs:1707:9
177: rustc_middle::ty::context::tls::enter_context
at ./compiler/rustc_middle/src/ty/context.rs:1723:9
178: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:132:13
179: rustc_middle::ty::context::tls::with_related_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1767:13
180: rustc_middle::ty::context::tls::with_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1751:40
181: rustc_middle::ty::context::tls::with_context_opt
at ./compiler/rustc_middle/src/ty/context.rs:1740:22
182: rustc_middle::ty::context::tls::with_context
at ./compiler/rustc_middle/src/ty/context.rs:1751:9
183: rustc_middle::ty::context::tls::with_related_context
at ./compiler/rustc_middle/src/ty/context.rs:1764:9
184: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query
at ./compiler/rustc_query_impl/src/plumbing.rs:121:9
185: rustc_query_system::query::plumbing::try_execute_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:460:22
186: rustc_query_system::query::plumbing::get_query_impl
at ./compiler/rustc_query_system/src/query/plumbing.rs:699:5
187: rustc_query_system::query::plumbing::get_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:832:9
188: rustc_middle::ty::query::TyCtxtAt::mir_const
at ./compiler/rustc_middle/src/ty/query/mod.rs:206:17
189: rustc_middle::ty::query::::mir_const
at ./compiler/rustc_middle/src/ty/query/mod.rs:187:17
190: rustc_mir::transform::mir_promoted
at ./compiler/rustc_mir/src/transform/mod.rs:301:20
191: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:133:17
192: rustc_middle::ty::context::tls::enter_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1723:50
193: rustc_middle::ty::context::tls::set_tlv
at ./compiler/rustc_middle/src/ty/context.rs:1707:9
194: rustc_middle::ty::context::tls::enter_context
at ./compiler/rustc_middle/src/ty/context.rs:1723:9
195: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:132:13
196: rustc_middle::ty::context::tls::with_related_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1767:13
197: rustc_middle::ty::context::tls::with_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1751:40
198: rustc_middle::ty::context::tls::with_context_opt
at ./compiler/rustc_middle/src/ty/context.rs:1740:22
199: rustc_middle::ty::context::tls::with_context
at ./compiler/rustc_middle/src/ty/context.rs:1751:9
200: rustc_middle::ty::context::tls::with_related_context
at ./compiler/rustc_middle/src/ty/context.rs:1764:9
201: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query
at ./compiler/rustc_query_impl/src/plumbing.rs:121:9
202: rustc_query_system::query::plumbing::try_execute_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:460:22
203: rustc_query_system::query::plumbing::get_query_impl
at ./compiler/rustc_query_system/src/query/plumbing.rs:699:5
204: rustc_query_system::query::plumbing::get_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:832:9
205: rustc_middle::ty::query::TyCtxtAt::mir_promoted
at ./compiler/rustc_middle/src/ty/query/mod.rs:206:17
206: rustc_middle::ty::query::::mir_promoted
at ./compiler/rustc_middle/src/ty/query/mod.rs:187:17
207: rustc_mir::borrow_check::mir_borrowck
at ./compiler/rustc_mir/src/borrow_check/mod.rs:105:34
208: rustc_mir::borrow_check::provide::{{closure}}
at ./compiler/rustc_mir/src/borrow_check/mod.rs:91:17
209: core::ops::function::FnOnce::call_once
at ./library/core/src/ops/function.rs:227:5
210: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:133:17
211: rustc_middle::ty::context::tls::enter_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1723:50
212: rustc_middle::ty::context::tls::set_tlv
at ./compiler/rustc_middle/src/ty/context.rs:1707:9
213: rustc_middle::ty::context::tls::enter_context
at ./compiler/rustc_middle/src/ty/context.rs:1723:9
214: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:132:13
215: rustc_middle::ty::context::tls::with_related_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1767:13
216: rustc_middle::ty::context::tls::with_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1751:40
217: rustc_middle::ty::context::tls::with_context_opt
at ./compiler/rustc_middle/src/ty/context.rs:1740:22
218: rustc_middle::ty::context::tls::with_context
at ./compiler/rustc_middle/src/ty/context.rs:1751:9
219: rustc_middle::ty::context::tls::with_related_context
at ./compiler/rustc_middle/src/ty/context.rs:1764:9
220: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query
at ./compiler/rustc_query_impl/src/plumbing.rs:121:9
221: rustc_query_system::query::plumbing::try_execute_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:460:22
222: rustc_query_system::query::plumbing::get_query_impl
at ./compiler/rustc_query_system/src/query/plumbing.rs:699:5
223: rustc_query_system::query::plumbing::get_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:832:9
224: rustc_middle::ty::query::TyCtxtAt::mir_borrowck
at ./compiler/rustc_middle/src/ty/query/mod.rs:206:17
225: rustc_middle::ty::query::::mir_borrowck
at ./compiler/rustc_middle/src/ty/query/mod.rs:187:17
226: rustc_typeck::collect::type_of::type_of
at ./compiler/rustc_typeck/src/collect/type_of.rs:349:39
227: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:133:17
228: rustc_middle::ty::context::tls::enter_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1723:50
229: rustc_middle::ty::context::tls::set_tlv
at ./compiler/rustc_middle/src/ty/context.rs:1707:9
230: rustc_middle::ty::context::tls::enter_context
at ./compiler/rustc_middle/src/ty/context.rs:1723:9
231: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::{{closure}}
at ./compiler/rustc_query_impl/src/plumbing.rs:132:13
232: rustc_middle::ty::context::tls::with_related_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1767:13
233: rustc_middle::ty::context::tls::with_context::{{closure}}
at ./compiler/rustc_middle/src/ty/context.rs:1751:40
234: rustc_middle::ty::context::tls::with_context_opt
at ./compiler/rustc_middle/src/ty/context.rs:1740:22
235: rustc_middle::ty::context::tls::with_context
at ./compiler/rustc_middle/src/ty/context.rs:1751:9
236: rustc_middle::ty::context::tls::with_related_context
at ./compiler/rustc_middle/src/ty/context.rs:1764:9
237: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query
at ./compiler/rustc_query_impl/src/plumbing.rs:121:9
238: rustc_query_system::query::plumbing::try_execute_query
at ./compiler/rustc_query_system/src/query/plumbing.rs:460:22
239: rustc_query_system::query::plumbing::get_query_impl
at ./compiler/rustc_query_system/src/query/plumbing.rs:699:5
note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose 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.54.0-dev running on x86_64-unknown-linux-gnu

note: compiler flags: -Z report-delayed-bugs

query stack during panic:
#0 [type_implements_trait] evaluating type_implements_trait (DefId(2:12109 ~ core[ef11]::future::future::Future), impl std::future::Future, [], ParamEnv { caller_bounds: [], reveal: UserFacing })
#1 [typeck] type-checking main
#2 [mir_built] building MIR for main
#3 [unsafety_check_result] unsafety-checking main
#4 [mir_const] processing MIR for main
#5 [mir_promoted] processing main
#6 [mir_borrowck] borrow-checking main
#7 [type_of] computing type of main::{opaque#0}
#8 [check_mod_item_types] checking item types in top-level module
#9 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error

@tmandry tmandry moved this from On deck to Claimed in wg-async work Jul 2, 2021
@nikomatsakis
Copy link
Contributor

Potentially related to #86743

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-async-await Area: Async & Await A-const-generics Area: const generics (parameters and arguments) AsyncAwait-Triaged Async-await issues that have been triaged during a working group meeting. C-bug Category: This is a bug. glacier ICE tracked in rust-lang/glacier. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ P-high High priority regression-from-stable-to-stable Performance or correctness regression from one stable version to another. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

7 participants