Skip to content

Commit 5af2c39

Browse files
DennorKMatysiewicz
authored andcommitted
Equals sign in union is optional according to spec
1 parent ba29b76 commit 5af2c39

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

language/parser/parser.go

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1191,7 +1191,7 @@ func parseInterfaceTypeDefinition(parser *Parser) (ast.Node, error) {
11911191
}
11921192

11931193
/**
1194-
* UnionTypeDefinition : Description? union Name Directives? = UnionMembers
1194+
* UnionTypeDefinition : Description? union Name Directives? UnionMembers?
11951195
*/
11961196
func parseUnionTypeDefinition(parser *Parser) (ast.Node, error) {
11971197
start := parser.Token.Start
@@ -1211,13 +1211,16 @@ func parseUnionTypeDefinition(parser *Parser) (ast.Node, error) {
12111211
if err != nil {
12121212
return nil, err
12131213
}
1214-
_, err = expect(parser, lexer.EQUALS)
1215-
if err != nil {
1216-
return nil, err
1217-
}
1218-
types, err := parseUnionMembers(parser)
1219-
if err != nil {
1220-
return nil, err
1214+
var types []*ast.Named
1215+
if parser.Token.Kind == lexer.EQUALS {
1216+
err = advance(parser)
1217+
if err != nil {
1218+
return nil, err
1219+
}
1220+
types, err = parseUnionMembers(parser)
1221+
if err != nil {
1222+
return nil, err
1223+
}
12211224
}
12221225
return ast.NewUnionDefinition(&ast.UnionDefinition{
12231226
Name: name,
@@ -1229,9 +1232,11 @@ func parseUnionTypeDefinition(parser *Parser) (ast.Node, error) {
12291232
}
12301233

12311234
/**
1232-
* UnionMembers :
1235+
* UnionMembers : = UnionMemberTypes
1236+
*
1237+
* UnionMemberTypes
12331238
* - NamedType
1234-
* - UnionMembers | NamedType
1239+
* - UnionMemberTypes | NamedType
12351240
*/
12361241
func parseUnionMembers(parser *Parser) ([]*ast.Named, error) {
12371242
members := []*ast.Named{}

0 commit comments

Comments
 (0)