anchor.diff:      });
     }
   
  +  _MemoryFile _renameFileSync(_MemoryFile file, String newPath) {
  +    String path = file.path;
  +    if (newPath == path) {
  +      return file;
  +    }
  +    _MemoryResource existingNewResource = _pathToResource[newPath];
  +    if (existingNewResource is _MemoryFolder) {
  +      throw new FileSystemException(
  +          path, 'Could not be renamed: $newPath is a folder.');
  +    }
  +    _MemoryFile newFile = _newFile(newPath);
  +    _pathToResource.remove(path);
  +    _pathToBytes[newPath] = _pathToBytes.remove(path);
  +    _pathToTimestamp[newPath] = _pathToTimestamp.remove(path);
  +    if (existingNewResource != null) {
  +      _notifyWatchers(newPath, ChangeType.REMOVE);
  +    }
  +    _notifyWatchers(path, ChangeType.REMOVE);
  +    _notifyWatchers(newPath, ChangeType.ADD);
  +    return newFile;
  +  }
  +
     void _setFileContent(_MemoryFile file, List<int> bytes) {
       String path = file.path;
       _pathToResource[path] = file;
  
positive.code:     }
    }
  
    _MemoryFile renameFileSync(_MemoryFile file, String newPath) {
      String path = file.path;
      if (newPath == path) {
        return file;
      }
      _MemoryResource existingNewResource = _pathToResource[newPath];
      if (existingNewResource is _MemoryFolder) {
        throw new FileSystemException(
            path, 'Could not be renamed: $newPath is a folder.');
      }
      _MemoryFile newFile = _newFile(newPath);
      _pathToResource.remove(path);
      _pathToBytes[newPath] = _pathToBytes.remove(path);
      _pathToTimestamp[newPath] = _pathToTimestamp.remove(path);
      if (existingNewResource != null) {
        _notifyWatchers(newPath, ChangeType.REMOVE);
      }
      _notifyWatchers(path, ChangeType.REMOVE);
      _notifyWatchers(newPath, ChangeType.ADD);
      return newFile;
    }
  
    File updateFile(String path, String content, [int stamp]) {
      path = pathContext.normalize(path);
      newFolder(pathContext.dirname(path));
  
negative.code: 
    @override
    File renameSync(String newPath) {
      return _provider._renameFileSync(this, newPath);
    }
  
    @override
  