Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/attrs.rs')
-rw-r--r--crates/hir/src/attrs.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/crates/hir/src/attrs.rs b/crates/hir/src/attrs.rs
index 27e7985146..bec91032b9 100644
--- a/crates/hir/src/attrs.rs
+++ b/crates/hir/src/attrs.rs
@@ -85,6 +85,19 @@ impl AttrsWithOwner {
self.attrs.contains(AttrFlags::IS_UNSTABLE)
}
+ /// Currently, it could be that `is_unstable() == true` but `unstable_feature == None`
+ /// (due to unstable features not being retrieved for fields etc.).
+ #[inline]
+ pub fn unstable_feature(&self, db: &dyn HirDatabase) -> Option<Symbol> {
+ match self.owner {
+ AttrsOwner::AttrDef(owner) => self.attrs.unstable_feature(db, owner),
+ AttrsOwner::Field(_)
+ | AttrsOwner::LifetimeParam(_)
+ | AttrsOwner::TypeOrConstParam(_)
+ | AttrsOwner::Dummy => None,
+ }
+ }
+
#[inline]
pub fn is_macro_export(&self) -> bool {
self.attrs.contains(AttrFlags::IS_MACRO_EXPORT)