aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/body.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_def/src/body.rs')
-rw-r--r--crates/ra_hir_def/src/body.rs15
1 files changed, 6 insertions, 9 deletions
diff --git a/crates/ra_hir_def/src/body.rs b/crates/ra_hir_def/src/body.rs
index 75bba31c2..bff17fd62 100644
--- a/crates/ra_hir_def/src/body.rs
+++ b/crates/ra_hir_def/src/body.rs
@@ -33,7 +33,7 @@ impl Expander {
33 Expander { crate_def_map, current_file_id, hygiene, module } 33 Expander { crate_def_map, current_file_id, hygiene, module }
34 } 34 }
35 35
36 fn expand( 36 fn enter_expand(
37 &mut self, 37 &mut self,
38 db: &impl DefDatabase2, 38 db: &impl DefDatabase2,
39 macro_call: ast::MacroCall, 39 macro_call: ast::MacroCall,
@@ -50,7 +50,11 @@ impl Expander {
50 if let Some(node) = db.parse_or_expand(file_id) { 50 if let Some(node) = db.parse_or_expand(file_id) {
51 if let Some(expr) = ast::Expr::cast(node) { 51 if let Some(expr) = ast::Expr::cast(node) {
52 log::debug!("macro expansion {:#?}", expr.syntax()); 52 log::debug!("macro expansion {:#?}", expr.syntax());
53 let mark = self.enter(db, file_id); 53
54 let mark = Mark { file_id: self.current_file_id };
55 self.hygiene = Hygiene::new(db, file_id);
56 self.current_file_id = file_id;
57
54 return Some((mark, expr)); 58 return Some((mark, expr));
55 } 59 }
56 } 60 }
@@ -62,13 +66,6 @@ impl Expander {
62 None 66 None
63 } 67 }
64 68
65 fn enter(&mut self, db: &impl DefDatabase2, file_id: HirFileId) -> Mark {
66 let mark = Mark { file_id: self.current_file_id };
67 self.hygiene = Hygiene::new(db, file_id);
68 self.current_file_id = file_id;
69 mark
70 }
71
72 fn exit(&mut self, db: &impl DefDatabase2, mark: Mark) { 69 fn exit(&mut self, db: &impl DefDatabase2, mark: Mark) {
73 self.hygiene = Hygiene::new(db, mark.file_id); 70 self.hygiene = Hygiene::new(db, mark.file_id);
74 self.current_file_id = mark.file_id; 71 self.current_file_id = mark.file_id;