debugLastPaintedStickyKeys property

  1. @visibleForTesting
Set<TKey> debugLastPaintedStickyKeys
final

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>{};