Introduce FirInitializerTypeMismatchChecker

This commit is contained in:
vldf
2021-03-01 19:29:59 +03:00
committed by Mikhail Glukhikh
parent 7ed35e5c2b
commit 24f1f1221e
114 changed files with 647 additions and 285 deletions
@@ -10,7 +10,8 @@ package testsCase1
class Case() {
fun case(v: V) {
val va: () -> String = (V)::a
// InitializertTypeCheckerMismatch bug
val va: () -> String = <!INITIALIZER_TYPE_MISMATCH!>(V)::a<!>
val vb: () -> String = (V)::b
@@ -4,32 +4,32 @@
// TESTCASE NUMBER: 1
fun case_1() {
val x: Int = null
val x: Int = <!INITIALIZER_TYPE_MISMATCH!>null<!>
}
// TESTCASE NUMBER: 2
fun case_2() {
val x: Any = null
val x: Any = <!INITIALIZER_TYPE_MISMATCH!>null<!>
}
// TESTCASE NUMBER: 3
fun case_3() {
val x: Nothing = null
val x: Nothing = <!INITIALIZER_TYPE_MISMATCH!>null<!>
}
// TESTCASE NUMBER: 4
fun case_4() {
var x: Int = null
var x: Int = <!INITIALIZER_TYPE_MISMATCH!>null<!>
}
// TESTCASE NUMBER: 5
fun case_5() {
var x: Any = null
var x: Any = <!INITIALIZER_TYPE_MISMATCH!>null<!>
}
// TESTCASE NUMBER: 6
fun case_6() {
var x: Nothing = null
var x: Nothing = <!INITIALIZER_TYPE_MISMATCH!>null<!>
}
// TESTCASE NUMBER: 7
@@ -47,7 +47,7 @@ fun case_8() {
// TESTCASE NUMBER: 9
fun case_9() {
val x = null
val y: Int = x
val y: Int = <!INITIALIZER_TYPE_MISMATCH!>x<!>
}
// TESTCASE NUMBER: 10
@@ -12,7 +12,7 @@ fun case_1(x: Class?) {
// TESTCASE NUMBER: 2
fun case_2() {
var x: Class? = 10
var x: Class? = <!INITIALIZER_TYPE_MISMATCH!>10<!>
x!!
<!NONE_APPLICABLE!>x<!>(if (true) {x=null;0} else 0, <!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
@@ -5,23 +5,23 @@
// TESTCASE NUMBER: 1
class Case1(val x: Any?) {
val y = x!!
val z: Any = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>x<!>
val z: Any = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?"), INITIALIZER_TYPE_MISMATCH!>x<!>
}
// TESTCASE NUMBER: 2
class Case2(val y: Any?): ClassWithCostructorParam(y!!) {
val z: Any = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>y<!>
val z: Any = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?"), INITIALIZER_TYPE_MISMATCH!>y<!>
}
// TESTCASE NUMBER: 3
class Case3(val y: Any?): ClassWithCostructorParam(y as Class) {
val z: Class = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>y<!>
val z: Class = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?"), INITIALIZER_TYPE_MISMATCH!>y<!>
}
// TESTCASE NUMBER: 4
class Case4(val y: Any?): ClassWithCostructorParam(y!!) {
init {
val z: Any = y
val z: Any = <!INITIALIZER_TYPE_MISMATCH!>y<!>
}
}
@@ -13,5 +13,5 @@ fun case_1() {
val strs = list as MutableList<String>
strs.add("two")
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.String> & kotlin.collections.MutableList<kotlin.Int> & kotlin.collections.MutableList<kotlin.String>")!>list<!>
val s: String = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.String> & kotlin.collections.MutableList<kotlin.Int> & kotlin.collections.MutableList<kotlin.String>")!>list<!>[0]
val s: String = <!INITIALIZER_TYPE_MISMATCH!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.String> & kotlin.collections.MutableList<kotlin.Int> & kotlin.collections.MutableList<kotlin.String>")!>list<!>[0]<!>
}