anchor.diff:        childrenTop -= 1;
         Widget oldChild = oldChildren[childrenTop];
         assert(oldChild.mounted);
  -      assert(oldChild.isFromOldGeneration);
         Widget newChild = newChildren[childrenTop];
  -      assert(newChild.isFromOldGeneration);
         assert(Widget._canSync(oldChild, newChild));
         newChild = syncChild(newChild, oldChild, nextSibling);
         assert(newChild.mounted);
  
positive.code:         }
        }
  
        assert(oldNode == null || (oldNode.mounted == false && oldNode.parent == null));
        newNode.setParent(this);
        newNode._sync(oldNode, slot);
        assert(newNode.renderObject is RenderObject);
  
negative.code:         Key key = newChild.key;
          if (key != null) {
            oldChild = oldKeyedChildren[newChild.key];
            if (oldChild != null) {
              if ((Widget._canSync(oldChild, newChild)) &&
                  (oldChild == newChild || oldChild.isFromOldGeneration)) {
                // we found a match!
                // remove it from oldKeyedChildren so we don't unsync it later
                oldKeyedChildren.remove(key);
              } else {
                // Either it wasn't a match, or it's already been synced elsewhere in the tree.
                // In either case, let's pretend we didn't see it for now.
                oldChild = null;
              }
            }
          }
        }
        assert(oldChild == null || Widget._canSync(oldChild, newChild));
        assert(oldChild == newChild || !newChild.mounted);
        newChild = syncChild(newChild, oldChild, nextSibling);
        assert(newChild.mounted);
        assert(oldChild == newChild || oldChild == null || !oldChild.mounted);
  