anchor.diff:        }
   
         if (!visible &&
  -          scrollOffset >= geometry.scrollOffset &&
  +          targetEndScrollOffset >= geometry.scrollOffset &&
             scrollOffset <= geometry.trailingScrollOffset) {
           visible = true;
           leadingScrollOffset = geometry.scrollOffset;
  
positive.code:       hasVisualOverflow: trailingScrollOffset > targetEndScrollOffset ||
            constraints.scrollOffset > 0.0,
      );
  
      // We may have started the layout while scrolled to the end, which would not
      // expose a new child.
  
negative.code:       }
  
        if (visible && hasTrailingScrollOffset) {
          child =
              addAndLayoutChild(index, geometry.getBoxConstraints(constraints));
        }
  
        if (child != null) {
          SliverVariableSizeBoxAdaptorParentData childParentData =
              child.parentData;
          childParentData.layoutOffset = geometry.scrollOffset;
          childParentData.crossAxisOffset = geometry.crossAxisOffset;
          assert(childParentData.index == index);
        }
  
        if (!visible && indices.contains(index)) {
          garbageIndices.add(index);
        }
  
        final double endOffset =
            geometry.trailingScrollOffset + configuration.mainAxisSpacing;
        for (var i = 0; i < geometry.crossAxisCellCount; i++) {
          mainAxisOffsets[i + geometry.blockIndex] = endOffset;
        }
  
        trailingScrollOffset = mainAxisOffsets.reduce(math.max);
  