| Index: pkg/compiler/lib/src/types/flat_type_mask.dart
|
| diff --git a/pkg/compiler/lib/src/types/flat_type_mask.dart b/pkg/compiler/lib/src/types/flat_type_mask.dart
|
| index 59b573accb48283c7de992babaa37bdd736204e8..380c2fb1a25cfddf8642cb8c53b4f7bd193538c6 100644
|
| --- a/pkg/compiler/lib/src/types/flat_type_mask.dart
|
| +++ b/pkg/compiler/lib/src/types/flat_type_mask.dart
|
| @@ -692,8 +692,18 @@ class FlatTypeMask implements TypeMask {
|
| // all classes in the receiver type [this]. It could be found only in a
|
| // subclass or in an inheritance-wise unrelated class in case of subtype
|
| // selectors.
|
| - if (isSubtype) return null;
|
| - if (base.isSubclassOf(enclosing)) return result;
|
| + ClassWorld classWorld = compiler.world;
|
| + if (isSubtype) {
|
| + // if (classWorld.isUsedAsMixin(enclosing)) {
|
| + if (classWorld.everySubtypeIsSubclassOfOrMixinUseOf(base, enclosing)) {
|
| + return result;
|
| + }
|
| + //}
|
| + return null;
|
| + } else {
|
| + if (base.isSubclassOf(enclosing)) return result;
|
| + if (classWorld.isSubclassOfMixinUseOf(base, enclosing)) return result;
|
| + }
|
| return null;
|
| }
|
|
|
|
|