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:   @override
    void serializeLibraryText(String text, {bool allowErrors: false}) {
      Source source = addSource(text);
      LibraryElement library = resolve2(source);
      if (!allowErrors) {
        assertNoErrors(source);
  
negative.code:    */
    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
  