No arithmetic for Chars (except for '-')

This commit is contained in:
Andrey Breslav
2011-11-12 18:37:26 +04:00
parent 89fa7cd29a
commit ff62489233
3 changed files with 7 additions and 6 deletions
+4 -4
View File
@@ -499,7 +499,7 @@ class Char : Number, Comparable<Char> {
fun plus(other : Int) : Int
fun plus(other : Short) : Int
fun plus(other : Byte) : Int
fun plus(other : Char) : Int
// fun plus(other : Char) : Int
fun minus(other : Double) : Double
fun minus(other : Float) : Float
@@ -515,7 +515,7 @@ class Char : Number, Comparable<Char> {
fun times(other : Int) : Int
fun times(other : Short) : Int
fun times(other : Byte) : Int
fun times(other : Char) : Int
// fun times(other : Char) : Int
fun div(other : Double) : Double
fun div(other : Float) : Float
@@ -523,7 +523,7 @@ class Char : Number, Comparable<Char> {
fun div(other : Int) : Int
fun div(other : Short) : Int
fun div(other : Byte) : Int
fun div(other : Char) : Int
// fun div(other : Char) : Int
fun mod(other : Double) : Double
fun mod(other : Float) : Float
@@ -531,7 +531,7 @@ class Char : Number, Comparable<Char> {
fun mod(other : Int) : Int
fun mod(other : Short) : Int
fun mod(other : Byte) : Int
fun mod(other : Char) : Int
// fun mod(other : Char) : Int
fun rangeTo(other : Double) : Range<Double>
fun rangeTo(other : Float) : Range<Float>
@@ -104,7 +104,8 @@ public class PrimitiveTypesTest extends CodegenTestCase {
}
public void testChar() throws Exception {
binOpTest("fun foo(a: Char, b: Char): Int = a + b", 'A', (char) 3, (int) 'D');
// '+' is not available for Chars
binOpTest("fun foo(a: Char, b: Char): Int = a - b", 'D', (char) 3, (int) 'A');
}
public void testFloat() throws Exception {
@@ -395,7 +395,7 @@ public class JetTypeCheckerTest extends JetLiteFixture {
assertType("'1'.plus(1.flt)", "Float");
assertType("'1'.plus(1.lng)", "Long");
assertType("'1'.plus(1)", "Int");
assertType("'1'.plus('1')", "Int");
assertType("'1'.minus('1')", "Int"); // Plus is not available for char
assertType("(1:Short).plus(1.dbl)", "Double");
assertType("(1:Short).plus(1.flt)", "Float");