From 903a2e98f93df87af19375e951c56e7c285989d4 Mon Sep 17 00:00:00 2001 From: Brandon Date: Wed, 24 Mar 2021 00:47:55 -0700 Subject: Clean up implementation --- crates/hir_expand/src/lib.rs | 7 ------- crates/ide/src/annotations.rs | 15 ++++++++------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/crates/hir_expand/src/lib.rs b/crates/hir_expand/src/lib.rs index d7391ebad..b8045fda9 100644 --- a/crates/hir_expand/src/lib.rs +++ b/crates/hir_expand/src/lib.rs @@ -207,13 +207,6 @@ impl HirFileId { } false } - - pub fn is_macro_file(&self) -> bool { - match self.0 { - HirFileIdRepr::MacroFile(_) => true, - HirFileIdRepr::FileId(_) => false, - } - } } #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] diff --git a/crates/ide/src/annotations.rs b/crates/ide/src/annotations.rs index 9e78ed6a0..64bc926f1 100644 --- a/crates/ide/src/annotations.rs +++ b/crates/ide/src/annotations.rs @@ -80,19 +80,19 @@ pub(crate) fn annotations( Either::Left(def) => { let node = match def { hir::ModuleDef::Const(konst) => { - konst.source(db).and_then(|node| range_and_position_of(&node)) + konst.source(db).and_then(|node| range_and_position_of(&node, file_id)) } hir::ModuleDef::Trait(trait_) => { - trait_.source(db).and_then(|node| range_and_position_of(&node)) + trait_.source(db).and_then(|node| range_and_position_of(&node, file_id)) } hir::ModuleDef::Adt(hir::Adt::Struct(strukt)) => { - strukt.source(db).and_then(|node| range_and_position_of(&node)) + strukt.source(db).and_then(|node| range_and_position_of(&node, file_id)) } hir::ModuleDef::Adt(hir::Adt::Enum(enum_)) => { - enum_.source(db).and_then(|node| range_and_position_of(&node)) + enum_.source(db).and_then(|node| range_and_position_of(&node, file_id)) } hir::ModuleDef::Adt(hir::Adt::Union(union)) => { - union.source(db).and_then(|node| range_and_position_of(&node)) + union.source(db).and_then(|node| range_and_position_of(&node, file_id)) } _ => None, }; @@ -122,9 +122,10 @@ pub(crate) fn annotations( fn range_and_position_of( node: &InFile, + file_id: FileId, ) -> Option<(TextSize, TextRange)> { - if node.file_id.is_macro_file() { - // Macro generated files should not contain annotations. + if node.file_id != file_id.into() { + // Node is outside the file we are adding annotations to (e.g. macros). None } else { Some(( -- cgit v1.2.3