Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-expand/src/attrs.rs')
| -rw-r--r-- | crates/hir-expand/src/attrs.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/crates/hir-expand/src/attrs.rs b/crates/hir-expand/src/attrs.rs index c9c793d54f..64b9b49b3e 100644 --- a/crates/hir-expand/src/attrs.rs +++ b/crates/hir-expand/src/attrs.rs @@ -1,7 +1,7 @@ //! A higher level attributes based on TokenTree, with also some shortcuts. use std::{borrow::Cow, fmt, ops}; -use base_db::CrateId; +use base_db::Crate; use cfg::CfgExpr; use either::Either; use intern::{sym, Interned, Symbol}; @@ -119,7 +119,7 @@ impl RawAttrs { /// Processes `cfg_attr`s, returning the resulting semantic `Attrs`. // FIXME: This should return a different type, signaling it was filtered? - pub fn filter(self, db: &dyn ExpandDatabase, krate: CrateId) -> RawAttrs { + pub fn filter(self, db: &dyn ExpandDatabase, krate: Crate) -> RawAttrs { let has_cfg_attrs = self .iter() .any(|attr| attr.path.as_ident().is_some_and(|name| *name == sym::cfg_attr.clone())); @@ -127,7 +127,7 @@ impl RawAttrs { return self; } - let crate_graph = db.crate_graph(); + let cfg_options = krate.cfg_options(db); let new_attrs = self.iter() .flat_map(|attr| -> SmallVec<[_; 1]> { @@ -151,7 +151,6 @@ impl RawAttrs { |(idx, attr)| Attr::from_tt(db, attr, index.with_cfg_attr(idx)), ); - let cfg_options = &crate_graph[krate].cfg_options; let cfg = TopSubtree::from_token_trees(subtree.top_subtree().delimiter, cfg); let cfg = CfgExpr::parse(&cfg); if cfg_options.check(&cfg) == Some(false) { |