@@ -215,7 +215,7 @@ Entities
215
215
entity-spec ::= decl-name label-list? type 'v' ACCESSOR // variable
216
216
entity-spec ::= decl-name type 'fp' // generic type parameter
217
217
entity-spec ::= decl-name type 'fo' // enum element (currently not used)
218
- entity-spec ::= identifier 'Qa' // associated type declaration
218
+ entity-spec ::= identifier 'Qa' // associated type declaration
219
219
220
220
ACCESSOR ::= 'm' // materializeForSet
221
221
ACCESSOR ::= 's' // setter
@@ -262,17 +262,17 @@ return value are bridged and the type of pattern outlined.
262
262
263
263
::
264
264
265
- bridge-spec := bridged-kind bridged-param* bridged-return '_'
265
+ bridge-spec :: = bridged-kind bridged-param* bridged-return '_'
266
266
267
- bridged-param := 'n' // not bridged parameter
268
- bridged-param := 'b' // bridged parameter
267
+ bridged-param :: = 'n' // not bridged parameter
268
+ bridged-param :: = 'b' // bridged parameter
269
269
270
- bridged-return := 'n' // not bridged return
271
- bridged-return := 'b' // bridged return
270
+ bridged-return :: = 'n' // not bridged return
271
+ bridged-return :: = 'b' // bridged return
272
272
273
- bridged-kind := 'm' // bridged method
274
- bridged-kind := 'a' // bridged property (by address)
275
- bridged-kind := 'p' // bridged property (by value)
273
+ bridged-kind :: = 'm' // bridged method
274
+ bridged-kind :: = 'a' // bridged property (by address)
275
+ bridged-kind :: = 'p' // bridged property (by value)
276
276
277
277
Declaration Contexts
278
278
~~~~~~~~~~~~~~~~~~~~
@@ -332,7 +332,7 @@ Types
332
332
any-generic-type ::= context decl-name 'a' // typealias type (used in DWARF and USRs)
333
333
334
334
any-generic-type ::= standard-substitutions
335
-
335
+
336
336
standard-substitutions ::= 'S' KNOWN-TYPE-KIND // known nominal type substitution
337
337
standard-substitutions ::= 'S' NATURAL KNOWN-TYPE-KIND // repeated known type substitutions of the same kind
338
338
@@ -417,12 +417,12 @@ Types
417
417
type ::= type 'Xp' // existential metatype without representation
418
418
type ::= type 'Xm' METATYPE-REPR // existential metatype with representation
419
419
type ::= 'Xe' // error or unresolved type
420
-
420
+
421
421
bound-generic-type ::= type 'y' (type* '_')* type* retroactive-conformance* 'G' // one type-list per nesting level of type
422
422
bound-generic-type ::= substitution
423
423
424
424
FUNCTION-KIND ::= 'f' // @thin function type
425
- FUNCTION-KIND ::= 'U' // uncurried function type (currently not used)
425
+ FUNCTION-KIND ::= 'U' // uncurried function type (currently not used)
426
426
FUNCTION-KIND ::= 'K' // @auto_closure function type (noescape)
427
427
FUNCTION-KIND ::= 'B' // objc block function type
428
428
FUNCTION-KIND ::= 'C' // C function pointer type
@@ -431,10 +431,10 @@ Types
431
431
432
432
function-signature ::= params-type params-type throws? // results and parameters
433
433
434
- params-type := type 'z'? 'h'? // tuple in case of multiple parameters or a single parameter with a single tuple type
434
+ params-type :: = type 'z'? 'h'? // tuple in case of multiple parameters or a single parameter with a single tuple type
435
435
// with optional inout convention, shared convention. parameters don't have labels,
436
436
// they are mangled separately as part of the entity.
437
- params-type := empty-list // shortcut for no parameters
437
+ params-type :: = empty-list // shortcut for no parameters
438
438
439
439
throws ::= 'K' // 'throws' annotation on function types
440
440
@@ -474,7 +474,7 @@ Types
474
474
associated-type ::= substitution
475
475
associated-type ::= protocol 'QP' // self type of protocol
476
476
associated-type ::= archetype identifier 'Qa' // associated type
477
-
477
+
478
478
assoc-type-name ::= identifier // associated type name without protocol
479
479
assoc-type-name ::= identifier protocol 'P' //
480
480
@@ -582,15 +582,15 @@ Property behaviors are implemented using private protocol conformances.
582
582
GENERIC-PARAM-INDEX ::= INDEX // depth = 0, idx = N+1
583
583
GENERIC-PARAM-INDEX ::= 'd' INDEX INDEX // depth = M+1, idx = N
584
584
585
- LAYOUT-CONSTRAINT ::= 'N' // NativeRefCountedObject
586
- LAYOUT-CONSTRAINT ::= 'R' // RefCountedObject
587
- LAYOUT-CONSTRAINT ::= 'T' // Trivial
585
+ LAYOUT-CONSTRAINT ::= 'N' // NativeRefCountedObject
586
+ LAYOUT-CONSTRAINT ::= 'R' // RefCountedObject
587
+ LAYOUT-CONSTRAINT ::= 'T' // Trivial
588
588
LAYOUT-CONSTRAINT ::= 'C' // Class
589
- LAYOUT-CONSTRAINT ::= 'D' // NativeClass
590
- LAYOUT-CONSTRAINT ::= 'E' LAYOUT-SIZE-AND-ALIGNMENT // Trivial of exact size
591
- LAYOUT-CONSTRAINT ::= 'e' LAYOUT-SIZE // Trivial of exact size
592
- LAYOUT-CONSTRAINT ::= 'M' LAYOUT-SIZE-AND-ALIGNMENT // Trivial of size at most N bits
593
- LAYOUT-CONSTRAINT ::= 'm' LAYOUT-SIZE // Trivial of size at most N bits
589
+ LAYOUT-CONSTRAINT ::= 'D' // NativeClass
590
+ LAYOUT-CONSTRAINT ::= 'E' LAYOUT-SIZE-AND-ALIGNMENT // Trivial of exact size
591
+ LAYOUT-CONSTRAINT ::= 'e' LAYOUT-SIZE // Trivial of exact size
592
+ LAYOUT-CONSTRAINT ::= 'M' LAYOUT-SIZE-AND-ALIGNMENT // Trivial of size at most N bits
593
+ LAYOUT-CONSTRAINT ::= 'm' LAYOUT-SIZE // Trivial of size at most N bits
594
594
LAYOUT-CONSTRAINT ::= 'U' // Unknown layout
595
595
596
596
LAYOUT-SIZE ::= INDEX // Size only
0 commit comments