Index: dart/sdk/lib/_internal/compiler/implementation/compiler.dart |
diff --git a/dart/sdk/lib/_internal/compiler/implementation/compiler.dart b/dart/sdk/lib/_internal/compiler/implementation/compiler.dart |
index bdda72eb0990676d3ced0d3081898a7ac6547643..0b5faf7007d139cb1c1cc7934cf34ffa9e78f156 100644 |
--- a/dart/sdk/lib/_internal/compiler/implementation/compiler.dart |
+++ b/dart/sdk/lib/_internal/compiler/implementation/compiler.dart |
@@ -135,22 +135,26 @@ abstract class Backend { |
// The following methods are hooks for the backend to register its |
// helper methods. |
- void registerInstantiatedClass(ClassElement cls, Enqueuer enqueuer) {} |
- void registerStringInterpolation() {} |
- void registerCatchStatement() {} |
- void registerThrow() {} |
- void registerLazyField() {} |
- void registerTypeLiteral() {} |
- void registerStackTraceInCatch() {} |
- void registerIsCheck(DartType type, Enqueuer enqueuer) {} |
- void registerAsCheck(DartType type) {} |
- void registerThrowNoSuchMethod() {} |
- void registerThrowRuntimeError() {} |
- void registerAbstractClassInstantiation() {} |
- void registerFallThroughError() {} |
- void registerSuperNoSuchMethod() {} |
- void registerConstantMap() {} |
- void registerRuntimeType() {} |
+ void registerInstantiatedClass(ClassElement cls, |
+ Enqueuer enqueuer, |
+ TreeElements elements) {} |
+ void registerStringInterpolation(TreeElements elements) {} |
+ void registerCatchStatement(TreeElements elements) {} |
+ void registerThrow(TreeElements elements) {} |
+ void registerLazyField(TreeElements elements) {} |
+ void registerTypeLiteral(TreeElements elements) {} |
+ void registerStackTraceInCatch(TreeElements elements) {} |
+ void registerIsCheck(DartType type, |
+ Enqueuer enqueuer, |
+ TreeElements elements) {} |
+ void registerAsCheck(DartType type, TreeElements elements) {} |
+ void registerThrowNoSuchMethod(TreeElements elements) {} |
+ void registerThrowRuntimeError(TreeElements elements) {} |
+ void registerAbstractClassInstantiation(TreeElements elements) {} |
+ void registerFallThroughError(TreeElements elements) {} |
+ void registerSuperNoSuchMethod(TreeElements elements) {} |
+ void registerConstantMap(TreeElements elements) {} |
+ void registerRuntimeType(TreeElements elements) {} |
} |
/** |
@@ -205,6 +209,15 @@ abstract class Compiler implements DiagnosticListener { |
*/ |
final TokenMap commentMap = new TokenMap(); |
+ /** |
+ * Records global dependencies, that is, dependencies that don't |
+ * correspond to a particular element. |
+ * |
+ * We should get rid of this and ensure that all dependencies are |
+ * associated with a particular element. |
+ */ |
+ final TreeElements globalDependencies = new TreeElementMapping(null); |
+ |
final bool enableMinification; |
final bool enableTypeAssertions; |
final bool enableUserAssertions; |
@@ -664,8 +677,6 @@ abstract class Compiler implements DiagnosticListener { |
} |
} |
- deferredLoadTask.registerMainApp(mainApp); |
- |
log('Resolving...'); |
phase = PHASE_RESOLVING; |
if (analyzeAll) { |
@@ -683,6 +694,8 @@ abstract class Compiler implements DiagnosticListener { |
// should know this. |
world.populate(); |
+ deferredLoadTask.onResolutionComplete(main); |
+ |
log('Inferring types...'); |
typesTask.onResolutionComplete(main); |