File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -265,6 +265,18 @@ enum class GenericPackKind: uint16_t {
265
265
WitnessTable = 1
266
266
};
267
267
268
+ // / The GenericPackShapeHeader is followed by an array of these descriptors,
269
+ // / whose length is given by the header's NumPacks field.
270
+ // /
271
+ // / The invariant is that all pack descriptors with GenericPackKind::Metadata
272
+ // / must precede those with GenericPackKind::WitnessTable, and for each kind,
273
+ // / the pack descriptors are ordered by their Index.
274
+ // /
275
+ // / This allows us to iterate over the generic arguments array in parallel
276
+ // / with the array of pack shape descriptors. We know we have a metadata
277
+ // / or witness table when we reach the generic argument whose index is
278
+ // / stored in the next descriptor; we increment the descriptor pointer in
279
+ // / this case.
268
280
struct GenericPackShapeDescriptor {
269
281
GenericPackKind Kind;
270
282
You can’t perform that action at this time.
0 commit comments