lib/graphql/language/parser.y in graphql-1.8.0.pre7 vs lib/graphql/language/parser.y in graphql-1.8.0.pre8

- old
+ new

@@ -150,14 +150,10 @@ | FRAGMENT | ON | operation_type | schema_keyword - name_list: - name { return [make_node(:TypeName, name: val[0])] } - | name_list name { val[0] << make_node(:TypeName, name: val[1]) } - enum_value_definition: enum_name directives_list_opt { return make_node(:EnumValueDefinition, name: val[0], directives: val[1], description: get_description(val[0])) } enum_value_definitions: enum_value_definition { return [val[0]] } @@ -304,10 +300,20 @@ return make_node(:ObjectTypeDefinition, name: val[1], interfaces: val[2], directives: val[3], fields: val[5], description: get_description(val[0]), position_source: val[0]) } implements_opt: /* none */ { return [] } - | IMPLEMENTS name_list { return val[1] } + | IMPLEMENTS AMP interfaces_list { return val[2] } + | IMPLEMENTS interfaces_list { return val[1] } + | IMPLEMENTS legacy_interfaces_list { return val[1] } + + interfaces_list: + name { return [make_node(:TypeName, name: val[0])] } + | interfaces_list AMP name { val[0] << make_node(:TypeName, name: val[2]) } + + legacy_interfaces_list: + name { return [make_node(:TypeName, name: val[0])] } + | legacy_interfaces_list name { val[0] << make_node(:TypeName, name: val[1]) } input_value_definition: name COLON type default_value_opt directives_list_opt { return make_node(:InputValueDefinition, name: val[0], type: val[2], default_value: val[3], directives: val[4], description: get_description(val[0])) }