]> git.lizzy.rs Git - rust.git/blobdiff - crates/ra_syntax/src/ast/generated.rs
Add `ModuleItemsOwner` to `Block`
[rust.git] / crates / ra_syntax / src / ast / generated.rs
index dc1f8c82cb7554419477d417df413bdc0615ed50..9dd6bd3eacb9c40bfe015687e9d8d606211e50a9 100644 (file)
@@ -1,4 +1,4 @@
-// Generated file, do not edit by hand, see `crate/ra_tools/src/codegen`
+//! Generated file, do not edit by hand, see `crate/ra_tools/src/codegen`
 
 use crate::{
     ast::{self, AstChildren, AstNode},
@@ -166,11 +166,52 @@ fn syntax(&self) -> &SyntaxNode {
     }
 }
 impl Attr {
-    pub fn value(&self) -> Option<TokenTree> {
+    pub fn path(&self) -> Option<Path> {
+        AstChildren::new(&self.syntax).next()
+    }
+    pub fn input(&self) -> Option<AttrInput> {
         AstChildren::new(&self.syntax).next()
     }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
+pub enum AttrInput {
+    Literal(Literal),
+    TokenTree(TokenTree),
+}
+impl From<Literal> for AttrInput {
+    fn from(node: Literal) -> AttrInput {
+        AttrInput::Literal(node)
+    }
+}
+impl From<TokenTree> for AttrInput {
+    fn from(node: TokenTree) -> AttrInput {
+        AttrInput::TokenTree(node)
+    }
+}
+impl AstNode for AttrInput {
+    fn can_cast(kind: SyntaxKind) -> bool {
+        match kind {
+            LITERAL | TOKEN_TREE => true,
+            _ => false,
+        }
+    }
+    fn cast(syntax: SyntaxNode) -> Option<Self> {
+        let res = match syntax.kind() {
+            LITERAL => AttrInput::Literal(Literal { syntax }),
+            TOKEN_TREE => AttrInput::TokenTree(TokenTree { syntax }),
+            _ => return None,
+        };
+        Some(res)
+    }
+    fn syntax(&self) -> &SyntaxNode {
+        match self {
+            AttrInput::Literal(it) => &it.syntax,
+            AttrInput::TokenTree(it) => &it.syntax,
+        }
+    }
+}
+impl AttrInput {}
+#[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct AwaitExpr {
     pub(crate) syntax: SyntaxNode,
 }
@@ -271,6 +312,7 @@ fn syntax(&self) -> &SyntaxNode {
     }
 }
 impl ast::AttrsOwner for Block {}
+impl ast::ModuleItemOwner for Block {}
 impl Block {
     pub fn statements(&self) -> AstChildren<Stmt> {
         AstChildren::new(&self.syntax)
@@ -1257,6 +1299,7 @@ fn syntax(&self) -> &SyntaxNode {
         }
     }
 }
