anchor.diff:    @override
     File renameSync(String newPath) {
       File newFile = _file.renameSync(newPath);
  -    if (provider.hasOverlay(path)) {
  -      provider.setOverlay(
  -        newPath,
  -        content: provider._getOverlayContent(path)!,
  -        modificationStamp: provider._getOverlayModificationStamp(path)!,
  -      );
  -      provider.removeOverlay(path);
  -    }
  +    provider._moveOverlay(path, newPath);
       return _OverlayFile(provider, newFile);
     }
   
  
positive.code:     }
      _file.writeAsStringSync(content);
    }
  }
  
  /// A folder from an [OverlayResourceProvider].
  
negative.code:   /// modified in the base resource provider.
    void setOverlay(String path,
        {required String content, required int modificationStamp}) {
      _overlays[path] = _OverlayFileData(content, modificationStamp);
    }
  
    /// Copy any overlay for the file at the [oldPath] to be an overlay for the
    /// file with the [newPath].
    void _copyOverlay(String oldPath, String newPath) {
      var data = _overlays[oldPath];
      if (data != null) {
        _overlays[newPath] = data;
      }
    }
  
    /// Return the content of the overlay of the file at the given [path], or
    /// `null` if there is no overlay for the specified file.
    String? _getOverlayContent(String path) {
      return _overlays[path]?.content;
    }
  
    /// Return the modification stamp of the overlay of the file at the given
    /// [path], or `null` if there is no overlay for the specified file.
    int? _getOverlayModificationStamp(String path) {
      return _overlays[path]?.modificationStamp;
    }
  
    /// Return `true` if there is an overlay associated with at least one file
    /// contained inside the folder with the given [folderPath].
    bool _hasOverlayIn(String folderPath) => _overlays.keys
        .any((filePath) => pathContext.isWithin(folderPath, filePath));
  
    /// Move any overlay for the file at the [oldPath] to be an overlay for the
    /// file with the [newPath].
    void _moveOverlay(String oldPath, String newPath) {
      var data = _overlays.remove(oldPath);
      if (data != null) {
        _overlays[newPath] = data;
      }
    }
  
    /// Return the paths of all of the overlaid files that are children of the
    /// given [folder], either directly or indirectly.
    Iterable<String> _overlaysInFolder(String folderPath) => _overlays.keys
        .where((filePath) => pathContext.isWithin(folderPath, filePath));
  }
  
  