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 0f3aa13bca90da8ee0acfc5c6584e0f56ae4af41..270271d1ae88de617b4665984313cbb0c8a5958c 100644 |
| --- a/pkg/compiler/lib/src/types/flat_type_mask.dart |
| +++ b/pkg/compiler/lib/src/types/flat_type_mask.dart |
| @@ -732,16 +732,7 @@ class FlatTypeMask implements TypeMask { |
| if (xSubset == null) return null; |
| Iterable<ClassElement> ySubset = containedSubset(y, classWorld); |
| if (ySubset == null) return null; |
| - Iterable<ClassElement> smallSet, largeSet; |
| - if (xSubset.length <= ySubset.length) { |
|
Siggi Cherem (dart-lang)
2016/01/21 01:07:12
this was the most important change: this was worse
|
| - smallSet = xSubset; |
| - largeSet = ySubset; |
| - } else { |
| - smallSet = ySubset; |
| - largeSet = xSubset; |
| - } |
| - var result = smallSet.where((ClassElement each) => largeSet.contains(each)); |
| - return result.toSet(); |
| + return xSubset.toSet().intersection(ySubset.toSet()); |
| } |
| static Iterable<ClassElement> containedSubset(FlatTypeMask x, |