+impl ast::AttrsOwner for ImplItem {}
 impl ImplItem {}
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct ImplTraitType {
@@ -1814,6 +1857,7 @@ pub fn item_list(&self) -> Option<ItemList> {
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub enum ModuleItem {
     StructDef(StructDef),
+    UnionDef(UnionDef),
     EnumDef(EnumDef),
     FnDef(FnDef),
     TraitDef(TraitDef),
@@ -1830,6 +1874,11 @@ fn from(node: StructDef) -> ModuleItem {
         ModuleItem::StructDef(node)
     }
 }
+impl From<UnionDef> for ModuleItem {
+    fn from(node: UnionDef) -> ModuleItem {
+        ModuleItem::UnionDef(node)
+    }
+}
 impl From<EnumDef> for ModuleItem {
     fn from(node: EnumDef) -> ModuleItem {
         ModuleItem::EnumDef(node)
@@ -1883,14 +1932,15 @@ fn from(node: Module) -> ModuleItem {
 impl AstNode for ModuleItem {
     fn can_cast(kind: SyntaxKind) -> bool {
         match kind {
-            STRUCT_DEF | ENUM_DEF | FN_DEF | TRAIT_DEF | TYPE_ALIAS_DEF | IMPL_BLOCK | USE_ITEM
-            | EXTERN_CRATE_ITEM | CONST_DEF | STATIC_DEF | MODULE => true,
+            STRUCT_DEF | UNION_DEF | ENUM_DEF | FN_DEF | TRAIT_DEF | TYPE_ALIAS_DEF
+            | IMPL_BLOCK | USE_ITEM | EXTERN_CRATE_ITEM | CONST_DEF | STATIC_DEF | MODULE => true,
             _ => false,
         }
     }
     fn cast(syntax: SyntaxNode) -> Option<Self> {
         let res = match syntax.kind() {
             STRUCT_DEF => ModuleItem::StructDef(StructDef { syntax }),
+            UNION_DEF => ModuleItem::UnionDef(UnionDef { syntax }),
             ENUM_DEF => ModuleItem::EnumDef(EnumDef { syntax }),
             FN_DEF => ModuleItem::FnDef(FnDef { syntax }),
             TRAIT_DEF => ModuleItem::TraitDef(TraitDef { syntax }),
@@ -1908,6 +1958,7 @@ fn cast(syntax: SyntaxNode) -> Option<Self> {
     fn syntax(&self) -> &SyntaxNode {
         match self {
             ModuleItem::StructDef(it) => &it.syntax,
+            ModuleItem::UnionDef(it) => &it.syntax,
             ModuleItem::EnumDef(it) => &it.syntax,
             ModuleItem::FnDef(it) => &it.syntax,
             ModuleItem::TraitDef(it) => &it.syntax,
@@ -1921,6 +1972,7 @@ fn syntax(&self) -> &SyntaxNode {
         }
     }
 }
+impl ast::AttrsOwner for ModuleItem {}
 impl ModuleItem {}
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct Name {
@@ -1995,6 +2047,7 @@ impl NeverType {}
 pub enum NominalDef {
     StructDef(StructDef),
     EnumDef(EnumDef),
+    UnionDef(UnionDef),
 }
 impl From<StructDef> for NominalDef {
     fn from(node: StructDef) -> NominalDef {
@@ -2006,10 +2059,15 @@ fn from(node: EnumDef) -> NominalDef {
         NominalDef::EnumDef(node)
     }
 }
+impl From<UnionDef> for NominalDef {
+    fn from(node: UnionDef) -> NominalDef {
+        NominalDef::UnionDef(node)
+    }
+}
 impl AstNode for NominalDef {
     fn can_cast(kind: SyntaxKind) -> bool {
         match kind {
-            STRUCT_DEF | ENUM_DEF => true,
+            STRUCT_DEF | ENUM_DEF | UNION_DEF => true,
             _ => false,
         }
     }
@@ -2017,6 +2075,7 @@ fn cast(syntax: SyntaxNode) -> Option<Self> {
         let res = match syntax.kind() {
             STRUCT_DEF => NominalDef::StructDef(StructDef { syntax }),
             ENUM_DEF => NominalDef::EnumDef(EnumDef { syntax }),
+            UNION_DEF => NominalDef::UnionDef(UnionDef { syntax }),
             _ => return None,
         };
         Some(res)
@@ -2025,6 +2084,7 @@ fn syntax(&self) -> &SyntaxNode {
         match self {
             NominalDef::StructDef(it) => &it.syntax,
             NominalDef::EnumDef(it) => &it.syntax,
+            NominalDef::UnionDef(it) => &it.syntax,
         }
     }
 }
@@ -3582,8 +3642,11 @@ fn syntax(&self) -> &SyntaxNode {
 impl ast::NameOwner for TypeParam {}
 impl ast::AttrsOwner for TypeParam {}
 impl ast::TypeBoundsOwner for TypeParam {}
-impl ast::DefaultTypeParamOwner for TypeParam {}
-impl TypeParam {}
+impl TypeParam {
+    pub fn default_type(&self) -> Option<TypeRef> {
+        AstChildren::new(&self.syntax).next()
+    }
+}
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct TypeParamList {
     pub(crate) syntax: SyntaxNode,
@@ -3743,6 +3806,38 @@ fn syntax(&self) -> &SyntaxNode {
 }
 impl TypeRef {}
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
+pub struct UnionDef {
+    pub(crate) syntax: SyntaxNode,
+}
+impl AstNode for UnionDef {
+    fn can_cast(kind: SyntaxKind) -> bool {
+        match kind {
+            UNION_DEF => true,
+            _ => false,
+        }
+    }
+    fn cast(syntax: SyntaxNode) -> Option<Self> {
+        if Self::can_cast(syntax.kind()) {
+            Some(Self { syntax })
+        } else {
+            None
+        }
+    }
+    fn syntax(&self) -> &SyntaxNode {
+        &self.syntax
+    }
+}
+impl ast::VisibilityOwner for UnionDef {}
+impl ast::NameOwner for UnionDef {}
+impl ast::TypeParamsOwner for UnionDef {}
+impl ast::AttrsOwner for UnionDef {}
+impl ast::DocCommentsOwner for UnionDef {}
+impl UnionDef {
+    pub fn record_field_def_list(&self) -> Option<RecordFieldDefList> {
+        AstChildren::new(&self.syntax).next()
+    }
+}
+#[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct UseItem {
     pub(crate) syntax: SyntaxNode,
 }