Finalize structs grammar

This commit is contained in:
Aleksey Kladov 2020-07-30 17:24:07 +02:00
parent b043947301
commit 8ddbf06e39
2 changed files with 3 additions and 5 deletions

View file

@ -422,7 +422,6 @@ pub struct TupleField {
pub(crate) syntax: SyntaxNode,
}
impl ast::AttrsOwner for TupleField {}
impl ast::NameOwner for TupleField {}
impl ast::VisibilityOwner for TupleField {}
impl TupleField {
pub fn type_ref(&self) -> Option<TypeRef> { support::child(&self.syntax) }

View file

@ -83,22 +83,21 @@ StructDef =
)
RecordFieldList =
'{' fields:RecordField* '}'
'{' fields:(RecordField (',' RecordField)* ','?)? '}'
RecordField =
Attr* Visibility? Name ':' ascribed_type:TypeRef
TupleFieldList =
'(' fields:TupleField* ')'
'(' fields:(TupleField (',' TupleField)* ','?)? ')'
TupleField =
Attr* Visibility? Name TypeRef
Attr* Visibility? TypeRef
FieldList =
RecordFieldList
| TupleFieldList
UnionDef =
Attr* Visibility? 'union' Name GenericParamList? WhereClause?
RecordFieldList