Skip to content

Commit 8256b1f

Browse files
committed
libSyntax: function declaration syntax should accept operators as name.
1 parent 7901583 commit 8256b1f

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

test/Syntax/Outputs/round_trip_parse_gen.swift.withkinds

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,5 +109,7 @@ struct C <MemberDeclBlock>{<FunctionDecl><Attribute>
109109
@objc</Attribute><Attribute>
110110
@available(*, unavailable)</Attribute><DeclModifier>
111111
private </DeclModifier><DeclModifier>static </DeclModifier><DeclModifier>override </DeclModifier>func foo<GenericParameterClause><<GenericParameter>a, </GenericParameter><GenericParameter>b, </GenericParameter><GenericParameter>c</GenericParameter>></GenericParameterClause><FunctionSignature>(<FunctionParameter>a b: <SimpleTypeIdentifier>Int</SimpleTypeIdentifier>, </FunctionParameter><FunctionParameter>c: <SimpleTypeIdentifier>Int</SimpleTypeIdentifier></FunctionParameter>) throws -> <ArrayType>[<SimpleTypeIdentifier>Int</SimpleTypeIdentifier>] </ArrayType></FunctionSignature><GenericWhereClause>where <SameTypeRequirement><SimpleTypeIdentifier>a</SimpleTypeIdentifier>==<SimpleTypeIdentifier>p1</SimpleTypeIdentifier>, </SameTypeRequirement><ConformanceRequirement><SimpleTypeIdentifier>b</SimpleTypeIdentifier>:<SimpleTypeIdentifier>p2 </SimpleTypeIdentifier></ConformanceRequirement></GenericWhereClause><CodeBlock>{ <IdentifierExpr>ddd </IdentifierExpr>}</CodeBlock></FunctionDecl><FunctionDecl>
112-
func rootView<FunctionSignature>() -> <SimpleTypeIdentifier>Label </SimpleTypeIdentifier></FunctionSignature><CodeBlock>{}</CodeBlock></FunctionDecl>
112+
func rootView<FunctionSignature>() -> <SimpleTypeIdentifier>Label </SimpleTypeIdentifier></FunctionSignature><CodeBlock>{}</CodeBlock></FunctionDecl><FunctionDecl><DeclModifier>
113+
static </DeclModifier>func ==<FunctionSignature>() -> <SimpleTypeIdentifier>bool </SimpleTypeIdentifier></FunctionSignature><CodeBlock>{}</CodeBlock></FunctionDecl><FunctionDecl><DeclModifier>
114+
static </DeclModifier>func !=<GenericParameterClause><<GenericParameter>a, </GenericParameter><GenericParameter>b, </GenericParameter><GenericParameter>c</GenericParameter>></GenericParameterClause><FunctionSignature>() -> <SimpleTypeIdentifier>bool </SimpleTypeIdentifier></FunctionSignature><CodeBlock>{}</CodeBlock></FunctionDecl>
113115
}</MemberDeclBlock></StructDecl>

test/Syntax/round_trip_parse_gen.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,6 @@ struct C {
110110
@available(*, unavailable)
111111
private static override func foo<a, b, c>(a b: Int, c: Int) throws -> [Int] where a==p1, b:p2 { ddd }
112112
func rootView() -> Label {}
113+
static func ==() -> bool {}
114+
static func !=<a, b, c>() -> bool {}
113115
}

utils/gyb_syntax_support/DeclNodes.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,15 @@
207207
Child('Modifiers', kind='ModifierList',
208208
is_optional=True),
209209
Child('FuncKeyword', kind='FuncToken'),
210-
Child('Identifier', kind='IdentifierToken'),
210+
Child('Identifier', kind='Token',
211+
token_choices=[
212+
'IdentifierToken',
213+
'OperatorToken',
214+
'UnspacedBinaryOperatorToken',
215+
'SpacedBinaryOperatorToken',
216+
'PrefixOperatorToken',
217+
'PostfixOperatorToken',
218+
]),
211219
Child('GenericParameterClause', kind='GenericParameterClause',
212220
is_optional=True),
213221
Child('Signature', kind='FunctionSignature'),

0 commit comments

Comments
 (0)