Proper errors for cases like 'is Map' supported in 'when'

This commit is contained in:
Andrey Breslav
2012-11-27 21:09:17 +04:00
parent 85f7b4069f
commit 304926005f
15 changed files with 115 additions and 1 deletions
@@ -0,0 +1,7 @@
// "Add '<*>'" "true"
public fun foo(a: Any) {
when (a) {
is java.util.ArrayList<*> -> {}
else -> {}
}
}
@@ -0,0 +1,7 @@
// "Add '<*>'" "true"
public fun foo(a: Any) {
when (a) {
is jet.List<*> -> {}
else -> {}
}
}
@@ -0,0 +1,7 @@
// "Add '<*, *>'" "true"
public fun foo(a: Any) {
when (a) {
is jet.Map<*, *> -> {}
else -> {}
}
}
@@ -0,0 +1,7 @@
// "Add '<*>'" "true"
public fun foo(a: Any) {
when (a) {
is List<*> -> {}
else -> {}
}
}
@@ -0,0 +1,7 @@
// "Add '<*, *>'" "true"
public fun foo(a: Any) {
when (a) {
is Map<*, *> -> {}
else -> {}
}
}
@@ -0,0 +1,9 @@
// "Add '<*, *>'" "false"
// "Add '<*>'" "false"
// ERROR: 2 type arguments expected
public fun foo(a: Any) {
when (a) {
is Map<Int> -> {}
else -> {}
}
}
@@ -0,0 +1,7 @@
// "Add '<*>'" "true"
public fun foo(a: Any) {
when (a) {
is java.util.Array<caret>List -> {}
else -> {}
}
}
@@ -0,0 +1,7 @@
// "Add '<*>'" "true"
public fun foo(a: Any) {
when (a) {
is jet.List<caret> -> {}
else -> {}
}
}
@@ -0,0 +1,7 @@
// "Add '<*, *>'" "true"
public fun foo(a: Any) {
when (a) {
is jet.Map<caret> -> {}
else -> {}
}
}
@@ -0,0 +1,7 @@
// "Add '<*>'" "true"
public fun foo(a: Any) {
when (a) {
is List<caret> -> {}
else -> {}
}
}
@@ -0,0 +1,7 @@
// "Add '<*, *>'" "true"
public fun foo(a: Any) {
when (a) {
is Map<caret> -> {}
else -> {}
}
}
@@ -0,0 +1,9 @@
// "Add '<*, *>'" "false"
// "Add '<*>'" "false"
// ERROR: 2 type arguments expected
public fun foo(a: Any) {
when (a) {
is <caret>Map<Int> -> {}
else -> {}
}
}