| Index: pkg/compiler/lib/src/compiler.dart
|
| diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
|
| index 392b2026b6fc8cbf6e8d66de3db1a9ca40e7f80d..79bb08ecf0c5ddfed14ac90f4f893fefa0961dff 100644
|
| --- a/pkg/compiler/lib/src/compiler.dart
|
| +++ b/pkg/compiler/lib/src/compiler.dart
|
| @@ -137,6 +137,7 @@ import 'universe/universe.dart' show
|
| import 'universe/use.dart' show
|
| StaticUse;
|
| import 'universe/world_impact.dart' show
|
| + ImpactStrategy,
|
| WorldImpact;
|
| import 'util/util.dart' show
|
| Link,
|
| @@ -157,6 +158,8 @@ abstract class Compiler {
|
|
|
| final CacheStrategy cacheStrategy;
|
|
|
| + ImpactStrategy impactStrategy = const ImpactStrategy();
|
| +
|
| /**
|
| * Map from token to the first preceding comment token.
|
| */
|
| @@ -975,6 +978,9 @@ abstract class Compiler {
|
| // something to the resolution queue. So we cannot wait with
|
| // this until after the resolution queue is processed.
|
| deferredLoadTask.beforeResolution(this);
|
| + impactStrategy = backend.createImpactStrategy(
|
| + supportDeferredLoad: deferredLoadTask.isProgramSplit,
|
| + supportDumpInfo: dumpInfo);
|
|
|
| phase = PHASE_RESOLVING;
|
| if (analyzeAll) {
|
| @@ -2019,6 +2025,13 @@ class _CompilerResolution implements Resolution {
|
| }
|
|
|
| @override
|
| + void uncacheWorldImpact(Element element) {
|
| + assert(invariant(element, _worldImpactCache[element] != null,
|
| + message: "WorldImpact not computed for $element."));
|
| + _worldImpactCache[element] = const WorldImpact();
|
| + }
|
| +
|
| + @override
|
| bool hasBeenResolved(Element element) {
|
| return _worldImpactCache.containsKey(element);
|
| }
|
|
|