anchor.diff:      var containingContext = _findContextOfPath(path);
       if (containingContext == null) return;
   
  -    var file = _getFileByPath(containingContext, path);
  +    var file = _getFileByPath(containingContext, [], path);
       if (file == null) return;
   
       var wasLibrary = file.isLibrary;
       var oldLibrary = wasLibrary ? file : file.library;
   
  -    file.refresh(containingContext);
  +    file.refresh(containingContext, []);
       var isLibrary = file.isLibrary;
       var newLibrary = isLibrary ? file : file.library;
   
  
positive.code: 
      // Resolve exports and parts.
      for (var export in exports) {
        export.file = _fileForRelativeUri(context, export.uri);
      }
      for (var part in parts) {
        part.file = _fileForRelativeUri(context, part.uri);
      }
      exports.removeWhere((e) => e.file == null);
      parts.removeWhere((e) => e.file == null);
  
negative.code:     return null;
    }
  
    _File? _getFileByPath(
        DeclarationsContext context, List<String> partOrUriList, String path) {
      var file = _pathToFile[path];
      if (file == null) {
        var uri = context._restoreUri(path);
  