Skip to content

ICE: compiler/rustc_typeck/src/check/fn_ctxt/_impl.rs:136:13: no type for local variable local let tx; (hir_id=HirId { owner: DefId(0:3 ~ mutant[8787]::main), local_id: 3 } #86188

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
Cancelll opened this issue Jun 10, 2021 · 0 comments · Fixed by #86206
Labels
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) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@Cancelll
Copy link

Code

fn main() {
    [(); return || {
        let tx;
    }]
}

Meta

rustc --version --verbose:

rustc 1.54.0-nightly (ed597e7e1 2021-06-08)
binary: rustc
commit-hash: ed597e7e19d0fe716d9f81b1e840a5abbfd7c28d
commit-date: 2021-06-08
host: x86_64-unknown-linux-gnu
release: 1.54.0-nightly
LLVM version: 12.0.1

Error output

error[E0572]: return statement outside of function body
 --> mutant.rs:2:10
  |
2 |       [(); return || {
  |  __________^
3 | |         let tx;
4 | |     }]
  | |_____^

error: internal compiler error: compiler/rustc_typeck/src/check/fn_ctxt/_impl.rs:136:13: no type for local variable local let tx; (hir_id=HirId { owner: DefId(0:3 ~ mutant[8787]::main), local_id: 3 })
 --> mutant.rs:3:9
  |
3 |         let tx;
  |         ^^^^^^^

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/ed597e7e19d0fe716d9f81b1e840a5abbfd7c28d/compiler/rustc_errors/src/lib.rs:953:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

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

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.54.0-nightly (ed597e7e1 2021-06-08) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z mir-opt-level=3 -Z new-llvm-pass-manager=yes -Z unsound-mir-opts=yes -Z polonius=yes -Z polymorphize=yes -C debuginfo=2 -C opt-level=3 --crate-type staticlib

