Skip to content

Commit d2095a8

Browse files
authored
Merge pull request #21926 from nkcsgexi/dot-self-optional-base
SyntaxNodes: DotSelfExpr should have optional base expression.
2 parents 9fa91e9 + 9c42e97 commit d2095a8

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

test/Syntax/Outputs/round_trip_parse_gen.swift.withkinds

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ struct S <TypeInheritanceClause>: <InheritedType><SimpleTypeIdentifier>Q</Simple
532532
@_implements(<ImplementsAttributeArguments><SimpleTypeIdentifier>P</SimpleTypeIdentifier>, x</ImplementsAttributeArguments>)</Attribute>
533533
var <PatternBinding><IdentifierPattern>y</IdentifierPattern><TypeAnnotation>: <SimpleTypeIdentifier>String</SimpleTypeIdentifier></TypeAnnotation></PatternBinding></VariableDecl></MemberDeclListItem><MemberDeclListItem><FunctionDecl><Attribute>
534534
@_implements(<ImplementsAttributeArguments><SimpleTypeIdentifier>P</SimpleTypeIdentifier>, g<DeclNameArguments>()</DeclNameArguments></ImplementsAttributeArguments>)</Attribute>
535-
func h<FunctionSignature><ParameterClause>() </ParameterClause></FunctionSignature><CodeBlock>{}</CodeBlock></FunctionDecl></MemberDeclListItem><MemberDeclListItem><VariableDecl><Attribute>
535+
func h<FunctionSignature><ParameterClause>() </ParameterClause></FunctionSignature><CodeBlock>{ <SequenceExpr><DiscardAssignmentExpr>_ </DiscardAssignmentExpr><AssignmentExpr>= </AssignmentExpr><KeyPathExpr>\<DotSelfExpr>.self </DotSelfExpr></KeyPathExpr></SequenceExpr>}</CodeBlock></FunctionDecl></MemberDeclListItem><MemberDeclListItem><VariableDecl><Attribute>
536536

537537
@available(<AvailabilityArgument>*, </AvailabilityArgument><AvailabilityArgument><AvailabilityLabeledArgument>deprecated: <VersionTuple>1.2</VersionTuple></AvailabilityLabeledArgument>, </AvailabilityArgument><AvailabilityArgument><AvailabilityLabeledArgument>message: "ABC"</AvailabilityLabeledArgument></AvailabilityArgument>)</Attribute><DeclModifier>
538538
fileprivate(set) </DeclModifier>var <PatternBinding><IdentifierPattern>x</IdentifierPattern><TypeAnnotation>: <SimpleTypeIdentifier>String</SimpleTypeIdentifier></TypeAnnotation></PatternBinding></VariableDecl></MemberDeclListItem>

test/Syntax/round_trip_parse_gen.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ struct S : Q, Equatable {
532532
@_implements(P, x)
533533
var y: String
534534
@_implements(P, g())
535-
func h() {}
535+
func h() { _ = \.self }
536536

537537
@available(*, deprecated: 1.2, message: "ABC")
538538
fileprivate(set) var x: String

utils/gyb_syntax_support/ExprNodes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,10 +309,10 @@
309309
is_optional=True),
310310
]),
311311

312-
# dot-self-expr -> expr '.' 'self'
312+
# dot-self-expr -> expr? '.' 'self'
313313
Node('DotSelfExpr', kind='Expr',
314314
children=[
315-
Child('Expression', kind='Expr'),
315+
Child('Expression', kind='Expr', is_optional=True),
316316
Child('Dot', kind='Token',
317317
token_choices=[
318318
'PeriodToken', 'PrefixPeriodToken'

0 commit comments

Comments
 (0)