Merge pull request #85 from udalov/kt2146

Kt2146
This commit is contained in:
Svetlana Isakova
2012-06-22 05:23:08 -07:00
5 changed files with 103 additions and 25 deletions
@@ -11,7 +11,7 @@ fun foo() {
}
when (x) {
0 -> { if (x == null) return }
0 -> { if (<!SENSELESS_COMPARISON!>x == null<!>) return }
else -> { if (x == null) return }
}
bar(x)
@@ -0,0 +1,53 @@
//KT-2146 Nullability casts in when.
package kt2146
fun f1(s: Int?): Int {
return when (s) {
null -> 3
else -> s
}
}
fun f2(s: Int?): Int {
return when (s) {
!is Int -> <!TYPE_MISMATCH!>s<!>
else -> s
}
}
fun f3(s: Int?): Int {
return when (s) {
is Int -> s
else -> <!TYPE_MISMATCH!>s<!>
}
}
fun f4(s: Int?): Int {
return when {
s == 4 -> s
s == null -> <!TYPE_MISMATCH!>s<!>
else -> s
}
}
fun f5(s: Int?): Int {
return when (s) {
s!! -> s
s -> <!TYPE_MISMATCH!>s<!>
else -> 0
}
}
fun f6(s: Int?): Int {
return when {
s is Int -> s
else -> <!TYPE_MISMATCH!>s<!>
}
}
fun f7(s: Int?): Int {
return when {
s !is Int -> <!TYPE_MISMATCH!>s<!>
else -> s
}
}
@@ -1,7 +1,7 @@
fun set(<!UNUSED_PARAMETER!>key<!> : String, <!UNUSED_PARAMETER!>value<!> : String) {
val a : String? = ""
when (a) {
"" -> a<!UNSAFE_CALL!>.<!>get(0)
"" -> a.get(0)
is String, is Any -> a.compareTo("")
else -> a.toString()
}