| Index: pkg/compiler/lib/src/library_loader.dart | 
| diff --git a/pkg/compiler/lib/src/library_loader.dart b/pkg/compiler/lib/src/library_loader.dart | 
| index 77d18aa9565586eb27511d4f2ca81aa8b54d51e3..b666bfa8955f2de879f4fe1cfb56b2226e4c1d5c 100644 | 
| --- a/pkg/compiler/lib/src/library_loader.dart | 
| +++ b/pkg/compiler/lib/src/library_loader.dart | 
| @@ -634,46 +634,49 @@ class _LibraryLoaderTask extends CompilerTask implements LibraryLoaderTask { | 
| if (library != null) { | 
| return new Future.value(library); | 
| } | 
| -    library = deserializer.readLibrary(resolvedUri); | 
| -    if (library != null) { | 
| -      return loadDeserializedLibrary(handler, library); | 
| -    } | 
| -    return reporter.withCurrentElement(importingLibrary, () { | 
| -      return _readScript(node, readableUri, resolvedUri).then((Script script) { | 
| -        if (script == null) return null; | 
| -        LibraryElement element = | 
| -            createLibrarySync(handler, script, resolvedUri); | 
| -        CompilationUnitElementX compilationUnit = element.entryCompilationUnit; | 
| -        if (compilationUnit.partTag != null) { | 
| -          if (skipFileWithPartOfTag) { | 
| -            // TODO(johnniwinther): Avoid calling [listener.onLibraryCreated] | 
| -            // for this library. | 
| -            libraryCanonicalUriMap.remove(resolvedUri); | 
| -            return null; | 
| -          } | 
| -          if (importingLibrary == null) { | 
| -            DiagnosticMessage error = reporter.withCurrentElement( | 
| -                compilationUnit, | 
| -                () => reporter.createMessage( | 
| -                    compilationUnit.partTag, MessageKind.MAIN_HAS_PART_OF)); | 
| -            reporter.reportError(error); | 
| -          } else { | 
| -            DiagnosticMessage error = reporter.withCurrentElement( | 
| -                compilationUnit, | 
| -                () => reporter.createMessage( | 
| -                    compilationUnit.partTag, MessageKind.IMPORT_PART_OF)); | 
| -            DiagnosticMessage info = reporter.withCurrentElement( | 
| -                importingLibrary, | 
| -                () => reporter.createMessage( | 
| -                    node, MessageKind.IMPORT_PART_OF_HERE)); | 
| -            reporter.reportError(error, [info]); | 
| +    return deserializer.readLibrary(resolvedUri).then((LibraryElement library) { | 
| +      if (library != null) { | 
| +        return loadDeserializedLibrary(handler, library); | 
| +      } | 
| +      return reporter.withCurrentElement(importingLibrary, () { | 
| +        return _readScript(node, readableUri, resolvedUri) | 
| +            .then((Script script) { | 
| +          if (script == null) return null; | 
| +          LibraryElement element = | 
| +              createLibrarySync(handler, script, resolvedUri); | 
| +          CompilationUnitElementX compilationUnit = | 
| +              element.entryCompilationUnit; | 
| +          if (compilationUnit.partTag != null) { | 
| +            if (skipFileWithPartOfTag) { | 
| +              // TODO(johnniwinther): Avoid calling [listener.onLibraryCreated] | 
| +              // for this library. | 
| +              libraryCanonicalUriMap.remove(resolvedUri); | 
| +              return null; | 
| +            } | 
| +            if (importingLibrary == null) { | 
| +              DiagnosticMessage error = reporter.withCurrentElement( | 
| +                  compilationUnit, | 
| +                  () => reporter.createMessage( | 
| +                      compilationUnit.partTag, MessageKind.MAIN_HAS_PART_OF)); | 
| +              reporter.reportError(error); | 
| +            } else { | 
| +              DiagnosticMessage error = reporter.withCurrentElement( | 
| +                  compilationUnit, | 
| +                  () => reporter.createMessage( | 
| +                      compilationUnit.partTag, MessageKind.IMPORT_PART_OF)); | 
| +              DiagnosticMessage info = reporter.withCurrentElement( | 
| +                  importingLibrary, | 
| +                  () => reporter.createMessage( | 
| +                      node, MessageKind.IMPORT_PART_OF_HERE)); | 
| +              reporter.reportError(error, [info]); | 
| +            } | 
| } | 
| -        } | 
| -        return processLibraryTags(handler, element).then((_) { | 
| -          reporter.withCurrentElement(element, () { | 
| -            handler.registerLibraryExports(element); | 
| +          return processLibraryTags(handler, element).then((_) { | 
| +            reporter.withCurrentElement(element, () { | 
| +              handler.registerLibraryExports(element); | 
| +            }); | 
| +            return element; | 
| }); | 
| -          return element; | 
| }); | 
| }); | 
| }); | 
|  |