Fix CCE in generated code that happens when comparing boxed chars

The problem was that when obtaining char from the wrapper,
codegen used int as expected type that led
to a ClassCastException: java.lang.Character cannot be cast to java.lang.Number

The solution is using coercion to chars, it's still correct,
because of implicit widening coercion in JVM from C to I

 #KT-15105 Fixed
This commit is contained in:
Denis Zharkov
2017-02-20 12:53:12 +03:00
parent 378acbf7ec
commit 85f9e2e47b
7 changed files with 41 additions and 1 deletions
@@ -0,0 +1,16 @@
fun <T> id(x: T) = x
fun box(): String {
if (id('a') > id('b')) return "fail 1"
if (id('a') >= id('b')) return "fail 2"
if (id('b') < id('a')) return "fail 3"
if (id('b') <= id('a')) return "fail 4"
val x = id('a').compareTo('b')
if (x != -1) return "fail 5"
val y = id('b').compareTo('a')
if (y != 1) return "fail 6"
return "OK"
}