Chromium Code Reviews| 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..b16655d92e2f2963431bd14da535ee1a2ef3b205 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)) { |
|
Siggi Cherem (dart-lang)
2016/08/29 19:26:00
delete?
|
| + if (classWorld.everySubtypeIsSubclassOrMixinOf(base, enclosing)) { |
| + return result; |
| + } |
| + //} |
| + return null; |
| + } else { |
| + if (base.isSubclassOf(enclosing)) return result; |
| + if (classWorld.isSubclassOfMixinOf(base, enclosing)) return result; |
| + } |
| return null; |
| } |