From acf987ae5bc129228d86301f42939d73dc6a9756 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Wed, 16 Oct 2013 16:24:09 +0400 Subject: [PATCH] added 'toString' "IntegerValueType(1)" to number value types for debug and erroneously appeared in the places where it can be seen by user --- .../constants/DoubleValueTypeConstructor.java | 27 ++++++++++++++----- .../IntegerValueTypeConstructor.java | 18 +++---------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/DoubleValueTypeConstructor.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/DoubleValueTypeConstructor.java index fc4edf55340..a59975ab6c6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/DoubleValueTypeConstructor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/DoubleValueTypeConstructor.java @@ -25,15 +25,16 @@ import java.util.Collection; import java.util.List; public class DoubleValueTypeConstructor extends NumberValueTypeConstructor { - private static final DoubleValueTypeConstructor INSTANCE = new DoubleValueTypeConstructor(); - - public static DoubleValueTypeConstructor create(double value) { - return INSTANCE; - } - + private final double value; private final List supertypes; - private DoubleValueTypeConstructor() { + + public static DoubleValueTypeConstructor create(double value) { + return new DoubleValueTypeConstructor(value); + } + + private DoubleValueTypeConstructor(double value) { + this.value = value; // order of types matters // 'getPrimitiveNumberType' returns first of supertypes that is a subtype of expected type // for expected type 'Any' result type 'Double' should be returned @@ -45,4 +46,16 @@ public class DoubleValueTypeConstructor extends NumberValueTypeConstructor { public Collection getSupertypes() { return supertypes; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + DoubleValueTypeConstructor that = (DoubleValueTypeConstructor) o; + + if (Double.compare(that.value, value) != 0) return false; + + return true; + } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstructor.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstructor.java index b37aea35bc9..7142abf8de6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstructor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstructor.java @@ -24,6 +24,7 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import java.util.Collection; public class IntegerValueTypeConstructor extends NumberValueTypeConstructor { + private final long value; private final Collection supertypes = Lists.newArrayList(); public static IntegerValueTypeConstructor create(long value) { @@ -34,6 +35,7 @@ public class IntegerValueTypeConstructor extends NumberValueTypeConstructor { // order of types matters // 'getPrimitiveNumberType' returns first of supertypes that is a subtype of expected type // for expected type 'Any' result type 'Int' should be returned + this.value = value; checkBoundsAndAddSuperType(value, (long) Integer.MIN_VALUE, (long) Integer.MAX_VALUE, KotlinBuiltIns.getInstance().getIntType()); checkBoundsAndAddSuperType(value, (long) Byte.MIN_VALUE, (long) Byte.MAX_VALUE, KotlinBuiltIns.getInstance().getByteType()); checkBoundsAndAddSuperType(value, (long) Short.MIN_VALUE, (long) Short.MAX_VALUE, KotlinBuiltIns.getInstance().getShortType()); @@ -53,19 +55,7 @@ public class IntegerValueTypeConstructor extends NumberValueTypeConstructor { } @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - IntegerValueTypeConstructor that = (IntegerValueTypeConstructor) o; - - if (!supertypes.equals(that.supertypes)) return false; - - return true; - } - - @Override - public int hashCode() { - return supertypes.hashCode(); + public String toString() { + return "IntegerValueType(" + value + ")"; } }