@@ -61,86 +61,67 @@ public let ATTRIBUTE_NODES: [Node] = [
6161 kind: . nodeChoices( choices: [
6262 Child (
6363 name: " argumentList " ,
64+ // Regular function-like attribute arguments.
6465 kind: . node( kind: . labeledExprList)
6566 ) ,
66- Child (
67- name: " token " ,
68- kind: . node( kind: . token)
69- ) ,
70- Child (
71- name: " string " ,
72- kind: . node( kind: . stringLiteralExpr)
73- ) ,
7467 Child (
7568 name: " availability " ,
69+ // Special arguments for platform versions.
7670 kind: . node( kind: . availabilityArgumentList)
7771 ) ,
7872 Child (
7973 name: " specializeArguments " ,
74+ // Special arguments for keyword decl name e.g. 'subscript(_:)', and availability arguments.
8075 kind: . node( kind: . specializeAttributeArgumentList)
8176 ) ,
8277 Child (
8378 name: " objCName " ,
79+ // Special arguments for Objective-C names. e.g. 'methodNameWithArg1:Arg2:'
8480 kind: . node( kind: . objCSelectorPieceList)
8581 ) ,
8682 Child (
8783 name: " implementsArguments " ,
84+ // Special arguments for keyword decl name e.g. 'subscript(_:)'.
8885 kind: . node( kind: . implementsAttributeArguments)
8986 ) ,
9087 Child (
9188 name: " differentiableArguments " ,
89+ // Special arguments for 'where' clause.
9290 kind: . node( kind: . differentiableAttributeArguments)
9391 ) ,
9492 Child (
9593 name: " derivativeRegistrationArguments " ,
94+ // Special arguments for 'where' clause.
9695 kind: . node( kind: . derivativeAttributeArguments)
9796 ) ,
9897 Child (
9998 name: " backDeployedArguments " ,
99+ // Special arguments for platform versions.
100100 kind: . node( kind: . backDeployedAttributeArguments)
101101 ) ,
102- Child (
103- name: " conventionArguments " ,
104- kind: . node( kind: . conventionAttributeArguments)
105- ) ,
106- Child (
107- name: " conventionWitnessMethodArguments " ,
108- kind: . node( kind: . conventionWitnessMethodAttributeArguments)
109- ) ,
110- Child (
111- name: " opaqueReturnTypeOfAttributeArguments " ,
112- kind: . node( kind: . opaqueReturnTypeOfAttributeArguments)
113- ) ,
114- Child (
115- name: " exposeAttributeArguments " ,
116- kind: . node( kind: . exposeAttributeArguments)
117- ) ,
118102 Child (
119103 name: " originallyDefinedInArguments " ,
104+ // Special arguments for platform versions.
120105 kind: . node( kind: . originallyDefinedInAttributeArguments)
121106 ) ,
122- Child (
123- name: " underscorePrivateAttributeArguments " ,
124- kind: . node( kind: . underscorePrivateAttributeArguments)
125- ) ,
126107 Child (
127108 name: " dynamicReplacementArguments " ,
109+ // Special arguments for keyword decl name e.g. 'subscript(_:)'.
128110 kind: . node( kind: . dynamicReplacementAttributeArguments)
129111 ) ,
130- Child (
131- name: " unavailableFromAsyncArguments " ,
132- kind: . node( kind: . unavailableFromAsyncAttributeArguments)
133- ) ,
134112 Child (
135113 name: " effectsArguments " ,
114+ // Special arguments for arbitrary token list, processed in SIL.
136115 kind: . node( kind: . effectsAttributeArgumentList)
137116 ) ,
138117 Child (
139118 name: " documentationArguments " ,
119+ // Special arguments for access-level keywords. E.g. 'private'.
140120 kind: . node( kind: . documentationAttributeArgumentList)
141121 ) ,
142122 Child (
143123 name: " abiArguments " ,
124+ // Special arguments for declaration syntax. e.g. @abi(func abiName() -> Int)
144125 kind: . node( kind: . abiAttributeArguments) ,
145126 experimentalFeature: . abiAttribute
146127 ) ,
@@ -296,65 +277,6 @@ public let ATTRIBUTE_NODES: [Node] = [
296277 ]
297278 ) ,
298279
299- Node (
300- kind: . conventionAttributeArguments,
301- base: . syntax,
302- nameForDiagnostics: " @convention(...) arguments " ,
303- documentation: " The arguments for the '@convention(...)'. " ,
304- children: [
305- Child (
306- name: " conventionLabel " ,
307- kind: . token( choices: [ . token( . identifier) ] ) ,
308- documentation: " The convention label. "
309- ) ,
310- Child (
311- name: " comma " ,
312- kind: . token( choices: [ . token( . comma) ] ) ,
313- isOptional: true
314- ) ,
315- Child (
316- name: " cTypeLabel " ,
317- kind: . token( choices: [ . keyword( . cType) ] ) ,
318- isOptional: true
319- ) ,
320- Child (
321- name: " colon " ,
322- kind: . token( choices: [ . token( . colon) ] ) ,
323- isOptional: true
324- ) ,
325- Child (
326- name: " cTypeString " ,
327- kind: . node( kind: . stringLiteralExpr) ,
328- isOptional: true
329- ) ,
330- ]
331- ) ,
332-
333- Node (
334- kind: . conventionWitnessMethodAttributeArguments,
335- base: . syntax,
336- nameForDiagnostics: " @convention(...) arguments for witness methods " ,
337- documentation: " The arguments for the '@convention(witness_method: ...)'. " ,
338- children: [
339- Child (
340- name: " witnessMethodLabel " ,
341- kind: . token( choices: [ . keyword( . witness_method) ] ) ,
342- documentation: #"The `witnessMethod` label."#
343- ) ,
344- Child (
345- name: " colon " ,
346- kind: . token( choices: [ . token( . colon) ] ) ,
347- documentation: #"The colon separating the `witnessMethod` label and the original protocol name."#
348-
349- ) ,
350- Child (
351- name: " protocolName " ,
352- kind: . token( choices: [ . token( . identifier) ] ) ,
353- documentation: " The original protocol name. "
354- ) ,
355- ]
356- ) ,
357-
358280 Node (
359281 kind: . derivativeAttributeArguments,
360282 base: . syntax,
@@ -653,29 +575,6 @@ public let ATTRIBUTE_NODES: [Node] = [
653575 elementChoices: [ . token]
654576 ) ,
655577
656- Node (
657- kind: . exposeAttributeArguments,
658- base: . syntax,
659- nameForDiagnostics: " @_expose arguments " ,
660- documentation: " The arguments for the '@_expose' attribute " ,
661- children: [
662- Child (
663- name: " language " ,
664- kind: . node( kind: . token)
665- ) ,
666- Child (
667- name: " comma " ,
668- kind: . token( choices: [ . token( . comma) ] ) ,
669- isOptional: true
670- ) ,
671- Child (
672- name: " cxxName " ,
673- kind: . node( kind: . stringLiteralExpr) ,
674- isOptional: true
675- ) ,
676- ]
677- ) ,
678-
679578 Node (
680579 kind: . implementsAttributeArguments,
681580 base: . syntax,
@@ -780,29 +679,6 @@ public let ATTRIBUTE_NODES: [Node] = [
780679 elementChoices: [ . objCSelectorPiece]
781680 ) ,
782681
783- Node (
784- kind: . opaqueReturnTypeOfAttributeArguments,
785- base: . syntax,
786- nameForDiagnostics: " opaque return type arguments " ,
787- documentation: " The arguments for the '@_opaqueReturnTypeOf()'. " ,
788- children: [
789- Child (
790- name: " mangledName " ,
791- kind: . node( kind: . stringLiteralExpr) ,
792- documentation: " The mangled name of a declaration. "
793- ) ,
794- Child (
795- name: " comma " ,
796- kind: . token( choices: [ . token( . comma) ] )
797- ) ,
798- Child (
799- name: " ordinal " ,
800- kind: . token( choices: [ . token( . integerLiteral) ] ) ,
801- documentation: " The ordinal corresponding to the 'some' keyword that introduced this opaque type. "
802- ) ,
803- ]
804- ) ,
805-
806682 Node (
807683 kind: . originallyDefinedInAttributeArguments,
808684 base: . syntax,
@@ -884,47 +760,4 @@ public let ATTRIBUTE_NODES: [Node] = [
884760 ]
885761 ]
886762 ) ,
887-
888- Node (
889- kind: . unavailableFromAsyncAttributeArguments,
890- base: . syntax,
891- nameForDiagnostics: " @_unavailableFromAsync argument " ,
892- documentation: " The arguments for the '@_unavailableFromAsync' attribute " ,
893- children: [
894- Child (
895- name: " messageLabel " ,
896- kind: . token( choices: [ . keyword( . message) ] )
897- ) ,
898- Child (
899- name: " colon " ,
900- kind: . token( choices: [ . token( . colon) ] )
901- ) ,
902- Child (
903- name: " message " ,
904- kind: . node( kind: . stringLiteralExpr)
905- ) ,
906- ]
907- ) ,
908-
909- Node (
910- kind: . underscorePrivateAttributeArguments,
911- base: . syntax,
912- nameForDiagnostics: " @_private argument " ,
913- documentation: " The arguments for the '@_private' attribute " ,
914- children: [
915- Child (
916- name: " sourceFileLabel " ,
917- kind: . token( choices: [ . keyword( . sourceFile) ] )
918- ) ,
919- Child (
920- name: " colon " ,
921- kind: . token( choices: [ . token( . colon) ] )
922- ) ,
923- Child (
924- name: " filename " ,
925- kind: . node( kind: . stringLiteralExpr)
926- ) ,
927- ]
928- ) ,
929-
930763]
0 commit comments