performRebuild method
Cause the widget to update itself.
Called by rebuild after the appropriate checks have been made.
The base implementation only clears the dirty flag.
Implementation
@override
void performRebuild() {
super.performRebuild();
// Deliberately queues NOTHING. Two causes mark this element dirty:
//
// - [didChangeDependencies], which has already added every mounted
// key to [_dirtyKeys] and called `markNeedsLayout` by the time
// the build phase reaches here (`markNeedsBuild` only enqueues;
// framework.dart:5386-5390). Nothing is left to do.
// - `Element.reassemble`, which calls `markNeedsBuild()`
// (framework.dart:3754-3759) and reaches this element through
// [reassemble]'s `super` call; [reassemble] has queued every
// mounted key and marked layout by then, whichever instance the
// ancestor hands down (a fresh `SliverTree` additionally runs
// [update], whose queue is the same set). Nothing is left to do.
//
// The parent-rebuild path does not reach this method at all:
// `RenderObjectElement.update` calls the private `_performRebuild()`
// (framework.dart:6813), not this override, so [update] owns its own
// queueing.
//
// RULE: a future `markNeedsBuild()` on this element queues its own
// keys at its own call site. Landing here queues nothing, and the
// next layout finds every mounted row clean, because [createChild]
// early-returns for an existing, non-dirty key.
}