From 6be5ecc6666b3124622804b24915a322b99a4dab Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 15 May 2013 15:47:43 +0400 Subject: [PATCH] toString(JetType) extracted --- .../jetbrains/jet/lang/types/JetTypeImpl.java | 15 +-------------- .../jetbrains/jet/lang/types/TypeUtils.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/JetTypeImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/JetTypeImpl.java index 3670a6424d7..a51bcfbf274 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/JetTypeImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/JetTypeImpl.java @@ -24,7 +24,6 @@ import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.types.checker.JetTypeChecker; import java.util.Collections; -import java.util.Iterator; import java.util.List; public final class JetTypeImpl extends AnnotatedImpl implements JetType { @@ -84,19 +83,7 @@ public final class JetTypeImpl extends AnnotatedImpl implements JetType { @Override public String toString() { - return constructor + (arguments.isEmpty() ? "" : "<" + argumentsToString() + ">") + (isNullable() ? "?" : ""); - } - - private StringBuilder argumentsToString() { - StringBuilder stringBuilder = new StringBuilder(); - for (Iterator iterator = arguments.iterator(); iterator.hasNext();) { - TypeProjection argument = iterator.next(); - stringBuilder.append(argument); - if (iterator.hasNext()) { - stringBuilder.append(", "); - } - } - return stringBuilder; + return TypeUtils.toString(this); } @Override diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/TypeUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/TypeUtils.java index 02a6f1229a5..b600708d021 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/TypeUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/TypeUtils.java @@ -180,6 +180,24 @@ public class TypeUtils { new ChainedScope(null, scopes)); // TODO : check intersectibility, don't use a chanied scope } + @NotNull + public static String toString(@NotNull JetType type) { + List arguments = type.getArguments(); + return type.getConstructor() + (arguments.isEmpty() ? "" : "<" + argumentsToString(arguments) + ">") + (type.isNullable() ? "?" : ""); + } + + private static StringBuilder argumentsToString(List arguments) { + StringBuilder stringBuilder = new StringBuilder(); + for (Iterator iterator = arguments.iterator(); iterator.hasNext();) { + TypeProjection argument = iterator.next(); + stringBuilder.append(argument); + if (iterator.hasNext()) { + stringBuilder.append(", "); + } + } + return stringBuilder; + } + private static class TypeUnifier { private static class TypeParameterUsage { private final TypeParameterDescriptor typeParameterDescriptor;