Skip to content

cannot create a tracked struct disambiguator outside of a tracked function #20019

@Veykril

Description

@Veykril
trait Database {}
struct DbForkOnClone<'db>(Box<dyn 'db + Database>);

impl Clone for DbForkOnClone< {
    fn clone(&self) -> Self {
        DbForkOnClone(self.0.fork_db())
    }
}

thread 'Worker2' panicked at C:\Users\runneradmin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\salsa-0.22.0\src\zalsa_local.rs:274:46:
cannot create a tracked struct disambiguator outside of a tracked function
stack backtrace:
   0: std::panicking::begin_panic_handler
             at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\panicking.rs:697
   1: core::panicking::panic_fmt
             at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\core\src\panicking.rs:75
   2: core::panicking::panic_display
             at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\core\src\panicking.rs:261
   3: core::option::expect_failed
             at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\core\src\option.rs:2024
   4: salsa::tracked_struct::IngredientImpl<C>::new_struct
   5: <hir_def::BlockLoc as hir_expand::Intern>::intern
   6: <syntax::ast::generated::nodes::NameRef as hir_expand::name::AsName>::as_name
   7: hir_def::expr_store::lower::ExprCollector::maybe_collect_expr
   8: hir_def::expr_store::lower::ExprCollector::lower_generic_args
   9: hir_def::expr_store::lower::path::lower_path
  10: hir::source_analyzer::SourceAnalyzer::resolve_path
  11: ide_db::defs::NameRefClass::classify
  12: ide::syntax_highlighting::highlight::name_like
  13: ide::syntax_highlighting::highlight
  14: ide::Analysis::highlight
  15: rust_analyzer::handlers::request::handle_semantic_tokens_full_delta
  16: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut
  17: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions