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 {
265265 WitnessTable = 1
266266};
267267
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.
268280struct GenericPackShapeDescriptor {
269281 GenericPackKind Kind;
270282
You can’t perform that action at this time.
0 commit comments