anchor.diff:      return _fsState._resourceProvider.getFile(path);
     }
   
  +  Uri? resolveRelativeUriStr(String relativeUriStr) {
  +    if (relativeUriStr.isEmpty) {
  +      return null;
  +    }
  +
  +    Uri relativeUri;
  +    try {
  +      relativeUri = Uri.parse(relativeUriStr);
  +    } on FormatException {
  +      return null;
  +    }
  +
  +    return resolveRelativeUri(uri, relativeUri);
  +  }
  +
     FileState? _fileForRelativeUri({
       FileState? containingLibrary,
       required String relativeUri,
       required OperationPerformanceImpl performance,
     }) {
  -    if (relativeUri.isEmpty) {
  -      return null;
  -    }
  -
  -    Uri absoluteUri;
  -    try {
  -      absoluteUri = resolveRelativeUri(uri, Uri.parse(relativeUri));
  -    } on FormatException {
  +    var absoluteUri = resolveRelativeUriStr(relativeUri);
  +    if (absoluteUri == null) {
         return null;
       }
   
  
positive.code:   }
  
    String? getPathForUri(Uri uri) {
      var source = _sourceFactory.forUri2(uri);
      if (source == null) {
        return null;
      }
      return source.fullName;
    }
  
    /// Computes the set of [FileState]'s used/not used to analyze the given
  
negative.code:   }
  
    void _prefetchDirectReferences() {
      var prefetchFiles = location._fsState.prefetchFiles;
      if (prefetchFiles == null) {
        return;
      }
  
      var paths = <String>{};
  
      void addRelativeUri(String relativeUri) {
        var absoluteUri = location.resolveRelativeUriStr(relativeUri);
        if (absoluteUri != null) {
          var path = location._fsState.getPathForUri(absoluteUri);
          if (path != null) {
            paths.add(path);
          }
        }
      }
  
      var unlinkedUnit = unlinked.unit;
      for (var directive in unlinkedUnit.imports) {
        addRelativeUri(directive.uri);
      }
      for (var directive in unlinkedUnit.exports) {
        addRelativeUri(directive.uri);
      }
      for (var uri in unlinkedUnit.parts) {
        addRelativeUri(uri);
      }
  
      prefetchFiles(paths.toList());
    }
  
    static CompilationUnitImpl parse(AnalysisErrorListener errorListener,
  