From 519d870c11a9200bdcc33bb788fb7d8a85e5f1e5 Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Thu, 26 Nov 2020 17:29:09 +0100 Subject: Don't store `SyntaxNodePtr` in `CrateDefMap` It is volatile across reparses and makes incrementality worse. --- crates/hir_def/src/nameres.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'crates/hir_def/src/nameres.rs') diff --git a/crates/hir_def/src/nameres.rs b/crates/hir_def/src/nameres.rs index eb41d324e..202a7dcb6 100644 --- a/crates/hir_def/src/nameres.rs +++ b/crates/hir_def/src/nameres.rs @@ -287,7 +287,7 @@ mod diagnostics { use hir_expand::diagnostics::DiagnosticSink; use hir_expand::hygiene::Hygiene; use hir_expand::InFile; - use syntax::{ast, AstPtr, SyntaxNodePtr}; + use syntax::{ast, AstPtr}; use crate::path::ModPath; use crate::{db::DefDatabase, diagnostics::*, nameres::LocalModuleId, AstId}; @@ -300,7 +300,7 @@ mod diagnostics { UnresolvedImport { ast: AstId, index: usize }, - UnconfiguredCode { ast: InFile, cfg: CfgExpr, opts: CfgOptions }, + UnconfiguredCode { ast: AstId, cfg: CfgExpr, opts: CfgOptions }, } #[derive(Debug, PartialEq, Eq)] @@ -341,7 +341,7 @@ mod diagnostics { pub(super) fn unconfigured_code( container: LocalModuleId, - ast: InFile, + ast: AstId, cfg: CfgExpr, opts: CfgOptions, ) -> Self { @@ -399,9 +399,10 @@ mod diagnostics { } DiagnosticKind::UnconfiguredCode { ast, cfg, opts } => { + let item = ast.to_node(db.upcast()); sink.push(InactiveCode { file: ast.file_id, - node: ast.value.clone(), + node: AstPtr::new(&item).into(), cfg: cfg.clone(), opts: opts.clone(), }); -- cgit v1.2.3