anchor.diff:        }
       }
   
  -    var insertionRanges = argumentsToInsert.contiguousSubRanges.toList();
  -    var deletionRanges = argumentsToDelete.contiguousSubRanges.toList();
  +    var insertionRanges = IndexRange.contiguousSubRanges(argumentsToInsert);
  +    var deletionRanges = IndexRange.contiguousSubRanges(argumentsToDelete);
       if (insertionRanges.isNotEmpty) {
         /// Write to the [builder] the new arguments in the [insertionRange]. If
         /// [needsInitialComma] is `true` then we need to write a comma before the
         /// first of the new arguments.
         void writeInsertionRange(DartEditBuilder builder,
  -          _IndexRange insertionRange, bool needsInitialComma) {
  +          IndexRange insertionRange, bool needsInitialComma) {
           var needsComma = needsInitialComma;
           for (var argumentIndex = insertionRange.lower;
               argumentIndex <= insertionRange.upper;
  
positive.code: import 'package:analysis_server/src/services/correction/fix/data_driven/change.dart';
  import 'package:analysis_server/src/services/correction/fix/data_driven/code_template.dart';
  import 'package:analysis_server/src/services/correction/fix/data_driven/parameter_reference.dart';
  import 'package:analyzer/dart/ast/ast.dart';
  import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dart';
  import 'package:analyzer_plugin/utilities/range_factory.dart';
  
negative.code:   /// invocation site.
    _Data(this.argumentList);
  }
  