anchor.diff:    /// If [above] is non-null, the entry is inserted just above [above].
     /// Otherwise, the entry is inserted on top.
     void insert(OverlayEntry entry, { OverlayEntry above }) {
  -    assert(entry._state == null);
  -    assert(above == null || (above._state == this && _entries.contains(above)));
  -    entry._state = this;
  +    assert(entry._overlay == null);
  +    assert(above == null || (above._overlay == this && _entries.contains(above)));
  +    entry._overlay = this;
       setState(() {
         int index = above == null ? _entries.length : _entries.indexOf(above) + 1;
         _entries.insert(index, entry);
  
positive.code:   /// If [above] is non-null, the entries are inserted just above [above].
    /// Otherwise, the entries are inserted on top.
    void insertAll(Iterable<OverlayEntry> entries, { OverlayEntry above }) {
      assert(above == null || (above._state == this && _entries.contains(above)));
      for (OverlayEntry entry in entries) {
        assert(entry._state == null);
        entry._state = this;
      }
      setState(() {
        int index = above == null ? _entries.length : _entries.indexOf(above) + 1;
  
negative.code: 
      for (int i = _entries.length - 1; i >= 0; --i) {
        OverlayEntry entry = _entries[i];
        backwardsChildren.add(new _OverlayEntry(entry));
        if (entry.opaque)
          break;
      }
  