anchor.diff:      }
   
       final List<double> groupsX = _calculateGroupsX(size, data.barGroups, data.alignment);
  -    _groupBarsPosition = _calculateGroupAndBarsPosition(size, groupsX, data.barGroups);
  +    final List<_GroupBarsPosition> _groupBarsPosition =
  +    _calculateGroupAndBarsPosition(size, groupsX, data.barGroups);
   
       _drawBars(canvas, size, _groupBarsPosition);
       drawAxisTitles(canvas, size);
  
positive.code: /// Paints [BarChartData] in the canvas, it can be used in a [CustomPainter]
  class BarChartPainter extends AxisChartPainter<BarChartData> with TouchHandler<BarTouchResponse> {
    Paint _barPaint, _bgTouchTooltipPaint;
  
    List<_GroupBarsPosition> _groupBarsPosition;
  
    /// Paints [data] into canvas, it is the animating [BarChartData],
    /// [targetData] is the animation's target and remains the same
  
negative.code:   /// then makes a [BarTouchResponse] from the elements that has been touched.
    @override
    BarTouchResponse handleTouch(FlTouchInput touchInput, Size size) {
  
      final List<double> _groupsX = _calculateGroupsX(size, data.barGroups, data.alignment);
      final List<_GroupBarsPosition> _groupBarsPosition =
      _calculateGroupAndBarsPosition(size, _groupsX, data.barGroups);
  
      final BarTouchedSpot touchedSpot =
          _getNearestTouchedSpot(size, touchInput.getOffset(), _groupBarsPosition);
      return BarTouchResponse(touchedSpot, touchInput);
  