debugAssertConsistent method
void
debugAssertConsistent()
Debug-only: asserts the bulk member mirror matches
_group.members ∪ pendingRemoval exactly across live nids.
Implementation
void debugAssertConsistent() {
assert(() {
final g = _group;
// Build expected from the group.
final expected = <int>{};
if (g != null) {
for (final key in g.members) {
final nid = _nids[key];
if (nid != null) expected.add(nid);
}
for (final key in g.pendingRemoval) {
final nid = _nids[key];
if (nid != null) expected.add(nid);
}
}
// Walk the mirror — every set bit must be in `expected`, and every
// expected nid must have its bit set.
for (int nid = 0; nid < _isMemberByNid.length; nid++) {
final isSet = _isMemberByNid[nid] != 0;
final shouldBeSet = expected.contains(nid);
if (isSet != shouldBeSet) {
final key = _nids.keyOf(nid);
throw StateError(
"BulkAnimator._isMemberByNid[$nid] (key=$key) = $isSet, "
"expected $shouldBeSet",
);
}
}
return true;
}());
}