anchor.diff:      expect(unlinkedUnits[0].libraryNameLength, 0);
     }
   
  +  test_library_with_missing_part() {
  +    // References to other parts should still be resolved.
  +    allowMissingFiles = true;
  +    addNamedSource('/bar.dart', 'part of my.lib; class C {}');
  +    serializeLibraryText(
  +        'library my.lib; part "foo.dart"; part "bar.dart"; C c;',
  +        allowErrors: true);
  +    checkTypeRef(findVariable('c').type, null, null, 'C',
  +        expectedTargetUnit: 2);
  +  }
  +
     test_local_names_take_precedence_over_imported_names() {
       addNamedSource('/a.dart', 'class C {} class D {}');
       serializeLibraryText('''
  
positive.code:    */
    List<String> unitUris;
  
    @override
    bool get checkAstDerivedData => false;
  
    @override
    bool get expectAbsoluteUrisInDependencies => true;
  
    /**
     * Serialize the library containing the given class [element], then
  
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]})');
        }
      }
    }
  }
  