Index: pkg/compiler/lib/src/world.dart |
diff --git a/pkg/compiler/lib/src/world.dart b/pkg/compiler/lib/src/world.dart |
index dd786a425824575358f2f77a2d54908a567bcd94..c406d0700f8196e6554627632ef32678491913e6 100644 |
--- a/pkg/compiler/lib/src/world.dart |
+++ b/pkg/compiler/lib/src/world.dart |
@@ -25,8 +25,8 @@ import 'universe/class_set.dart'; |
import 'universe/function_set.dart' show FunctionSet; |
import 'universe/selector.dart' show Selector; |
import 'universe/side_effects.dart' show SideEffects; |
-import 'universe/world_builder.dart' show ResolutionWorldBuilder; |
-import 'util/enumset.dart'; |
+import 'universe/world_builder.dart' |
+ show InstantiationInfo, ResolutionWorldBuilder; |
import 'util/util.dart' show Link; |
/// Common superinterface for [OpenWorld] and [ClosedWorld]. |
@@ -1007,7 +1007,10 @@ class WorldImpl implements ClosedWorld, ClosedWorldRefiner, OpenWorld { |
/// Updates the `isDirectlyInstantiated` and `isIndirectlyInstantiated` |
/// properties of the [ClassHierarchyNode] for [cls]. |
- void addSubtypes(ClassElement cls, EnumSet<Instantiation> instantiations) { |
+ void addSubtypes(ClassElement cls, InstantiationInfo info) { |
+ if (!info.hasInstantiation) { |
+ return; |
+ } |
if (cacheStrategy.hasIncrementalSupport && !alreadyPopulated.add(cls)) { |
return; |
} |
@@ -1017,10 +1020,8 @@ class WorldImpl implements ClosedWorld, ClosedWorldRefiner, OpenWorld { |
} |
_updateClassHierarchyNodeForClass(cls, |
- directlyInstantiated: |
- instantiations.contains(Instantiation.DIRECTLY_INSTANTIATED), |
- abstractlyInstantiated: |
- instantiations.contains(Instantiation.ABSTRACTLY_INSTANTIATED)); |
+ directlyInstantiated: info.isDirectlyInstantiated, |
+ abstractlyInstantiated: info.isAbstractlyInstantiated); |
// Walk through the superclasses, and record the types |
// implemented by that type on the superclasses. |