diff options
author | Aleksey Kladov <[email protected]> | 2019-10-29 13:12:54 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-10-29 13:12:54 +0000 |
commit | 99b6ecfab061396613c5f459fae43ea17b5675b8 (patch) | |
tree | e77386081251b4150049810ad5e6f2a3b538afb9 | |
parent | 3260639608112738089d134c47c1d575515c9cb7 (diff) |
switch expand to dyn Trait
-rw-r--r-- | crates/ra_hir_expand/src/db.rs | 12 | ||||
-rw-r--r-- | crates/ra_hir_expand/src/lib.rs | 6 |
2 files changed, 9 insertions, 9 deletions
diff --git a/crates/ra_hir_expand/src/db.rs b/crates/ra_hir_expand/src/db.rs index dc4944c05..a4ee9a529 100644 --- a/crates/ra_hir_expand/src/db.rs +++ b/crates/ra_hir_expand/src/db.rs | |||
@@ -28,13 +28,13 @@ pub trait AstDatabase: SourceDatabase { | |||
28 | fn macro_expand(&self, macro_call: MacroCallId) -> Result<Arc<tt::Subtree>, String>; | 28 | fn macro_expand(&self, macro_call: MacroCallId) -> Result<Arc<tt::Subtree>, String>; |
29 | } | 29 | } |
30 | 30 | ||
31 | pub(crate) fn ast_id_map(db: &impl AstDatabase, file_id: HirFileId) -> Arc<AstIdMap> { | 31 | pub(crate) fn ast_id_map(db: &dyn AstDatabase, file_id: HirFileId) -> Arc<AstIdMap> { |
32 | let map = | 32 | let map = |
33 | db.parse_or_expand(file_id).map_or_else(AstIdMap::default, |it| AstIdMap::from_source(&it)); | 33 | db.parse_or_expand(file_id).map_or_else(AstIdMap::default, |it| AstIdMap::from_source(&it)); |
34 | Arc::new(map) | 34 | Arc::new(map) |
35 | } | 35 | } |
36 | 36 | ||
37 | pub(crate) fn macro_def(db: &impl AstDatabase, id: MacroDefId) -> Option<Arc<MacroRules>> { | 37 | pub(crate) fn macro_def(db: &dyn AstDatabase, id: MacroDefId) -> Option<Arc<MacroRules>> { |
38 | let macro_call = id.ast_id.to_node(db); | 38 | let macro_call = id.ast_id.to_node(db); |
39 | let arg = macro_call.token_tree()?; | 39 | let arg = macro_call.token_tree()?; |
40 | let (tt, _) = mbe::ast_to_token_tree(&arg).or_else(|| { | 40 | let (tt, _) = mbe::ast_to_token_tree(&arg).or_else(|| { |
@@ -48,7 +48,7 @@ pub(crate) fn macro_def(db: &impl AstDatabase, id: MacroDefId) -> Option<Arc<Mac | |||
48 | Some(Arc::new(rules)) | 48 | Some(Arc::new(rules)) |
49 | } | 49 | } |
50 | 50 | ||
51 | pub(crate) fn macro_arg(db: &impl AstDatabase, id: MacroCallId) -> Option<Arc<tt::Subtree>> { | 51 | pub(crate) fn macro_arg(db: &dyn AstDatabase, id: MacroCallId) -> Option<Arc<tt::Subtree>> { |
52 | let loc = db.lookup_intern_macro(id); | 52 | let loc = db.lookup_intern_macro(id); |
53 | let macro_call = loc.ast_id.to_node(db); | 53 | let macro_call = loc.ast_id.to_node(db); |
54 | let arg = macro_call.token_tree()?; | 54 | let arg = macro_call.token_tree()?; |
@@ -57,7 +57,7 @@ pub(crate) fn macro_arg(db: &impl AstDatabase, id: MacroCallId) -> Option<Arc<tt | |||
57 | } | 57 | } |
58 | 58 | ||
59 | pub(crate) fn macro_expand( | 59 | pub(crate) fn macro_expand( |
60 | db: &impl AstDatabase, | 60 | db: &dyn AstDatabase, |
61 | id: MacroCallId, | 61 | id: MacroCallId, |
62 | ) -> Result<Arc<tt::Subtree>, String> { | 62 | ) -> Result<Arc<tt::Subtree>, String> { |
63 | let loc = db.lookup_intern_macro(id); | 63 | let loc = db.lookup_intern_macro(id); |
@@ -73,7 +73,7 @@ pub(crate) fn macro_expand( | |||
73 | Ok(Arc::new(tt)) | 73 | Ok(Arc::new(tt)) |
74 | } | 74 | } |
75 | 75 | ||
76 | pub(crate) fn parse_or_expand(db: &impl AstDatabase, file_id: HirFileId) -> Option<SyntaxNode> { | 76 | pub(crate) fn parse_or_expand(db: &dyn AstDatabase, file_id: HirFileId) -> Option<SyntaxNode> { |
77 | match file_id.0 { | 77 | match file_id.0 { |
78 | HirFileIdRepr::FileId(file_id) => Some(db.parse(file_id).tree().syntax().clone()), | 78 | HirFileIdRepr::FileId(file_id) => Some(db.parse(file_id).tree().syntax().clone()), |
79 | HirFileIdRepr::MacroFile(macro_file) => { | 79 | HirFileIdRepr::MacroFile(macro_file) => { |
@@ -83,7 +83,7 @@ pub(crate) fn parse_or_expand(db: &impl AstDatabase, file_id: HirFileId) -> Opti | |||
83 | } | 83 | } |
84 | 84 | ||
85 | pub(crate) fn parse_macro( | 85 | pub(crate) fn parse_macro( |
86 | db: &impl AstDatabase, | 86 | db: &dyn AstDatabase, |
87 | macro_file: MacroFile, | 87 | macro_file: MacroFile, |
88 | ) -> Option<Parse<SyntaxNode>> { | 88 | ) -> Option<Parse<SyntaxNode>> { |
89 | let _p = profile("parse_macro_query"); | 89 | let _p = profile("parse_macro_query"); |
diff --git a/crates/ra_hir_expand/src/lib.rs b/crates/ra_hir_expand/src/lib.rs index 9100bd15c..749227465 100644 --- a/crates/ra_hir_expand/src/lib.rs +++ b/crates/ra_hir_expand/src/lib.rs | |||
@@ -63,7 +63,7 @@ impl From<MacroFile> for HirFileId { | |||
63 | impl HirFileId { | 63 | impl HirFileId { |
64 | /// For macro-expansion files, returns the file original source file the | 64 | /// For macro-expansion files, returns the file original source file the |
65 | /// expansion originated from. | 65 | /// expansion originated from. |
66 | pub fn original_file(self, db: &impl AstDatabase) -> FileId { | 66 | pub fn original_file(self, db: &dyn AstDatabase) -> FileId { |
67 | match self.0 { | 67 | match self.0 { |
68 | HirFileIdRepr::FileId(file_id) => file_id, | 68 | HirFileIdRepr::FileId(file_id) => file_id, |
69 | HirFileIdRepr::MacroFile(macro_file) => { | 69 | HirFileIdRepr::MacroFile(macro_file) => { |
@@ -74,7 +74,7 @@ impl HirFileId { | |||
74 | } | 74 | } |
75 | 75 | ||
76 | /// Get the crate which the macro lives in, if it is a macro file. | 76 | /// Get the crate which the macro lives in, if it is a macro file. |
77 | pub fn macro_crate(self, db: &impl AstDatabase) -> Option<CrateId> { | 77 | pub fn macro_crate(self, db: &dyn AstDatabase) -> Option<CrateId> { |
78 | match self.0 { | 78 | match self.0 { |
79 | HirFileIdRepr::FileId(_) => None, | 79 | HirFileIdRepr::FileId(_) => None, |
80 | HirFileIdRepr::MacroFile(macro_file) => { | 80 | HirFileIdRepr::MacroFile(macro_file) => { |
@@ -160,7 +160,7 @@ impl<N: AstNode> AstId<N> { | |||
160 | self.file_id | 160 | self.file_id |
161 | } | 161 | } |
162 | 162 | ||
163 | pub fn to_node(&self, db: &impl AstDatabase) -> N { | 163 | pub fn to_node(&self, db: &dyn AstDatabase) -> N { |
164 | let root = db.parse_or_expand(self.file_id).unwrap(); | 164 | let root = db.parse_or_expand(self.file_id).unwrap(); |
165 | db.ast_id_map(self.file_id).get(self.file_ast_id).to_node(&root) | 165 | db.ast_id_map(self.file_id).get(self.file_ast_id).to_node(&root) |
166 | } | 166 | } |