anchor.diff:    void test_sourceChange_emptyEdit() async {
       var builder = ChangeBuilderImpl();
       var path = '/test.dart';
  -    await builder.addFileEdit(path, (FileEditBuilder builder) {});
  +    await builder.addGenericFileEdit(path, (builder) {});
       var sourceChange = builder.sourceChange;
       expect(sourceChange, isNotNull);
       expect(sourceChange.edits, isEmpty);
  
positive.code:     var offset = 23;
      var length = 7;
      var builder = ChangeBuilderImpl();
      await builder.addFileEdit(path, (FileEditBuilder builder) {
        builder.addDeletion(SourceRange(offset, length));
      });
      var edits = builder.sourceChange.edits[0].edits;
  
negative.code:   Future<void> test_addSuggestion_zeroLength() async {
      var groupName = 'a';
      var builder = ChangeBuilderImpl();
      await builder.addGenericFileEdit(path, (builder) {
        builder.addInsertion(10, (builder) {
          builder.addLinkedEdit(groupName, (builder) {
            builder.addSuggestion(LinkedEditSuggestionKind.TYPE, 'A');
          });
        });
  