Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Unified Diff: pkg/compiler/lib/src/kernel/element_map_impl.dart

Issue 2954493002: Less inequivalence on Hello World! (Closed)
Patch Set: Updated cf. comments Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/lib/src/js_model/elements.dart ('k') | pkg/compiler/lib/src/kernel/types.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « pkg/compiler/lib/src/js_model/elements.dart ('k') | pkg/compiler/lib/src/kernel/types.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698