From 1792a71a5b5166d0248eee64be9b0c8bebfac1cb Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 15 Mar 2011 22:21:55 +0300 Subject: [PATCH] IntRanges + fixes in tests --- idea/src/jet/lang/Library.jet | 63 +++++++++++-------- idea/testData/resolve/ResolveToJava.jet | 2 +- .../jet/types/JetTypeCheckerTest.java | 22 +++---- 3 files changed, 50 insertions(+), 37 deletions(-) diff --git a/idea/src/jet/lang/Library.jet b/idea/src/jet/lang/Library.jet index c9c42bc8e02..e20955439c9 100644 --- a/idea/src/jet/lang/Library.jet +++ b/idea/src/jet/lang/Library.jet @@ -24,6 +24,19 @@ class Range> { fun contains(item : T) : Boolean } +class Iterator { + fun next() : T + val hasNext : Boolean +} + +class Iterable { + fun iterator() : Iterator +} + +class IntRange : Range, Iterable { + +} + class Number { val d : Double val f : Float @@ -205,11 +218,11 @@ class Long : Number, Comparable { fun rangeTo(other : Double) : Range fun rangeTo(other : Float) : Range - fun rangeTo(other : Long) : Range - fun rangeTo(other : Int) : Range - fun rangeTo(other : Short) : Range - fun rangeTo(other : Byte) : Range - fun rangeTo(other : Char) : Range + fun rangeTo(other : Long) : IntRange + fun rangeTo(other : Int) : IntRange + fun rangeTo(other : Short) : IntRange + fun rangeTo(other : Byte) : IntRange + fun rangeTo(other : Char) : IntRange fun inc() : Long fun dec() : Long @@ -266,11 +279,11 @@ class Int : Number, Comparable { fun rangeTo(other : Double) : Range fun rangeTo(other : Float) : Range - fun rangeTo(other : Long) : Range - fun rangeTo(other : Int) : Range - fun rangeTo(other : Short) : Range - fun rangeTo(other : Byte) : Range - fun rangeTo(other : Char) : Range + fun rangeTo(other : Long) : IntRange + fun rangeTo(other : Int) : IntRange + fun rangeTo(other : Short) : IntRange + fun rangeTo(other : Byte) : IntRange + fun rangeTo(other : Char) : IntRange fun inc() : Int fun dec() : Int @@ -327,11 +340,11 @@ class Char : Number, Comparable { fun rangeTo(other : Double) : Range fun rangeTo(other : Float) : Range - fun rangeTo(other : Long) : Range - fun rangeTo(other : Int) : Range - fun rangeTo(other : Short) : Range - fun rangeTo(other : Byte) : Range - fun rangeTo(other : Char) : Range + fun rangeTo(other : Long) : IntRange + fun rangeTo(other : Int) : IntRange + fun rangeTo(other : Short) : IntRange + fun rangeTo(other : Byte) : IntRange + fun rangeTo(other : Char) : IntRange fun inc() : Char fun dec() : Char @@ -388,11 +401,11 @@ class Short : Number, Comparable { fun rangeTo(other : Double) : Range fun rangeTo(other : Float) : Range - fun rangeTo(other : Long) : Range - fun rangeTo(other : Int) : Range - fun rangeTo(other : Short) : Range - fun rangeTo(other : Byte) : Range - fun rangeTo(other : Char) : Range + fun rangeTo(other : Long) : IntRange + fun rangeTo(other : Int) : IntRange + fun rangeTo(other : Short) : IntRange + fun rangeTo(other : Byte) : IntRange + fun rangeTo(other : Char) : IntRange fun inc() : Short fun dec() : Short @@ -449,11 +462,11 @@ class Byte : Number, Comparable { fun rangeTo(other : Double) : Range fun rangeTo(other : Float) : Range - fun rangeTo(other : Long) : Range - fun rangeTo(other : Int) : Range - fun rangeTo(other : Short) : Range - fun rangeTo(other : Byte) : Range - fun rangeTo(other : Char) : Range + fun rangeTo(other : Long) : IntRange + fun rangeTo(other : Int) : IntRange + fun rangeTo(other : Short) : IntRange + fun rangeTo(other : Byte) : IntRange + fun rangeTo(other : Char) : IntRange fun inc() : Byte fun dec() : Byte diff --git a/idea/testData/resolve/ResolveToJava.jet b/idea/testData/resolve/ResolveToJava.jet index 6cf3bc5e0f3..798db5c9be8 100644 --- a/idea/testData/resolve/ResolveToJava.jet +++ b/idea/testData/resolve/ResolveToJava.jet @@ -35,7 +35,7 @@ class B : `java::java.lang.Object`Object { } } -~c~fun c(~x~x : `java::java.lang.Number`Number) { +~c~fun c(~x~x : java.lang.`java::java.lang.Number`Number) { `x`x.`java::java.lang.Number.intValue()`intValue() } diff --git a/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java b/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java index 0693ca6afc9..f0b99b90dff 100644 --- a/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java +++ b/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java @@ -105,25 +105,25 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase { assertType("if (true) 1 else null", "Int?"); assertType("if (true) null else null", "Nothing?"); - assertType("if (true) 1 else '1'", "Comparable"); + assertType("if (true) 1 else '1'", "Any"); } public void testWhen() throws Exception { assertType("when (1) { is 1 => 2; } ", "Int"); - assertType("when (1) { is 1 => 2; is 1 => '2'} ", "Comparable"); - assertType("when (1) { is 1 => 2; is 1 => '2'; is 1 => null} ", "Comparable?"); - assertType("when (1) { is 1 => 2; is 1 => '2'; else => null} ", "Comparable?"); - assertType("when (1) { is 1 => 2; is 1 => '2'; else continue} ", "Comparable"); - assertType("when (1) { is 1 => 2; is 1 => '2'; is 1 when(e) {is 1 => null}} ", "Comparable?"); - assertType("when (1) { is 1 => 2; is 1 => '2'; is 1 => when(e) {is 1 => null}} ", "Comparable?"); + assertType("when (1) { is 1 => 2; is 1 => '2'} ", "Any"); + assertType("when (1) { is 1 => 2; is 1 => '2'; is 1 => null} ", "Any?"); + assertType("when (1) { is 1 => 2; is 1 => '2'; else => null} ", "Any?"); + assertType("when (1) { is 1 => 2; is 1 => '2'; else continue} ", "Any"); + assertType("when (1) { is 1 => 2; is 1 => '2'; is 1 when(e) {is 1 => null}} ", "Any?"); + assertType("when (1) { is 1 => 2; is 1 => '2'; is 1 => when(e) {is 1 => null}} ", "Any?"); } public void testTry() throws Exception { assertType("try {1} finally{2}", "Int"); assertType("try {1} catch (e : e) {'a'} finally{2}", "Int"); - assertType("try {1} catch (e : e) {'a'} finally{'2'}", "Comparable"); - assertType("try {1} catch (e : e) {'a'}", "Comparable"); - assertType("try {1} catch (e : e) {'a'} catch (e : e) {null}", "Comparable?"); + assertType("try {1} catch (e : e) {'a'} finally{'2'}", "Any"); + assertType("try {1} catch (e : e) {'a'}", "Any"); + assertType("try {1} catch (e : e) {'a'} catch (e : e) {null}", "Any?"); assertType("try {} catch (e : e) {}", "Unit"); } @@ -137,7 +137,7 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase { assertCommonSupertype("Int?", "Int", "Nothing?"); assertCommonSupertype("Nothing?", "Nothing?", "Nothing?"); - assertCommonSupertype("Comparable", "Int", "Char"); + assertCommonSupertype("Any", "Int", "Char"); assertCommonSupertype("Base_T<*>", "Base_T<*>", "Derived_T<*>"); assertCommonSupertype("Any", "Base_inT<*>", "Derived_T<*>");