Chromium Code Reviews| Index: pkg/compiler/lib/src/kernel/world_builder.dart |
| diff --git a/pkg/compiler/lib/src/kernel/world_builder.dart b/pkg/compiler/lib/src/kernel/world_builder.dart |
| index 3b7f3ccbda7cf67f2d4138ba89ee60e72f6a5d84..519b33f585de80d48e628fdd505ccba91faa1500 100644 |
| --- a/pkg/compiler/lib/src/kernel/world_builder.dart |
| +++ b/pkg/compiler/lib/src/kernel/world_builder.dart |
| @@ -26,6 +26,7 @@ import '../native/resolver.dart'; |
| import '../ordered_typeset.dart'; |
| import '../ssa/kernel_impact.dart'; |
| import '../universe/call_structure.dart'; |
| +import '../universe/world_builder.dart'; |
| import '../util/util.dart' show Link, LinkBuilder; |
| import 'element_adapter.dart'; |
| import 'elements.dart'; |
| @@ -1102,6 +1103,50 @@ class _EvaluationEnvironment implements Environment { |
| } |
| } |
| +class KernelResolutionWorldBuilder extends KernelResolutionWorldBuilderBase { |
| + final KernelWorldBuilder worldBuilder; |
| + |
| + KernelResolutionWorldBuilder( |
| + this.worldBuilder, |
| + NativeBasicData nativeBasicData, |
| + SelectorConstraintsStrategy selectorConstraintsStrategy) |
| + : super(worldBuilder.elementEnvironment, worldBuilder.commonElements, |
| + nativeBasicData, selectorConstraintsStrategy); |
| + |
| + @override |
| + Iterable<InterfaceType> getSupertypes(ClassEntity cls) { |
| + return worldBuilder._getOrderedTypeSet(cls).supertypes; |
| + } |
| + |
| + @override |
| + ClassEntity getSuperClass(ClassEntity cls) { |
| + return worldBuilder._getSuperType(cls)?.element; |
| + } |
| + |
| + @override |
| + bool implementsFunction(ClassEntity cls) { |
| + // TODO(johnniwinther): Implement this. |
| + return false; |
|
Siggi Cherem (dart-lang)
2017/04/21 17:04:21
throw?
Johnni Winther
2017/04/24 09:53:46
Needed for the closed world computation.
|
| + } |
| + |
| + @override |
| + int getHierarchyDepth(ClassEntity cls) { |
| + return worldBuilder._getHierarchyDepth(cls); |
| + } |
| + |
| + @override |
| + ClassEntity getAppliedMixin(ClassEntity cls) { |
| + // TODO(johnniwinther): Implement this. |
| + return null; |
| + } |
| + |
| + @override |
| + bool validateClass(ClassEntity cls) => true; |
| + |
| + @override |
| + bool checkClass(ClassEntity cls) => true; |
| +} |
| + |
| // Interface for testing equivalence of Kernel-based entities. |
| class WorldDeconstructionForTesting { |
| final KernelWorldBuilder builder; |