From 8cd23a4fb8c6a1012ba3e40dd3329a5abaed06b7 Mon Sep 17 00:00:00 2001 From: uHOOCCOOHu Date: Fri, 27 Sep 2019 00:16:55 +0800 Subject: Store crate info in `MacroDefId` --- crates/ra_hir/src/ids.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'crates/ra_hir/src/ids.rs') diff --git a/crates/ra_hir/src/ids.rs b/crates/ra_hir/src/ids.rs index 9ea4e695d..246377100 100644 --- a/crates/ra_hir/src/ids.rs +++ b/crates/ra_hir/src/ids.rs @@ -10,7 +10,7 @@ use ra_syntax::{ast, AstNode, Parse, SyntaxNode}; use crate::{ db::{AstDatabase, DefDatabase, InternDatabase}, - AstId, FileAstId, Module, Source, + AstId, Crate, FileAstId, Module, Source, }; /// hir makes heavy use of ids: integer (u32) handlers to various things. You @@ -121,10 +121,13 @@ impl From for HirFileId { } #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] -pub struct MacroDefId(pub(crate) AstId); +pub struct MacroDefId { + pub(crate) ast_id: AstId, + pub(crate) krate: Crate, +} pub(crate) fn macro_def_query(db: &impl AstDatabase, id: MacroDefId) -> Option> { - let macro_call = id.0.to_node(db); + let macro_call = id.ast_id.to_node(db); let arg = macro_call.token_tree()?; let (tt, _) = mbe::ast_to_token_tree(&arg).or_else(|| { log::warn!("fail on macro_def to token tree: {:#?}", arg); -- cgit v1.2.3