aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_def')
-rw-r--r--crates/ra_hir_def/src/body.rs5
-rw-r--r--crates/ra_hir_def/src/body/lower.rs11
2 files changed, 8 insertions, 8 deletions
diff --git a/crates/ra_hir_def/src/body.rs b/crates/ra_hir_def/src/body.rs
index e09996c6f..ff0758da0 100644
--- a/crates/ra_hir_def/src/body.rs
+++ b/crates/ra_hir_def/src/body.rs
@@ -14,6 +14,7 @@ use ra_syntax::{ast, AstNode, AstPtr};
14use rustc_hash::FxHashMap; 14use rustc_hash::FxHashMap;
15 15
16use crate::{ 16use crate::{
17 attr::Attrs,
17 db::DefDatabase, 18 db::DefDatabase,
18 expr::{Expr, ExprId, Pat, PatId}, 19 expr::{Expr, ExprId, Pat, PatId},
19 item_scope::BuiltinShadowMode, 20 item_scope::BuiltinShadowMode,
@@ -102,6 +103,10 @@ impl Expander {
102 InFile { file_id: self.current_file_id, value } 103 InFile { file_id: self.current_file_id, value }
103 } 104 }
104 105
106 pub(crate) fn parse_attrs(&self, owner: &dyn ast::AttrsOwner) -> Attrs {
107 Attrs::new(owner, &self.hygiene)
108 }
109
105 fn parse_path(&mut self, path: ast::Path) -> Option<Path> { 110 fn parse_path(&mut self, path: ast::Path) -> Option<Path> {
106 Path::from_src(path, &self.hygiene) 111 Path::from_src(path, &self.hygiene)
107 } 112 }
diff --git a/crates/ra_hir_def/src/body/lower.rs b/crates/ra_hir_def/src/body/lower.rs
index 9d6ee095e..06df88a34 100644
--- a/crates/ra_hir_def/src/body/lower.rs
+++ b/crates/ra_hir_def/src/body/lower.rs
@@ -2,9 +2,7 @@
2//! representation. 2//! representation.
3 3
4use either::Either; 4use either::Either;
5
6use hir_expand::{ 5use hir_expand::{
7 hygiene::Hygiene,
8 name::{name, AsName, Name}, 6 name::{name, AsName, Name},
9 MacroDefId, MacroDefKind, 7 MacroDefId, MacroDefKind,
10}; 8};
@@ -18,10 +16,8 @@ use ra_syntax::{
18}; 16};
19use test_utils::tested_by; 17use test_utils::tested_by;
20 18
21use super::{ExprSource, PatSource};
22use crate::{ 19use crate::{
23 adt::StructKind, 20 adt::StructKind,
24 attr::Attrs,
25 body::{Body, BodySourceMap, Expander, PatPtr, SyntheticSyntax}, 21 body::{Body, BodySourceMap, Expander, PatPtr, SyntheticSyntax},
26 builtin_type::{BuiltinFloat, BuiltinInt}, 22 builtin_type::{BuiltinFloat, BuiltinInt},
27 db::DefDatabase, 23 db::DefDatabase,
@@ -37,6 +33,8 @@ use crate::{
37 ModuleDefId, StaticLoc, StructLoc, TraitLoc, TypeAliasLoc, UnionLoc, 33 ModuleDefId, StaticLoc, StructLoc, TraitLoc, TypeAliasLoc, UnionLoc,
38}; 34};
39 35
36use super::{ExprSource, PatSource};
37
40pub(super) fn lower( 38pub(super) fn lower(
41 db: &dyn DefDatabase, 39 db: &dyn DefDatabase,
42 def: DefWithBodyId, 40 def: DefWithBodyId,
@@ -309,10 +307,7 @@ impl ExprCollector<'_> {
309 .inspect(|field| field_ptrs.push(AstPtr::new(field))) 307 .inspect(|field| field_ptrs.push(AstPtr::new(field)))
310 .filter_map(|field| { 308 .filter_map(|field| {
311 let module_id = ContainerId::DefWithBodyId(self.def).module(self.db); 309 let module_id = ContainerId::DefWithBodyId(self.def).module(self.db);
312 let attrs = Attrs::new( 310 let attrs = self.expander.parse_attrs(&field);
313 &field,
314 &Hygiene::new(self.db.upcast(), self.expander.current_file_id),
315 );
316 311
317 if !attrs.is_cfg_enabled(&crate_graph[module_id.krate].cfg_options) { 312 if !attrs.is_cfg_enabled(&crate_graph[module_id.krate].cfg_options) {
318 return None; 313 return None;