debugLastPaintedStickyKeys property
Keys that Pass B ACTUALLY painted this frame.
Separate from debugStickyHeaders because being in the sticky set is
not the same as being painted: Pass B independently skips a header with
no mounted child, or one pushed past paintExtent.
This is the only honest way to test sticky painting from a widget test.
tester.getRect cannot do it: applyPaintTransform and
childMainAxisPosition both return the pinned band for ANY member of
the sticky set, so a header that Pass B skipped still reports
top == pinnedY and a test asserting on geometry alone would pass
while the row is invisible.
LIFETIME CONTRACT: mirrors debugLastPhantomGhostPaint. Cleared at the
top of every paint() under an assert, so release builds skip the
churn entirely, and written only for headers that reach paintChild.
Never read by production code.
Implementation
@visibleForTesting
final Set<TKey> debugLastPaintedStickyKeys = <TKey>{};