diff options
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 5f38ac4cc0f..5c64cc440ce 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -2655,6 +2655,20 @@ impl ItemKind { ItemKind::Mac(..) | ItemKind::MacroDef(..) | ItemKind::Impl { .. } => "item", } } + + pub fn generics(&self) -> Option<&Generics> { + match self { + Self::Fn(_, generics, _) + | Self::TyAlias(_, generics) + | Self::Enum(_, generics) + | Self::Struct(_, generics) + | Self::Union(_, generics) + | Self::Trait(_, _, generics, ..) + | Self::TraitAlias(generics, _) + | Self::Impl { generics, .. } => Some(generics), + _ => None, + } + } } pub type ForeignItem = Item<ForeignItemKind>; |
