anchor.diff:        cellExtent: cellExtent,
         mainAxisSpacing: mainAxisSpacing,
         crossAxisSpacing: crossAxisSpacing,
  +      reverseCrossAxis: axisDirectionIsReversed(constraints.crossAxisDirection),
       );
     }
   
  
positive.code: 
    final List<double> _mainAxisOffsets;
  
    final double _spanCrossAxisStride;
  
    @override
    double computeMaxScrollOffset(int childCount) {
  
negative.code:           staggeredTile.crossAxisCellCount);
  
        var scrollOffset = block.minOffset;
  
        var blockIndex = block.index;
        if (reverseCrossAxis) {
          blockIndex = crossAxisCount - 1 - blockIndex;
        }
        var crossAxisOffset = blockIndex * _cellStride;
  
        var geometry = new SliverGridGeometry(
            scrollOffset: scrollOffset,
            crossAxisOffset: crossAxisOffset,
            mainAxisExtent: staggeredTile.mainAxisExtent,
            crossAxisExtent: _cellStride * staggeredTile.crossAxisCellCount -
                crossAxisSpacing);
        tileGeometry =
            new _StaggeredTileGeometry(staggeredTile, geometry, block.index);
        _staggeredTileGeometries[index] = tileGeometry;
  