anchor.diff:     */
     List<String> unitUris;
   
  +  /**
  +   * Map containing all source files in this test, and their corresponding file
  +   * contents.
  +   */
  +  final Map<Source, String> _fileContents = <Source, String>{};
  +
     @override
     bool get checkAstDerivedData => false;
   
     @override
     bool get expectAbsoluteUrisInDependencies => true;
  +
  +  @override
  +  Source addNamedSource(String filePath, String contents) {
  +    Source source = super.addNamedSource(filePath, contents);
  +    _fileContents[source] = contents;
  +    return source;
  +  }
   
     /**
      * Serialize the library containing the given class [element], then
  
positive.code:     expect(unlinkedUnits[0].libraryNameLength, 0);
    }
  
    test_local_names_take_precedence_over_imported_names() {
      addNamedSource('/a.dart', 'class C {} class D {}');
      serializeLibraryText('''
  
negative.code:   void verifyPublicNamespace() {
      for (int i = 0; i < unlinkedUnits.length; i++) {
        Source source = analysisContext.sourceFactory.forUri(unitUris[i]);
        String text = _fileContents[source];
        if (text == null) {
          if (!allowMissingFiles) {
            fail('Could not find file while verifying public namespace: '
                '${unitUris[i]}');
          }
        } else {
          UnlinkedPublicNamespace namespace =
              computePublicNamespaceFromText(text, source);
          expect(canonicalize(namespace),
              canonicalize(unlinkedUnits[i].publicNamespace),
              reason: 'publicNamespace(${unitUris[i]})');
        }
      }
    }
  }
  