[FIR] Implement NULL_FOR_NONNULL_TYPE diagnostics, fix tests

This commit is contained in:
Ivan Kochurkin
2021-04-13 20:17:48 +03:00
parent 9336e4b09b
commit 4353365968
54 changed files with 130 additions and 251 deletions
@@ -4,44 +4,44 @@
// TESTCASE NUMBER: 1
fun case_1() {
val x: Int = <!INITIALIZER_TYPE_MISMATCH!>null<!>
val x: Int = <!NULL_FOR_NONNULL_TYPE!>null<!>
}
// TESTCASE NUMBER: 2
fun case_2() {
val x: Any = <!INITIALIZER_TYPE_MISMATCH!>null<!>
val x: Any = <!NULL_FOR_NONNULL_TYPE!>null<!>
}
// TESTCASE NUMBER: 3
fun case_3() {
val x: Nothing = <!INITIALIZER_TYPE_MISMATCH!>null<!>
val x: Nothing = <!NULL_FOR_NONNULL_TYPE!>null<!>
}
// TESTCASE NUMBER: 4
fun case_4() {
var x: Int = <!INITIALIZER_TYPE_MISMATCH!>null<!>
var x: Int = <!NULL_FOR_NONNULL_TYPE!>null<!>
}
// TESTCASE NUMBER: 5
fun case_5() {
var x: Any = <!INITIALIZER_TYPE_MISMATCH!>null<!>
var x: Any = <!NULL_FOR_NONNULL_TYPE!>null<!>
}
// TESTCASE NUMBER: 6
fun case_6() {
var x: Nothing = <!INITIALIZER_TYPE_MISMATCH!>null<!>
var x: Nothing = <!NULL_FOR_NONNULL_TYPE!>null<!>
}
// TESTCASE NUMBER: 7
fun case_7() {
val x: Int
x = null
x = <!NULL_FOR_NONNULL_TYPE!>null<!>
}
// TESTCASE NUMBER: 8
fun case_8() {
var x: Int = 10
x = null
x = <!NULL_FOR_NONNULL_TYPE!>null<!>
}
// TESTCASE NUMBER: 9
@@ -43,7 +43,7 @@ class Case8 {
}
// TESTCASE NUMBER: 9
fun case_9(): Any = <!RETURN_TYPE_MISMATCH!>null<!>
fun case_9(): Any = <!NULL_FOR_NONNULL_TYPE!>null<!>
// TESTCASE NUMBER: 10
fun case_10(x: Int, y: Boolean): Any = <!RETURN_TYPE_MISMATCH!>if (y) x else null<!>
@@ -57,10 +57,10 @@ class Case12 {
var y: Any
var z: Any
init {
x = null
y = null
x = <!NULL_FOR_NONNULL_TYPE!>null<!>
y = <!NULL_FOR_NONNULL_TYPE!>null<!>
z = 10
z = null
z = <!NULL_FOR_NONNULL_TYPE!>null<!>
}
}
@@ -6,7 +6,7 @@ import kotlin.contracts.*
// TESTCASE NUMBER: 1
fun case_1(): Boolean? {
contract { <!ERROR_IN_CONTRACT_DESCRIPTION!>returnsNotNull() implies (<!ARGUMENT_TYPE_MISMATCH!>null<!>)<!> }
contract { <!ERROR_IN_CONTRACT_DESCRIPTION!>returnsNotNull() implies (<!NULL_FOR_NONNULL_TYPE!>null<!>)<!> }
return true
}