rust-lang / rust-lang/rust-analyzer

panic `evaluation shouldn't be concurrent yet` recursive const

Open
#22,800 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-mir A-ty C-bug I-panic
Dominant language
Rust
Stars
16.9k
Forks
2.2k
Avg merge
1d 12h
Merged PRs (30d)
72

Description

const _THREE = _ONE;
const _ONE: [u8; _ONE] = ();

fn main() {}

RUSTFLAGS="" ~/.rustup/toolchains/master/bin/rust-analyzer highlight < code.rs

thread 'main' (3655214) panicked at src/tools/rust-analyzer/crates/hir-ty/src/next_solver/interner.rs:1038:9:
evaluation shouldn't be concurrent yet
stack backtrace:
   0:     0x7f6c3a60a566 - <<std[7a677e1801b0b374]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8947f86082328bb0]::fmt::Display>::fmt
   1:     0x7f6c3ac0ec88 - core[8947f86082328bb0]::fmt::write
   2:     0x7f6c3a61f9dc - <std[7a677e1801b0b374]::sys::stdio::unix::Stderr as core[8947f86082328bb0]::io::write::Write>::write_fmt
   3:     0x7f6c3a5de8ea - std[7a677e1801b0b374]::panicking::default_hook::{closure#0}
   4:     0x7f6c3a5fcc83 - std[7a677e1801b0b374]::panicking::default_hook
   5:     0x7f6c3a5fd0eb - std[7a677e1801b0b374]::panicking::panic_with_hook
   6:     0x7f6c3a5de9d4 - std[7a677e1801b0b374]::panicking::panic_handler::{closure#0}
   7:     0x7f6c3a5d2e89 - std[7a677e1801b0b374]::sys::backtrace::__rust_end_short_backtrace::<std[7a677e1801b0b374]::panicking::panic_handler::{closure#0}, !>
   8:     0x7f6c3a5e02fd - __rustc[3266c8557f45551c]::rust_begin_unwind
   9:     0x7f6c3735c47c - core[8947f86082328bb0]::panicking::panic_fmt
  10:     0x564b8ff1d412 - <ra_ap_rustc_type_ir[4c7ad565f4fbbb32]::search_graph::SearchGraph<ra_ap_rustc_next_trait_solver[6f4571a0989d1e5b]::solve::search_graph::SearchGraphDelegate<hir_ty[93cf116e5217208d]::next_solver::solver::SolverContext>, hir_ty[93cf116e5217208d]::next_solver::interner::DbInterner>>::evaluate_goal
  11:     0x564b8feb093a - <ra_ap_rustc_next_trait_solver[6f4571a0989d1e5b]::solve::eval_ctxt::EvalCtxt<hir_ty[93cf116e5217208d]::next_solver::solver::SolverContext, hir_ty[93cf116e5217208d]::next_solver::interner::DbInterner>>::evaluate_goal_raw
  12:     0x564b8feb1b4f - <ra_ap_rustc_next_trait_solver[6f4571a0989d1e5b]::solve::eval_ctxt::EvalCtxt<hir_ty[93cf116e5217208d]::next_solver::solver::SolverContext, hir_ty[93cf116e5217208d]::next_solver::interner::DbInterner>>::try_evaluate_added_goals
  13:     0x564b8ff229c4 - <ra_ap_rustc_type_ir[4c7ad565f4fbbb32]::search_graph::SearchGraph<ra_ap_rustc_next_trait_solver[6f4571a0989d1e5b]::solve::search_graph::SearchGraphDelegate<hir_ty[93cf116e5217208d]::next_solver::solver::SolverContext>, hir_ty[93cf116e5217208d]::next_solver::interner::DbInterner>>::evaluate_goal_in_task
  14:     0x564b8ff1ac38 - <ra_ap_rustc_type_ir[4c7ad565f4fbbb32]::search_graph::SearchGraph<ra_ap_rustc_next_trait_solver[6f4571a0989d1e5b]::solve::search_graph::SearchGraphDelegate<hir_ty[93cf116e5217208d]::next_solver::solver::SolverContext>, hir_ty[93cf116e5217208d]::next_solver::interner::DbInterner>>::evaluate_goal
  15:     0x564b8feb093a - <ra_ap_rustc_next_trait_solver[6f4571a0989d1e5b]::solve::eval_ctxt::EvalCtxt<hir_ty[93cf116e5217208d]::next_solver::solver::SolverContext, hir_ty[93cf116e5217208d]::next_solver::interner::DbInterner>>::evaluate_goal_raw
  16:     0x564b8feaf859 - <ra_ap_rustc_next_trait_solver[6f4571a0989d1e5b]::solve::eval_ctxt::EvalCtxt<hir_ty[93cf116e5217208d]::next_solver::solver::SolverContext, hir_ty[93cf116e5217208d]::next_solver::interner::DbInterner>>::evaluate_goal
  17:     0x564b900c6b17 - <hir_ty[93cf116e5217208d]::next_solver::solver::SolverContext as ra_ap_rustc_next_trait_solver[6f4571a0989d1e5b]::solve::eval_ctxt::SolverDelegateEvalExt>::evaluate_root_goal
  18:     0x564b8fec3495 - <hir_ty[93cf116e5217208d]::next_solver::fulfill::FulfillmentCtxt>::try_evaluate_obligations
  19:     0x564b8fe21cc9 - <hir_ty[93cf116e5217208d]::next_solver::normalize::NormalizationFolder>::normalize_alias_term
  20:     0x564b900cafe5 - <hir_ty[93cf116e5217208d]::next_solver::normalize::NormalizationFolder as ra_ap_rustc_type_ir[4c7ad565f4fbbb32]::fold::FallibleTypeFolder<hir_ty[93cf116e5217208d]::next_solver::interner::DbInterner>>::try_fold_const
  21:     0x564b8fda83b5 - <hir_ty[93cf116e5217208d]::next_solver::ty::Ty as ra_ap_rustc_type_ir[4c7ad565f4fbbb32]::fold::TypeSuperFoldable<hir_ty[93cf116e5217208d]::next_solver::interner::DbInterner>>::try_super_fold_with::<hir_ty[93cf116e5217208d]::next_solver::normalize::NormalizationFolder>
  22:     0x564b900caa92 - <hir_ty[93cf116e5217208d]::next_solver::normalize::NormalizationFolder as ra_ap_rustc_type_ir[4c7ad565f4fbbb32]::fold::FallibleTypeFolder<hir_ty[93cf116e5217208d]::next_solver::interner::DbInterner>>::try_fold_ty
  23:     0x564b8fd0c6e9 - hir_ty[93cf116e5217208d]::next_solver::normalize::deeply_normalize_with_skipped_universes_and_ambiguous_coroutine_goals::<hir_ty[93cf116e5217208d]::next_solver::ty::Ty>
  24:     0x564b8fc61ba2 - <hir_ty[93cf116e5217208d]::infer::unify::resolve_completely::Resolver>::handle_term::<hir_ty[93cf116e5217208d]::next_solver::ty::Ty, <hir_ty[93cf116e5217208d]::infer::unify::resolve_completely::Resolver as ra_ap_rustc_type_ir[4c7ad565f4fbbb32]::fold::TypeFolder<hir_ty[93cf116e5217208d]::next_solver::interner::DbInterner>>::fold_ty::{closure#0}>
  25:     0x564b8fc47e6b - <hir_ty[93cf116e5217208d]::infer::unify::resolve_completely::WriteBackCtxt>::resolve_completely::<hir_ty[93cf116e5217208d]::next_solver::ty::StoredTy>
  26:     0x564b8ff7b84e - hir_ty[93cf116e5217208d]::infer::infer_finalize
  27:     0x564b8ff84a6f - hir_ty[93cf116e5217208d]::infer::infer_query_with_inspect
  28:     0x564b8fe744a4 - <salsa[f6baacb4446d11cc]::function::IngredientImpl<<hir_ty[93cf116e5217208d]::infer::InferenceResult>::for_body::_::for_body__Configuration_>>::execute
  29:     0x564b8fc3f377 - <salsa[f6baacb4446d11cc]::attach::Attached>::attach::<dyn hir_ty[93cf116e5217208d]::db::HirDatabase, &hir_ty[93cf116e5217208d]::infer::InferenceResult, <hir_ty[93cf116e5217208d]::infer::InferenceResult>::for_body::for_body_::{closure#0}>
  30:     0x564b8f89ec3c - <hir[7d9bbb24bae6c127]::semantics::SemanticsImpl>::get_unsafe_ops
  31:     0x564b90209313 - ide[6233e951667d8107]::syntax_highlighting::highlight
  32:     0x564b9024303e - ide[6233e951667d8107]::syntax_highlighting::html::highlight_as_html_with_config
  33:     0x564b901a9e4c - <ide[6233e951667d8107]::Analysis>::highlight_as_html
  34:     0x564b90bf8932 - <rust_analyzer[9f47c25af0fec260]::cli::flags::Highlight>::run
  35:     0x564b90e980f4 - rust_analyzer[9193986eb7972329]::main
  36:     0x564b90e2e7d3 - std[7a677e1801b0b374]::sys::backtrace::__rust_begin_short_backtrace::<fn() -> core[8947f86082328bb0]::result::Result<std[7a677e1801b0b374]::process::ExitCode, anyhow[6c3359fcb7bf7f47]::Error>, core[8947f86082328bb0]::result::Result<std[7a677e1801b0b374]::process::ExitCode, anyhow[6c3359fcb7bf7f47]::Error>>
  37:     0x564b90e91142 - std[7a677e1801b0b374]::rt::lang_start::<core[8947f86082328bb0]::result::Result<std[7a677e1801b0b374]::process::ExitCode, anyhow[6c3359fcb7bf7f47]::Error>>::{closure#0}
  38:     0x7f6c3bd6b599 - std[7a677e1801b0b374]::rt::lang_start_internal
  39:     0x564b90eb1238 - main
  40:     0x7f6c35627741 - <unknown>
  41:     0x7f6c35627879 - __libc_start_main
  42:     0x564b8f7a2709 - <unknown>
  43:                0x0 - <unknown>

rust-analyzer 1.99.0-nightly (da80ed0 2026-07-14)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the panic with the recursive-const snippet using the rust-analyzer highlight command. Start at src/tools/rust-analyzer/crates/hir-ty/src/next_solver/interner.rs:1038 and follow the stack through next_solver evaluation and normalization. Done means highlighting the input completes without the “evaluation shouldn't be concurrent yet” panic.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.