Skip to content

Commit 4d060cb

Browse files
authored
Merge pull request #25837 from rintaro/5.1-syntax-identpattern-self-rdar52285009
[5.1][Syntax] Accept 'self' as IdentifierPatternSyntax
2 parents 97b2542 + c3ecb9b commit 4d060cb

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-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
@@ -368,7 +368,9 @@ func statementTests<FunctionSignature><ParameterClause>() </ParameterClause></Fu
368368
} </CodeBlock>else <CodeBlock>{
369369
}</CodeBlock></IfStmt></IfStmt><GuardStmt>
370370

371-
guard <ConditionElement><OptionalBindingCondition>let <IdentifierPattern>a </IdentifierPattern><InitializerClause>= <IdentifierExpr>b </IdentifierExpr></InitializerClause></OptionalBindingCondition></ConditionElement>else <CodeBlock>{}</CodeBlock></GuardStmt><ForInStmt>
371+
guard <ConditionElement><OptionalBindingCondition>let <IdentifierPattern>a </IdentifierPattern><InitializerClause>= <IdentifierExpr>b </IdentifierExpr></InitializerClause></OptionalBindingCondition></ConditionElement>else <CodeBlock>{}</CodeBlock></GuardStmt><GuardStmt>
372+
373+
guard <ConditionElement><OptionalBindingCondition>let <IdentifierPattern>self </IdentifierPattern><InitializerClause>= <IdentifierExpr>self </IdentifierExpr></InitializerClause></OptionalBindingCondition></ConditionElement>else <CodeBlock>{}</CodeBlock></GuardStmt><ForInStmt>
372374

373375
for <ValueBindingPattern>var <IdentifierPattern>i </IdentifierPattern></ValueBindingPattern>in <IdentifierExpr>foo </IdentifierExpr><WhereClause>where <MemberAccessExpr><IdentifierExpr>i</IdentifierExpr>.foo </MemberAccessExpr></WhereClause><CodeBlock>{}</CodeBlock></ForInStmt><ForInStmt>
374376
for case <IsTypePattern>is <SimpleTypeIdentifier>Int </SimpleTypeIdentifier></IsTypePattern>in <IdentifierExpr>foo </IdentifierExpr><CodeBlock>{}</CodeBlock></ForInStmt><SwitchStmt>

test/Syntax/round_trip_parse_gen.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,8 @@ func statementTests() {
370370

371371
guard let a = b else {}
372372

373+
guard let self = self else {}
374+
373375
for var i in foo where i.foo {}
374376
for case is Int in foo {}
375377

utils/gyb_syntax_support/PatternNodes.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@
3838
# identifier-pattern -> identifier
3939
Node('IdentifierPattern', kind='Pattern',
4040
children=[
41-
Child('Identifier', kind='IdentifierToken')
41+
Child('Identifier', kind='Token',
42+
token_choices=[
43+
'SelfToken',
44+
'IdentifierToken',
45+
]),
4246
]),
4347

4448
# as-pattern -> pattern 'as' type

0 commit comments

Comments
 (0)