Index: pkg/compiler/lib/src/js_backend/backend.dart |
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart |
index e1e898d4894cfda3b5cdd3910046a1fdcda486cb..780901ca54374f223ef37d89dfe2c99739194923 100644 |
--- a/pkg/compiler/lib/src/js_backend/backend.dart |
+++ b/pkg/compiler/lib/src/js_backend/backend.dart |
@@ -64,7 +64,7 @@ import '../universe/world_impact.dart' |
WorldImpactVisitor, |
StagedWorldImpactBuilder; |
import '../util/util.dart'; |
-import '../world.dart' show ClosedWorld; |
+import '../world.dart' show ClosedWorld, ClosedWorldRefiner; |
import 'backend_helpers.dart'; |
import 'backend_impact.dart'; |
import 'backend_serialization.dart' show JavaScriptBackendSerialization; |
@@ -1282,9 +1282,11 @@ class JavaScriptBackend extends Backend { |
return impactBuilder; |
} |
- onResolutionComplete() { |
- compiler.enqueuer.resolution.processedEntities.forEach(processAnnotations); |
- super.onResolutionComplete(); |
+ onResolutionComplete(ClosedWorldRefiner closedWorldRefiner) { |
+ for (Entity entity in compiler.enqueuer.resolution.processedEntities) { |
+ processAnnotations(entity, closedWorldRefiner); |
+ } |
+ super.onResolutionComplete(closedWorldRefiner); |
computeMembersNeededForReflection(); |
rti.computeClassesNeedingRti(); |
_registeredMetadata.clear(); |
@@ -2390,7 +2392,8 @@ class JavaScriptBackend extends Backend { |
} |
/// Process backend specific annotations. |
- void processAnnotations(Element element) { |
+ void processAnnotations( |
+ Element element, ClosedWorldRefiner closedWorldRefiner) { |
if (element.isMalformed) { |
// Elements that are marked as malformed during parsing or resolution |
// might be registered here. These should just be ignored. |
@@ -2444,14 +2447,14 @@ class JavaScriptBackend extends Backend { |
reporter.reportHintMessage( |
element, MessageKind.GENERIC, {'text': "Cannot throw"}); |
} |
- compiler.inferenceWorld.registerCannotThrow(element); |
+ closedWorldRefiner.registerCannotThrow(element); |
} else if (cls == helpers.noSideEffectsClass) { |
hasNoSideEffects = true; |
if (VERBOSE_OPTIMIZER_HINTS) { |
reporter.reportHintMessage( |
element, MessageKind.GENERIC, {'text': "Has no side effects"}); |
} |
- compiler.inferenceWorld.registerSideEffectsFree(element); |
+ closedWorldRefiner.registerSideEffectsFree(element); |
} |
} |
if (hasForceInline && hasNoInline) { |