From c18fd179a9e46d3336d3e2df0b3ce71130c2a8bc Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 8 Oct 2013 18:28:45 +0400 Subject: [PATCH] Get rid of intellij Pair in TypeUtils --- .../calls/inference/TypeBoundsImpl.java | 25 +++++++++++++++---- .../jetbrains/jet/lang/types/TypeUtils.java | 16 ------------ 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/calls/inference/TypeBoundsImpl.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/calls/inference/TypeBoundsImpl.java index cb08c23f4b7..edc9d573c28 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/calls/inference/TypeBoundsImpl.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/calls/inference/TypeBoundsImpl.java @@ -19,16 +19,17 @@ package org.jetbrains.jet.lang.resolve.calls.inference; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.intellij.openapi.util.Condition; -import com.intellij.openapi.util.Pair; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; +import org.jetbrains.jet.lang.resolve.constants.IntegerValueTypeConstructor; import org.jetbrains.jet.lang.types.*; import org.jetbrains.jet.lang.types.checker.JetTypeChecker; import java.util.Collection; import java.util.Collections; +import java.util.LinkedHashSet; import java.util.Set; import static org.jetbrains.jet.lang.resolve.calls.inference.TypeBounds.BoundKind.LOWER_BOUND; @@ -167,10 +168,9 @@ public class TypeBoundsImpl implements TypeBounds { } values.addAll(exactBounds); - Pair, Collection> pair = - TypeUtils.filterNumberTypes(filterBounds(bounds, LOWER_BOUND, values)); - Collection generalLowerBounds = pair.getFirst(); - Collection numberLowerBounds = pair.getSecond(); + Collection numberLowerBounds = new LinkedHashSet(); + Collection generalLowerBounds = new LinkedHashSet(); + filterNumberTypes(filterBounds(bounds, LOWER_BOUND, values), numberLowerBounds, generalLowerBounds); JetType superTypeOfLowerBounds = CommonSupertypes.commonSupertypeForNonDenotableTypes(generalLowerBounds); if (tryPossibleAnswer(superTypeOfLowerBounds)) { @@ -209,6 +209,21 @@ public class TypeBoundsImpl implements TypeBounds { return values; } + private static void filterNumberTypes( + @NotNull Collection types, + @NotNull Collection numberTypes, + @NotNull Collection otherTypes + ) { + for (JetType type : types) { + if (type.getConstructor() instanceof IntegerValueTypeConstructor) { + numberTypes.add(type); + } + else { + otherTypes.add(type); + } + } + } + private boolean tryPossibleAnswer(@Nullable JetType possibleAnswer) { if (possibleAnswer == null) return false; if (!possibleAnswer.getConstructor().isDenotable()) return false; 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 f38ab1fb793..ea62956e631 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java @@ -21,7 +21,6 @@ import com.google.common.collect.Collections2; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import com.intellij.openapi.util.Pair; import com.intellij.util.Processor; import kotlin.Function1; import kotlin.KotlinPackage; @@ -607,21 +606,6 @@ public class TypeUtils { return getDefaultPrimitiveNumberType(numberValueTypeConstructor); } - @NotNull - public static Pair, Collection> filterNumberTypes(@NotNull Collection types) { - Collection numberTypes = Sets.newLinkedHashSet(); - Collection otherTypes = Sets.newLinkedHashSet(); - for (JetType type : types) { - if (type.getConstructor() instanceof IntegerValueTypeConstructor) { - numberTypes.add(type); - } - else { - otherTypes.add(type); - } - } - return Pair.create(otherTypes, numberTypes); - } - public static List topologicallySortSuperclassesAndRecordAllInstances( @NotNull JetType type, @NotNull final Map> constructorToAllInstances,