anchor.diff:        return <String>[referencedLibraryUri, partUri, name];
       }
       LinkedDependency dependency = linkedLibrary.dependencies[dependencyIndex];
  -    Source referencedLibrarySource =
  -        summaryResynthesizer.sourceFactory.forUri(dependency.uri);
  +    Source referencedLibrarySource = summaryResynthesizer.sourceFactory
  +        .resolveUri(librarySource, dependency.uri);
       String referencedLibraryUri = referencedLibrarySource.uri.toString();
       String partUri;
       if (unit != 0) {
  -      partUri = dependency.parts[unit - 1];
  +      String uri = dependency.parts[unit - 1];
  +      Source partSource =
  +          summaryResynthesizer.sourceFactory.resolveUri(librarySource, uri);
  +      partUri = partSource.uri.toString();
       } else {
         partUri = referencedLibraryUri;
       }
  
positive.code:   @override
    LibraryElement buildImportedLibrary(int dependency) {
      String depUri = resynthesizer.linkedLibrary.dependencies[dependency].uri;
      return _getLibraryByAbsoluteUri(depUri);
    }
  
    @override
  
negative.code:   void patchTopLevelAccessors() {
      LibraryElementImpl library = resynthesizer.library;
      BuildLibraryElementUtils.patchTopLevelAccessors(library);
    }
  
    LibraryElementHandle _getLibraryByRelativeUri(String depUri) {
  