diff --git a/sky/packages/sky/lib/src/widgets/framework.dart b/sky/packages/sky/lib/src/widgets/framework.dart index 1720c7848d6e66d2efaa97076cc50a97a2d87b76..8468d31238aa8a1a008dc4e8cd61eaeb738eec2d 100644 --- a/sky/packages/sky/lib/src/widgets/framework.dart +++ b/sky/packages/sky/lib/src/widgets/framework.dart @@ -563,8 +563,7 @@ abstract class TagNode extends Widget { void _sync(Widget old, dynamic slot) { assert(!_debugChildTaken); - Widget oldChild = (old as TagNode)?.child; - child = syncChild(child, oldChild, slot); + child = syncChild(child, (old as TagNode)?.child, slot); if (child != null) { assert(child.parent == this); assert(child.renderObject != null); @@ -945,6 +944,12 @@ abstract class StatefulComponent extends Component { fn(); _scheduleBuild(); } + + String toStringName([String prefix = '', String startPrefix = '']) { + if (_disqualifiedFromEverAppearingAgain) + return '[[DISQUALIFIED]] ${super.toStringName()}'; + return super.toStringName(); + } } Set _dirtyComponents = new Set(); @@ -1228,8 +1233,8 @@ abstract class RenderObjectWrapper extends Widget { } else { syncChild(null, oldChild, null); } - oldChildrenBottom -= 1; - } + } // else the node was probably moved elsewhere, ignore it + oldChildrenBottom -= 1; } }