| Index: sdk/lib/_internal/compiler/implementation/compiler.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/compiler.dart b/sdk/lib/_internal/compiler/implementation/compiler.dart
|
| index 802214c2d84f0b7e6c4277d95c02490845e9d6dd..843a0624fa2092933fc0a4c852f00ae732ca9658 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/compiler.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/compiler.dart
|
| @@ -1060,6 +1060,7 @@ abstract class Compiler implements DiagnosticListener {
|
| // Elements required by enqueueHelpers are global dependencies
|
| // that are not pulled in by a particular element.
|
| backend.enqueueHelpers(enqueuer.resolution, globalDependencies);
|
| + resolveLibraryMetadata();
|
| processQueue(enqueuer.resolution, main);
|
| enqueuer.resolution.logSummary(log);
|
|
|
| @@ -1127,6 +1128,17 @@ abstract class Compiler implements DiagnosticListener {
|
| }
|
| }
|
|
|
| + // Resolves metadata on library elements. This is necessary in order to
|
| + // resolve metadata classes referenced only from metadata on library tags.
|
| + // TODO(ahe): Figure out how to do this lazily.
|
| + void resolveLibraryMetadata() {
|
| + for (LibraryElement library in libraries.values) {
|
| + for (MetadataAnnotation metadata in library.metadata) {
|
| + metadata.ensureResolved(this);
|
| + }
|
| + }
|
| + }
|
| +
|
| void processQueue(Enqueuer world, Element main) {
|
| world.nativeEnqueuer.processNativeClasses(libraries.values);
|
| if (main != null) {
|
|
|