| 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 08ac2dcb71e0a182f9a8b6ecbc7f719b0a0ddd79..18d00bae482ada4039afb9a6de0f300c3c295afa 100644
|
| --- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| +++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| @@ -32,7 +32,6 @@ import '../native/native.dart' as native;
|
| import '../native/resolver.dart';
|
| import '../ordered_typeset.dart';
|
| import '../universe/class_set.dart';
|
| -import '../universe/function_set.dart';
|
| import '../universe/selector.dart';
|
| import '../universe/world_builder.dart';
|
| import '../world.dart';
|
| @@ -1468,7 +1467,24 @@ class KernelResolutionWorldBuilder extends KernelResolutionWorldBuilderBase {
|
| bool checkClass(ClassEntity cls) => true;
|
| }
|
|
|
| -class KernelClosedWorld extends ClosedWorldBase {
|
| +abstract class KernelClosedWorldMixin implements ClosedWorld {
|
| + @override
|
| + bool hasElementIn(ClassEntity cls, Selector selector, Entity element) {
|
| + while (cls != null) {
|
| + MemberEntity member = elementEnvironment
|
| + .lookupClassMember(cls, selector.name, setter: selector.isSetter);
|
| + if (member != null &&
|
| + (!selector.memberName.isPrivate ||
|
| + member.library == selector.library)) {
|
| + return member == element;
|
| + }
|
| + cls = elementEnvironment.getSuperClass(cls);
|
| + }
|
| + return false;
|
| + }
|
| +}
|
| +
|
| +class KernelClosedWorld extends ClosedWorldBase with KernelClosedWorldMixin {
|
| final KernelToElementMapForImpactImpl _elementMap;
|
|
|
| KernelClosedWorld(this._elementMap,
|
| @@ -1481,28 +1497,28 @@ class KernelClosedWorld extends ClosedWorldBase {
|
| BackendUsage backendUsage,
|
| ResolutionWorldBuilder resolutionWorldBuilder,
|
| Set<ClassEntity> implementedClasses,
|
| - FunctionSet functionSet,
|
| + Iterable<MemberEntity> liveInstanceMembers,
|
| Set<TypedefElement> allTypedefs,
|
| Map<ClassEntity, Set<ClassEntity>> mixinUses,
|
| Map<ClassEntity, Set<ClassEntity>> typesImplementedBySubclasses,
|
| Map<ClassEntity, ClassHierarchyNode> classHierarchyNodes,
|
| Map<ClassEntity, ClassSet> classSets})
|
| : super(
|
| - elementEnvironment: elementEnvironment,
|
| - dartTypes: dartTypes,
|
| - commonElements: commonElements,
|
| - constantSystem: constantSystem,
|
| - nativeData: nativeData,
|
| - interceptorData: interceptorData,
|
| - backendUsage: backendUsage,
|
| - resolutionWorldBuilder: resolutionWorldBuilder,
|
| - implementedClasses: implementedClasses,
|
| - functionSet: functionSet,
|
| - allTypedefs: allTypedefs,
|
| - mixinUses: mixinUses,
|
| - typesImplementedBySubclasses: typesImplementedBySubclasses,
|
| - classHierarchyNodes: classHierarchyNodes,
|
| - classSets: classSets);
|
| + elementEnvironment,
|
| + dartTypes,
|
| + commonElements,
|
| + constantSystem,
|
| + nativeData,
|
| + interceptorData,
|
| + backendUsage,
|
| + resolutionWorldBuilder,
|
| + implementedClasses,
|
| + liveInstanceMembers,
|
| + allTypedefs,
|
| + mixinUses,
|
| + typesImplementedBySubclasses,
|
| + classHierarchyNodes,
|
| + classSets);
|
|
|
| @override
|
| bool hasConcreteMatch(ClassEntity cls, Selector selector,
|
| @@ -1554,21 +1570,6 @@ class KernelClosedWorld extends ClosedWorldBase {
|
| void registerClosureClass(ClassElement cls) {
|
| throw new UnimplementedError('KernelClosedWorld.registerClosureClass');
|
| }
|
| -
|
| - @override
|
| - bool hasElementIn(ClassEntity cls, Selector selector, Entity element) {
|
| - while (cls != null) {
|
| - MemberEntity member = elementEnvironment
|
| - .lookupClassMember(cls, selector.name, setter: selector.isSetter);
|
| - if (member != null &&
|
| - (!selector.memberName.isPrivate ||
|
| - member.library == selector.library)) {
|
| - return member == element;
|
| - }
|
| - cls = elementEnvironment.getSuperClass(cls);
|
| - }
|
| - return false;
|
| - }
|
| }
|
|
|
| // Interface for testing equivalence of Kernel-based entities.
|
|
|