Skip to content

Commit 3fd922a

Browse files
committed
[libSyntax] Accept non-standard accessor kinds
1 parent 8c21ec6 commit 3fd922a

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

test/Syntax/Outputs/round_trip_parse_gen.swift.withkinds

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,12 @@ class C <MemberDeclBlock>{<MemberDeclListItem><FunctionDecl>
107107
private </DeclModifier>deinit <CodeBlock>{}</CodeBlock></DeinitializerDecl></MemberDeclListItem><MemberDeclListItem><SubscriptDecl><DeclModifier>
108108

109109
internal </DeclModifier>subscript<ParameterClause>(<FunctionParameter>x: <SimpleTypeIdentifier>Int</SimpleTypeIdentifier></FunctionParameter>) </ParameterClause><ReturnClause>-> <SimpleTypeIdentifier>Int </SimpleTypeIdentifier></ReturnClause><AccessorBlock>{ <AccessorDecl>get <CodeBlock>{} </CodeBlock></AccessorDecl><AccessorDecl>set <CodeBlock>{} </CodeBlock></AccessorDecl>}</AccessorBlock></SubscriptDecl></MemberDeclListItem><MemberDeclListItem><SubscriptDecl>
110-
subscript<ParameterClause>() </ParameterClause><ReturnClause>-> <SimpleTypeIdentifier>Int </SimpleTypeIdentifier></ReturnClause><AccessorBlock>{ <ReturnStmt>return <IntegerLiteralExpr>1 </IntegerLiteralExpr></ReturnStmt>}</AccessorBlock></SubscriptDecl></MemberDeclListItem>
110+
subscript<ParameterClause>() </ParameterClause><ReturnClause>-> <SimpleTypeIdentifier>Int </SimpleTypeIdentifier></ReturnClause><AccessorBlock>{ <ReturnStmt>return <IntegerLiteralExpr>1 </IntegerLiteralExpr></ReturnStmt>}</AccessorBlock></SubscriptDecl></MemberDeclListItem><MemberDeclListItem><VariableDecl>
111+
112+
var <PatternBinding><IdentifierPattern>x</IdentifierPattern><TypeAnnotation>: <SimpleTypeIdentifier>Int </SimpleTypeIdentifier></TypeAnnotation><AccessorBlock>{<FunctionCallExpr><IdentifierExpr>
113+
address </IdentifierExpr><ClosureExpr>{ <FunctionCallExpr><IdentifierExpr>fatalError</IdentifierExpr>() </FunctionCallExpr>}</ClosureExpr></FunctionCallExpr><FunctionCallExpr><IdentifierExpr>
114+
unsafeMutableAddress </IdentifierExpr><ClosureExpr>{ <FunctionCallExpr><IdentifierExpr>fatalError</IdentifierExpr>() </FunctionCallExpr>}</ClosureExpr></FunctionCallExpr>
115+
}</AccessorBlock></PatternBinding></VariableDecl></MemberDeclListItem>
111116
}</MemberDeclBlock></ClassDecl><ProtocolDecl>
112117

113118
protocol PP <MemberDeclBlock>{<MemberDeclListItem><AssociatedtypeDecl>

test/Syntax/round_trip_parse_gen.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,11 @@ class C {
108108

109109
internal subscript(x: Int) -> Int { get {} set {} }
110110
subscript() -> Int { return 1 }
111+
112+
var x: Int {
113+
address { fatalError() }
114+
unsafeMutableAddress { fatalError() }
115+
}
111116
}
112117

113118
protocol PP {

utils/gyb_syntax_support/DeclNodes.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,12 @@
476476
Child('Modifier', kind='DeclModifier', is_optional=True),
477477
Child('AccessorKind', kind='Token',
478478
text_choices=[
479-
'get', 'set', 'didSet', 'willSet',
479+
'get', 'set', 'didSet', 'willSet', 'unsafeAddress',
480+
'addressWithOwner', 'addressWithNativeOwner',
481+
'addressWithPinnedNativeOwner', 'unsafeMutableAddress',
482+
'mutableAddressWithOwner',
483+
'mutableAddressWithNativeOwner',
484+
'mutableAddressWithPinnedNativeOwner',
480485
]),
481486
Child('Parameter', kind='AccessorParameter', is_optional=True),
482487
Child('Body', kind='CodeBlock', is_optional=True),

0 commit comments

Comments
 (0)