| 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 da6e337738f1c799d51464858231d81e5f361d50..14b9fcde992e61ee05423c504eb9e9779c5ab9db 100644
|
| --- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| +++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| @@ -1570,7 +1570,18 @@ abstract class KernelClosedWorldMixin implements ClosedWorldBase {
|
| @override
|
| bool hasConcreteMatch(ClassEntity cls, Selector selector,
|
| {ClassEntity stopAtSuperclass}) {
|
| - throw new UnimplementedError('KernelClosedWorldMixin.hasConcreteMatch');
|
| + assert(
|
| + isInstantiated(cls), failedAt(cls, '$cls has not been instantiated.'));
|
| + MemberEntity element = elementEnvironment
|
| + .lookupClassMember(cls, selector.name, setter: selector.isSetter);
|
| + if (element == null) return false;
|
| +
|
| + if (element.isAbstract) {
|
| + ClassEntity enclosingClass = element.enclosingClass;
|
| + return hasConcreteMatch(
|
| + elementEnvironment.getSuperClass(enclosingClass), selector);
|
| + }
|
| + return selector.appliesUntyped(element);
|
| }
|
|
|
| @override
|
|
|