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

ICE typechecking async fn with explicit lifetime argument #51996

Closed
cramertj opened this issue Jul 2, 2018 · 2 comments
Closed

ICE typechecking async fn with explicit lifetime argument #51996

cramertj opened this issue Jul 2, 2018 · 2 comments

Comments

@cramertj
Copy link
Member

cramertj commented Jul 2, 2018

Playground link

ICE disappears if the dummy argument explicit lifetime is removed.

thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `DefId(0/1:15 ~ foo[b6a6]::foo[0]::{{closure}}[0])`,
 right: `DefId(0/0:14 ~ foo[b6a6]::foo[0])`', librustc/middle/region.rs:761:9
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::print
             at libstd/sys_common/backtrace.rs:71
             at libstd/sys_common/backtrace.rs:59
   2: std::panicking::default_hook::{{closure}}
             at libstd/panicking.rs:211
   3: std::panicking::default_hook
             at libstd/panicking.rs:227
   4: rustc::util::common::panic_hook
   5: std::panicking::rust_panic_with_hook
             at libstd/panicking.rs:515
   6: std::panicking::continue_panic_fmt
             at libstd/panicking.rs:426
   7: std::panicking::begin_panic_fmt
             at libstd/panicking.rs:413
   8: rustc::middle::region::ScopeTree::free_scope
   9: rustc::infer::lexical_region_resolve::LexicalResolver::expand_node
  10: rustc::infer::lexical_region_resolve::resolve
  11: rustc::infer::InferCtxt::resolve_regions_and_report_errors_inner
  12: rustc_typeck::check::regionck::<impl rustc_typeck::check::FnCtxt<'a, 'gcx, 'tcx>>::regionck_fn
  13: rustc::ty::context::tls::with_related_context
  14: rustc::infer::InferCtxtBuilder::enter
  15: rustc_typeck::check::typeck_tables_of
  16: rustc::ty::query::__query_compute::typeck_tables_of
  17: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors<'tcx> for rustc::ty::query::queries::typeck_tables_of<'tcx>>::compute
  18: rustc::ty::context::tls::with_context
  19: rustc::dep_graph::graph::DepGraph::with_task_impl
  20: rustc::ty::context::tls::with_related_context
  21: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::force_query_with_job
  22: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::get_query
  23: rustc::ty::query::<impl rustc::ty::context::TyCtxt<'a, 'tcx, 'lcx>>::typeck_tables_of
  24: rustc_typeck::check::typeck_tables_of
  25: rustc::ty::query::__query_compute::typeck_tables_of
  26: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors<'tcx> for rustc::ty::query::queries::typeck_tables_of<'tcx>>::compute
  27: rustc::ty::context::tls::with_context
  28: rustc::dep_graph::graph::DepGraph::with_task_impl
  29: rustc::ty::context::tls::with_related_context
  30: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::force_query_with_job
  31: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::get_query
  32: rustc::ty::query::<impl rustc::ty::context::TyCtxt<'a, 'tcx, 'lcx>>::typeck_tables_of
  33: rustc_typeck::collect::type_of
  34: rustc::ty::query::__query_compute::type_of
  35: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors<'tcx> for rustc::ty::query::queries::type_of<'tcx>>::compute
  36: rustc::ty::context::tls::with_context
  37: rustc::dep_graph::graph::DepGraph::with_task_impl
  38: rustc::ty::context::tls::with_related_context
  39: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::force_query_with_job
  40: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::get_query
  41: rustc::ty::query::<impl rustc::ty::context::TyCtxt<'a, 'tcx, 'lcx>>::type_of
  42: <rustc_typeck::collect::CollectItemTypesVisitor<'a, 'tcx> as rustc::hir::intravisit::Visitor<'tcx>>::visit_expr
  43: rustc::hir::intravisit::walk_expr
  44: rustc::hir::intravisit::Visitor::visit_fn
  45: rustc::hir::intravisit::walk_item
  46: <rustc_typeck::collect::CollectItemTypesVisitor<'a, 'tcx> as rustc::hir::intravisit::Visitor<'tcx>>::visit_item
  47: rustc::hir::Crate::visit_all_item_likes
  48: rustc::session::Session::track_errors
  49: rustc_typeck::check_crate
  50: rustc::ty::context::tls::enter_context
  51: <std::thread::local::LocalKey<T>>::with
  52: rustc::ty::context::TyCtxt::create_and_enter
  53: rustc_driver::driver::compile_input
  54: rustc_driver::run_compiler_with_pool
  55: <scoped_tls::ScopedKey<T>>::set
  56: syntax::with_globals
  57: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
  58: __rust_maybe_catch_panic
             at libpanic_unwind/lib.rs:105
  59: rustc_driver::run
  60: rustc_driver::main
  61: std::rt::lang_start::{{closure}}
  62: std::panicking::try::do_call
             at libstd/rt.rs:59
             at libstd/panicking.rs:310
  63: __rust_maybe_catch_panic
             at libpanic_unwind/lib.rs:105
  64: std::rt::lang_start_internal
             at libstd/panicking.rs:289
             at libstd/panic.rs:392
             at libstd/rt.rs:58
  65: main
  66: __libc_start_main
  67: <unknown>
query stack during panic:
#0 [typeck_tables_of] processing `foo`
#1 [typeck_tables_of] processing `foo::{{closure}}`
#2 [type_of] processing `foo::{{closure}}`
end of query stack

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/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.28.0-nightly (84804c387 2018-06-26) running on x86_64-unknown-linux-gnu

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

note: some of the compiler flags provided by cargo are hidden
@jkozlowski
Copy link
Contributor

See my issue above, I think it might be references with lifetimes in general that ICE it?

@Arnavion
Copy link

The ICE in the OP code is fixed by #54000, though the code still doesn't compile for lifetime reasons.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants