[FIR] Fix tests (ARGUMENT_TYPE_MISMATCH instead of INCOMPATIBLE_CANDIDATE)

This commit is contained in:
Ivan Kochurkin
2021-04-06 01:35:30 +03:00
committed by TeamCityServer
parent 4ffab5fe5a
commit ad9b962536
461 changed files with 1239 additions and 1246 deletions
@@ -5,9 +5,9 @@ fun foo() {
val x: Int? = null
if (x != null && bar(x) == 0) bar(bar(x))
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
if (x == null || bar(x) == 0) bar(<!INAPPLICABLE_CANDIDATE!>bar<!>(x))
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
if (x == null || bar(x) == 0) bar(bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>))
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
if (x is Int && bar(x)*bar(x) == bar(x)) bar(x)
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
}
@@ -4,10 +4,10 @@ fun foo() {
val x: Int? = null
val a = Array<Int>(3, {0})
if (x != null) bar(a[x]) else bar(<!INAPPLICABLE_CANDIDATE!>a[x]<!>)
if (x != null) bar(a[x]) else bar(a[<!ARGUMENT_TYPE_MISMATCH!>x<!>])
bar(a[if (x == null) 0 else x])
bar(<!INAPPLICABLE_CANDIDATE!>a[x]<!>)
<!INAPPLICABLE_CANDIDATE!>"123"[x]<!>;
bar(a[<!ARGUMENT_TYPE_MISMATCH!>x<!>])
"123"[<!ARGUMENT_TYPE_MISMATCH!>x<!>];
if (x != null) "123"[x];
}
@@ -7,7 +7,7 @@ fun foo() {
if (x != null) bar(a[<!DEBUG_INFO_SMARTCAST!>x<!>]) else bar(a[<!DEBUG_INFO_CONSTANT, TYPE_MISMATCH!>x<!>])
bar(a[if (x == null) 0 else <!DEBUG_INFO_SMARTCAST!>x<!>])
bar(a[<!TYPE_MISMATCH!>x<!>])
"123"[<!TYPE_MISMATCH!>x<!>];
if (x != null) "123"[<!DEBUG_INFO_SMARTCAST!>x<!>];
}
@@ -6,6 +6,6 @@ fun foo() {
val x: Int? = null
bar(1 + (if (x == null) 0 else x))
<!INAPPLICABLE_CANDIDATE!>bar<!>(if (x == null) x else x)
bar(<!ARGUMENT_TYPE_MISMATCH!>if (x == null) x else x<!>)
if (x != null) bar(x + x/(x-x*x))
}
@@ -2,7 +2,7 @@
fun foo1(x: Number, cond: Boolean): Boolean {
val result = cond && ((x as Int) == 42)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(x)
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
return result
}
@@ -14,7 +14,7 @@ fun foo2(x: Number, cond: Boolean): Boolean {
fun foo3(x: Number, cond: Boolean): Boolean {
val result = cond || ((x as Int) == 42)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(x)
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
return result
}
@@ -11,6 +11,6 @@ fun elvis(x: Number?): Int {
fun elvisWithRHSTypeInfo(x: Number?): Any? {
val result = x ?: x!!
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int?>(x)
checkSubtype<Int?>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
return result
}
@@ -17,14 +17,14 @@ fun foo() {
if (x == null) bar(x) else bar(x)
bar(bar(x))
} else if (x == null) {
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
if (x != null) {
bar(x)
if (x == null) bar(x)
if (x == null) bar(x) else bar(x)
bar(bar(x) + bar(x))
} else if (x == null) {
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
}
}
@@ -4,13 +4,13 @@ fun foo() {
val x: Int? = null
do {
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
} while (x == null)
bar(x)
val y: Int? = null
do {
<!INAPPLICABLE_CANDIDATE!>bar<!>(y)
bar(<!ARGUMENT_TYPE_MISMATCH!>y<!>)
} while (y != null)
<!INAPPLICABLE_CANDIDATE!>bar<!>(y)
bar(<!ARGUMENT_TYPE_MISMATCH!>y<!>)
}
@@ -7,7 +7,7 @@ fun foo() {
bar(<!TYPE_MISMATCH!>x<!>)
} while (x == null)
bar(<!DEBUG_INFO_SMARTCAST!>x<!>)
val y: Int? = null
do {
bar(<!TYPE_MISMATCH!>y<!>)
@@ -16,5 +16,5 @@ fun doWhileWithBreak(x: Int?, y0: Int) {
y++
if (y > 0) break
} while (x!! == y)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(x)
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
}
@@ -5,5 +5,5 @@ fun foo() {
bar(x ?: 0)
if (x != null) bar(x ?: x)
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
}
@@ -1,23 +1,23 @@
fun bar(x: Int) = x + 1
fun f1(x: Int?) {
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
if (x != null) bar(x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
if (x == null) bar(x!!)
}
fun f2(x: Int?) {
fun f2(x: Int?) {
if (x != null) else x!!
}
fun f3(x: Int?) {
fun f3(x: Int?) {
if (x != null) bar(x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>) else x!!
}
fun f4(x: Int?) {
fun f4(x: Int?) {
if (x == null) x!! else bar(x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
}
fun f5(x: Int?) {
fun f5(x: Int?) {
if (x == null) else bar(x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
}
@@ -6,18 +6,18 @@ fun f1(x: Int?) {
if (x == null) <!UNREACHABLE_CODE!>bar(<!><!ALWAYS_NULL!>x<!>!!<!UNREACHABLE_CODE!>)<!>
}
fun f2(x: Int?) {
fun f2(x: Int?) {
if (x != null) else <!ALWAYS_NULL!>x<!>!!
}
fun f3(x: Int?) {
fun f3(x: Int?) {
if (x != null) bar(x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>) else <!ALWAYS_NULL!>x<!>!!
}
fun f4(x: Int?) {
fun f4(x: Int?) {
if (x == null) <!ALWAYS_NULL!>x<!>!! else bar(x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
}
fun f5(x: Int?) {
fun f5(x: Int?) {
if (x == null) else bar(x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
}
@@ -5,7 +5,7 @@ fun foo() {
val a = Array<Int>(3, {0})
for (p in a) {
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
if (x == null) continue
bar(x)
for (q in a) {
@@ -15,7 +15,7 @@ fun foo() {
}
for (p in a) {
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
if (x == null) break
bar(x)
}
@@ -3,7 +3,7 @@ fun bar(x: Int) = x + 1
fun foo() {
val x: Int? = null
fun baz() = <!INAPPLICABLE_CANDIDATE!>bar<!>(x)
fun baz() = bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
fun quux() = if (x != null) bar(x) else baz()
fun quuux() = bar(if (x == null) 0 else x)
}
@@ -25,7 +25,7 @@ fun ifThenElse(x: Int?) {
fun ifIs(x: Int?, cond: Boolean) {
if ((x is Int) == cond) {
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(x)
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
}
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(x)
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
}
@@ -6,7 +6,7 @@ fun foo() {
bar(if (x == null) 0 else x)
if (x == null) {
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
return
} else {
bar(x)
@@ -17,14 +17,14 @@ fun foo() {
if (y is Int) {
bar(y)
} else {
<!INAPPLICABLE_CANDIDATE!>bar<!>(y)
bar(<!ARGUMENT_TYPE_MISMATCH!>y<!>)
return
}
bar(y)
val z: Int? = null
if (z != null) bar(z)
<!INAPPLICABLE_CANDIDATE!>bar<!>(z)
bar(<!ARGUMENT_TYPE_MISMATCH!>z<!>)
bar(z!!)
if (z != null) bar(z<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
}
@@ -3,7 +3,7 @@ fun bar(x: Int): Int = x + 1
fun foo() {
val x: Int? = null
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
if (x != 2) {
if (x == null) return
2<!OVERLOAD_RESOLUTION_AMBIGUITY!>+<!><!SYNTAX!><!>
@@ -16,17 +16,17 @@ fun dataFlowInfoAnd(a: Array<Number>) {
if (a[15] is Int) { if (a[16] is Int) { if (a[17] is Int) { if (a[18] is Int) { if (a[19] is Int) {
if (a[20] is Int) { if (a[21] is Int) { if (a[22] is Int) { if (a[23] is Int) { if (a[24] is Int) {
if (a[25] is Int) { if (a[26] is Int) { if (a[27] is Int) { if (a[28] is Int) { if (a[29] is Int) {
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(a[0])
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!>a[0]<!>)
} } } } } } } } } } } } } } } } } } } } } } } } } } } } } }
}
fun dataFlowInfoOr(a: Array<Number>) {
if (a[0] is Int || a[1] is Int || a[2] is Int || a[3] is Int || a[4] is Int || a[5] is Int || a[6] is Int || a[7] is Int || a[8] is Int || a[9] is Int ||
a[10] is Int || a[11] is Int || a[12] is Int || a[13] is Int || a[14] is Int || a[15] is Int || a[16] is Int || a[17] is Int || a[18] is Int || a[19] is Int ||
a[20] is Int || a[21] is Int || a[22] is Int || a[23] is Int || a[24] is Int || a[25] is Int || a[26] is Int || a[27] is Int || a[28] is Int || a[29] is Int ||
a[30] is Int || a[31] is Int || a[32] is Int || a[33] is Int || a[34] is Int || a[35] is Int || a[36] is Int || a[37] is Int || a[38] is Int || a[39] is Int ||
a[40] is Int || a[41] is Int || a[42] is Int || a[43] is Int || a[44] is Int || a[45] is Int || a[46] is Int || a[47] is Int || a[48] is Int || a[49] is Int ||
if (a[0] is Int || a[1] is Int || a[2] is Int || a[3] is Int || a[4] is Int || a[5] is Int || a[6] is Int || a[7] is Int || a[8] is Int || a[9] is Int ||
a[10] is Int || a[11] is Int || a[12] is Int || a[13] is Int || a[14] is Int || a[15] is Int || a[16] is Int || a[17] is Int || a[18] is Int || a[19] is Int ||
a[20] is Int || a[21] is Int || a[22] is Int || a[23] is Int || a[24] is Int || a[25] is Int || a[26] is Int || a[27] is Int || a[28] is Int || a[29] is Int ||
a[30] is Int || a[31] is Int || a[32] is Int || a[33] is Int || a[34] is Int || a[35] is Int || a[36] is Int || a[37] is Int || a[38] is Int || a[39] is Int ||
a[40] is Int || a[41] is Int || a[42] is Int || a[43] is Int || a[44] is Int || a[45] is Int || a[46] is Int || a[47] is Int || a[48] is Int || a[49] is Int ||
a[50] is Int || a[51] is Int || a[52] is Int || a[53] is Int || a[54] is Int || a[55] is Int || a[56] is Int || a[57] is Int || a[58] is Int || a[59] is Int) {
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(a[0])
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!>a[0]<!>)
}
}
@@ -21,11 +21,11 @@ fun dataFlowInfoAnd(a: Array<Number>) {
}
fun dataFlowInfoOr(a: Array<Number>) {
if (a[0] is Int || a[1] is Int || a[2] is Int || a[3] is Int || a[4] is Int || a[5] is Int || a[6] is Int || a[7] is Int || a[8] is Int || a[9] is Int ||
a[10] is Int || a[11] is Int || a[12] is Int || a[13] is Int || a[14] is Int || a[15] is Int || a[16] is Int || a[17] is Int || a[18] is Int || a[19] is Int ||
a[20] is Int || a[21] is Int || a[22] is Int || a[23] is Int || a[24] is Int || a[25] is Int || a[26] is Int || a[27] is Int || a[28] is Int || a[29] is Int ||
a[30] is Int || a[31] is Int || a[32] is Int || a[33] is Int || a[34] is Int || a[35] is Int || a[36] is Int || a[37] is Int || a[38] is Int || a[39] is Int ||
a[40] is Int || a[41] is Int || a[42] is Int || a[43] is Int || a[44] is Int || a[45] is Int || a[46] is Int || a[47] is Int || a[48] is Int || a[49] is Int ||
if (a[0] is Int || a[1] is Int || a[2] is Int || a[3] is Int || a[4] is Int || a[5] is Int || a[6] is Int || a[7] is Int || a[8] is Int || a[9] is Int ||
a[10] is Int || a[11] is Int || a[12] is Int || a[13] is Int || a[14] is Int || a[15] is Int || a[16] is Int || a[17] is Int || a[18] is Int || a[19] is Int ||
a[20] is Int || a[21] is Int || a[22] is Int || a[23] is Int || a[24] is Int || a[25] is Int || a[26] is Int || a[27] is Int || a[28] is Int || a[29] is Int ||
a[30] is Int || a[31] is Int || a[32] is Int || a[33] is Int || a[34] is Int || a[35] is Int || a[36] is Int || a[37] is Int || a[38] is Int || a[39] is Int ||
a[40] is Int || a[41] is Int || a[42] is Int || a[43] is Int || a[44] is Int || a[45] is Int || a[46] is Int || a[47] is Int || a[48] is Int || a[49] is Int ||
a[50] is Int || a[51] is Int || a[52] is Int || a[53] is Int || a[54] is Int || a[55] is Int || a[56] is Int || a[57] is Int || a[58] is Int || a[59] is Int) {
checkSubtype<Int>(<!TYPE_MISMATCH!>a[0]<!>)
}
@@ -7,7 +7,7 @@ class A {
fun foo() {
val x: Int? = null
A().<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
A().bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
if (x == null) return
A().bar(x)
}
@@ -5,14 +5,14 @@ fun bar(x: Int): Int = x + 1
fun foo(): Int {
val x: Int? = null
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
if (x != null) return x
val y: Int? = null
if (y == null) return if (y != null) y else y
val z: Int? = null
if (z != null) return if (z == null) z else z
return z
}
@@ -7,12 +7,12 @@ fun foo(): Int {
bar(<!TYPE_MISMATCH!>x<!>)
if (x != null) return x
val y: Int? = null
if (y == null) return if (<!SENSELESS_COMPARISON!><!DEBUG_INFO_CONSTANT!>y<!> != null<!>) y else <!DEBUG_INFO_CONSTANT, TYPE_MISMATCH!>y<!>
val z: Int? = null
if (z != null) return if (<!SENSELESS_COMPARISON!>z == null<!>) z else z
return <!DEBUG_INFO_CONSTANT, TYPE_MISMATCH!>z<!>
}
@@ -8,14 +8,14 @@ class Derived : Base() {
fun foo() {
val x: Int? = null
super.<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
this.<!INAPPLICABLE_CANDIDATE!>baz<!>(x)
super.bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
this.baz(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
if (x == null) return
super.bar(x)
this.baz(x)
val y: Int? = null
if (y != null) super.bar(this.baz(y))
else this.baz(super.<!INAPPLICABLE_CANDIDATE!>bar<!>(y))
else this.baz(super.bar(<!ARGUMENT_TYPE_MISMATCH!>y<!>))
}
}
@@ -3,7 +3,7 @@ fun bar(x: Int): RuntimeException = RuntimeException(x.toString())
fun foo() {
val x: Int? = null
if (x == null) throw <!INAPPLICABLE_CANDIDATE!>bar<!>(x)
if (x == null) throw bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
throw bar(x)
throw bar(x)
}
@@ -2,8 +2,8 @@ fun bar(x: Int): Int = x + 1
fun foo() {
val x: Int? = null
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
if (x == null) return
try {
bar(x)
@@ -2,7 +2,7 @@ fun bar(x: Int): Int = x + 1
fun foo() {
val x: Int? = null
bar(<!TYPE_MISMATCH!>x<!>)
if (x == null) return
try {
@@ -14,7 +14,7 @@ fun tryCatchFinally(x: Int?) {
} catch (e: Exception) {
x!!
} finally {
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(x)
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
x!!
}
checkSubtype<Int>(x)
@@ -6,7 +6,7 @@ fun foo(x: Number, y: Int) {
y -> {}
else -> {}
}
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(x)
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
}
fun bar(x: Number) {
@@ -14,7 +14,7 @@ fun bar(x: Number) {
is Int -> checkSubtype<Int>(x)
else -> {}
}
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(x)
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
}
fun whenWithoutSubject(x: Number) {
@@ -22,5 +22,5 @@ fun whenWithoutSubject(x: Number) {
(x is Int) -> checkSubtype<Int>(x)
else -> {}
}
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(x)
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
}
@@ -3,20 +3,20 @@ fun bar(x: Int): Int = x + 1
fun foo() {
val x: Int? = null
while (x == null) {
<!INAPPLICABLE_CANDIDATE!>bar<!>(x)
bar(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
}
bar(x)
val y: Int? = null
while (y != null) {
bar(y)
}
<!INAPPLICABLE_CANDIDATE!>bar<!>(y)
bar(<!ARGUMENT_TYPE_MISMATCH!>y<!>)
val z: Int? = null
while (z == null) {
<!INAPPLICABLE_CANDIDATE!>bar<!>(z)
bar(<!ARGUMENT_TYPE_MISMATCH!>z<!>)
break
}
<!INAPPLICABLE_CANDIDATE!>bar<!>(z)
bar(<!ARGUMENT_TYPE_MISMATCH!>z<!>)
}
@@ -6,13 +6,13 @@ fun foo() {
bar(<!DEBUG_INFO_CONSTANT, TYPE_MISMATCH!>x<!>)
}
bar(<!DEBUG_INFO_SMARTCAST!>x<!>)
val y: Int? = null
while (y != null) {
bar(<!DEBUG_INFO_SMARTCAST!>y<!>)
}
bar(<!DEBUG_INFO_CONSTANT, TYPE_MISMATCH!>y<!>)
val z: Int? = null
while (z == null) {
bar(<!DEBUG_INFO_CONSTANT, TYPE_MISMATCH!>z<!>)
@@ -22,5 +22,5 @@ fun whileWithNoCondition(x: Int?) {
while (<!SYNTAX!><!>) {
x!!
}
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(x)
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
}