diff --git a/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java b/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java index ee8d1386ed6..f38ab1fb793 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java @@ -555,12 +555,12 @@ public class TypeUtils { private static Set getIntersectionOfSupertypes(@NotNull Collection types) { Set upperBounds = Sets.newHashSet(); for (JetType type : types) { - Set supertypes = Sets.newHashSet(type.getConstructor().getSupertypes()); + Collection supertypes = type.getConstructor().getSupertypes(); if (upperBounds.isEmpty()) { upperBounds.addAll(supertypes); } else { - upperBounds = Sets.intersection(upperBounds, supertypes); + upperBounds.retainAll(supertypes); } } return upperBounds;