query stack during panic:
#0 [typeck] type-checking `main::{constant#0}`
#1 [eval_to_allocation_raw] const-evaluating + checking `main::{constant#0}`
end of query stack
error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0572`.
Backtrace

error[E0572]: return statement outside of function body
 --> mutant.rs:2:10
  |
2 |       [(); return || {
  |  __________^
3 | |         let tx;
4 | |     }]
  | |_____^

error: internal compiler error: compiler/rustc_typeck/src/check/fn_ctxt/_impl.rs:136:13: no type for local variable local let tx; (hir_id=HirId { owner: DefId(0:3 ~ mutant[8787]::main), local_id: 3 })
 --> mutant.rs:3:9
  |
3 |         let tx;
  |         ^^^^^^^

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/ed597e7e19d0fe716d9f81b1e840a5abbfd7c28d/compiler/rustc_errors/src/lib.rs:953:9
stack backtrace:
   0: std::panicking::begin_panic
   1: std::panic::panic_any
   2: rustc_errors::HandlerInner::span_bug
   3: rustc_errors::Handler::span_bug
   4: rustc_middle::ty::context::tls::with_opt
   5: rustc_middle::util::bug::opt_span_bug_fmt
   6: rustc_middle::util::bug::span_bug_fmt
   7: rustc_typeck::check::fn_ctxt::_impl::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::local_ty
   8: <rustc_typeck::check::writeback::WritebackCx as rustc_hir::intravisit::Visitor>::visit_local
   9: rustc_hir::intravisit::walk_block
  10: <rustc_typeck::check::writeback::WritebackCx as rustc_hir::intravisit::Visitor>::visit_expr
  11: <rustc_typeck::check::writeback::WritebackCx as rustc_hir::intravisit::Visitor>::visit_expr
  12: <rustc_typeck::check::writeback::WritebackCx as rustc_hir::intravisit::Visitor>::visit_expr
  13: rustc_typeck::check::writeback::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::resolve_type_vars_in_body
  14: rustc_typeck::check::inherited::InheritedBuilder::enter
  15: rustc_typeck::check::typeck
  16: rustc_query_system::query::plumbing::get_query_impl
  17: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::typeck
  18: rustc_middle::ty::context::TyCtxt::typeck_opt_const_arg
  19: rustc_mir::const_eval::eval_queries::eval_to_allocation_raw_provider
  20: rustc_query_impl::<impl rustc_query_system::query::config::QueryAccessors<rustc_query_impl::plumbing::QueryCtxt> for rustc_query_impl::queries::eval_to_allocation_raw>::compute
  21: rustc_query_system::query::plumbing::get_query_impl
  22: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::eval_to_allocation_raw
  23: rustc_mir::const_eval::eval_queries::eval_to_const_value_raw_provider
  24: rustc_query_impl::<impl rustc_query_system::query::config::QueryAccessors<rustc_query_impl::plumbing::QueryCtxt> for rustc_query_impl::queries::eval_to_const_value_raw>::compute
  25: rustc_query_system::query::plumbing::get_query_impl
  26: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::eval_to_const_value_raw
  27: rustc_middle::mir::interpret::queries::<impl rustc_middle::ty::context::TyCtxt>::const_eval_global_id
  28: rustc_middle::mir::interpret::queries::<impl rustc_middle::ty::context::TyCtxt>::const_eval_resolve
  29: rustc_infer::infer::InferCtxt::const_eval_resolve
  30: rustc_trait_selection::traits::const_evaluatable::is_const_evaluatable
  31: rustc_trait_selection::traits::fulfill::FulfillProcessor::progress_changed_obligations
  32: rustc_data_structures::obligation_forest::ObligationForest<O>::process_obligations
  33: <rustc_trait_selection::traits::fulfill::FulfillmentContext as rustc_infer::traits::engine::TraitEngine>::select_where_possible
  34: rustc_typeck::check::fn_ctxt::_impl::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::resolve_vars_with_obligations
  35: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  36: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  37: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  38: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  39: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
  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::inherited::InheritedBuilder::enter
  44: rustc_typeck::check::typeck
  45: rustc_query_system::query::plumbing::get_query_impl
  46: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::typeck
  47: rustc_middle::ty::<impl rustc_middle::ty::context::TyCtxt>::par_body_owners
  48: rustc_typeck::check::typeck_item_bodies
  49: rustc_query_system::query::plumbing::get_query_impl
  50: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::typeck_item_bodies
  51: rustc_session::utils::<impl rustc_session::session::Session>::time
  52: rustc_typeck::check_crate
  53: rustc_interface::passes::analysis
  54: rustc_query_system::query::plumbing::get_query_impl
  55: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
  56: rustc_interface::passes::QueryContext::enter
  57: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
  58: rustc_span::with_source_map
  59: rustc_interface::interface::create_compiler_and_run
  60: rustc_span::with_session_globals
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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-nightly (ed597e7e1 2021-06-08) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z mir-opt-level=3 -Z new-llvm-pass-manager=yes -Z unsound-mir-opts=yes -Z polonius=yes -Z polymorphize=yes -C debuginfo=2 -C opt-level=3 --crate-type staticlib

query stack during panic:
#0 [typeck] type-checking `main::{constant#0}`
#1 [eval_to_allocation_raw] const-evaluating + checking `main::{constant#0}`
#2 [eval_to_const_value_raw] simplifying constant for the type system `main::{constant#0}`
#3 [typeck] type-checking `main`
#4 [typeck_item_bodies] type-checking all item bodies
#5 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0572`.

@Cancelll Cancelll added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jun 10, 2021
fanninpm added a commit to fanninpm/glacier that referenced this issue Jun 11, 2021
@rust-lang-glacier-bot rust-lang-glacier-bot added the glacier ICE tracked in rust-lang/glacier. label Jun 12, 2021
@bors bors closed this as completed in 4afdef0 Jun 28, 2021
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
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) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants