| Index: pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| diff --git a/pkg/compiler/lib/src/kernel/element_map_impl.dart b/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| index 632d4fb6120c8d5d4fca2ccdb14cb53f14df3f4f..9e4a18cca79403c6aa97dac3bdc7904d81d27294 100644
|
| --- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| +++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| @@ -542,6 +542,7 @@ class KernelToElementMapImpl extends KernelToElementMapMixin
|
| if (node.supertype == null) {
|
| env.orderedTypeSet = new OrderedTypeSet.singleton(env.thisType);
|
| env.isMixinApplication = false;
|
| + env.interfaces = const <InterfaceType>[];
|
| } else {
|
| InterfaceType processSupertype(ir.Supertype node) {
|
| InterfaceType type = _typeConverter.visitSupertype(node);
|
| @@ -569,6 +570,7 @@ class KernelToElementMapImpl extends KernelToElementMapMixin
|
| new _KernelOrderedTypeSetBuilder(this, cls);
|
| env.orderedTypeSet =
|
| setBuilder.createOrderedTypeSet(env.supertype, interfaces);
|
| + env.interfaces = new List<InterfaceType>.from(interfaces.toList());
|
| }
|
| }
|
| }
|
| @@ -614,6 +616,12 @@ class KernelToElementMapImpl extends KernelToElementMapMixin
|
| return env.isUnnamedMixinApplication;
|
| }
|
|
|
| + Iterable<InterfaceType> _getInterfaces(KClass cls) {
|
| + _KClassEnv env = _classEnvs[cls.classIndex];
|
| + _ensureSupertypes(cls, env);
|
| + return env.interfaces;
|
| + }
|
| +
|
| void _forEachSupertype(KClass cls, void f(InterfaceType supertype)) {
|
| _KClassEnv env = _classEnvs[cls.classIndex];
|
| _ensureSupertypes(cls, env);
|
| @@ -924,6 +932,7 @@ class _KClassEnv {
|
| InterfaceType rawType;
|
| InterfaceType supertype;
|
| InterfaceType mixedInType;
|
| + List<InterfaceType> interfaces;
|
| OrderedTypeSet orderedTypeSet;
|
|
|
| Map<String, ir.Member> _constructorMap;
|
| @@ -1548,6 +1557,7 @@ class KernelResolutionWorldBuilder extends KernelResolutionWorldBuilderBase {
|
| SelectorConstraintsStrategy selectorConstraintsStrategy)
|
| : super(
|
| elementMap.elementEnvironment,
|
| + elementMap.types,
|
| elementMap.commonElements,
|
| elementMap._constantEnvironment.constantSystem,
|
| nativeBasicData,
|
| @@ -1594,6 +1604,7 @@ class KernelClosedWorld extends ClosedWorldBase {
|
|
|
| KernelClosedWorld(this._elementMap,
|
| {ElementEnvironment elementEnvironment,
|
| + DartTypes dartTypes,
|
| CommonElements commonElements,
|
| ConstantSystem constantSystem,
|
| NativeData nativeData,
|
| @@ -1609,6 +1620,7 @@ class KernelClosedWorld extends ClosedWorldBase {
|
| Map<ClassEntity, ClassSet> classSets})
|
| : super(
|
| elementEnvironment: elementEnvironment,
|
| + dartTypes: dartTypes,
|
| commonElements: commonElements,
|
| constantSystem: constantSystem,
|
| nativeData: nativeData,
|
|
|