Introduce warning about implicitly inferred Nothing as a type parameter

^KT-20849 Fixed
This commit is contained in:
victor.petukhov
2019-03-13 16:28:51 +03:00
parent 1f98eaa27b
commit 70c35f4186
26 changed files with 188 additions and 24 deletions
@@ -1661,12 +1661,12 @@ fun Nothing.case_63() {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing"), DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>this<!>.hashCode()
hashCode()
apply {
<!IMPLICIT_NOTHING_AS_TYPE_PARAMETER!>apply<!> {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing"), DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>this<!>
<!UNREACHABLE_CODE!>hashCode()<!>
<!UNREACHABLE_CODE!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing"), DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>this<!>.hashCode()<!>
}
also {
<!IMPLICIT_NOTHING_AS_TYPE_PARAMETER!>also<!> {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>it<!>
<!UNREACHABLE_CODE!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>it<!>.hashCode()<!>
}
@@ -228,11 +228,11 @@ fun case_7(value_1: String?) {
}
when {
value_1.case_7_10() == null -> println(value_1)
<!DEBUG_INFO_CONSTANT!>value_1<!>.case_7_10() != null -> println(<!DEBUG_INFO_CONSTANT!>value_1<!>)
<!DEBUG_INFO_CONSTANT!>value_1<!>.<!IMPLICIT_NOTHING_AS_TYPE_PARAMETER!>case_7_10<!>() != null -> println(<!DEBUG_INFO_CONSTANT!>value_1<!>)
}
when {
value_1.case_7_11() != null -> println(value_1)
<!DEBUG_INFO_CONSTANT!>value_1<!>.case_7_11() == null -> println(<!DEBUG_INFO_CONSTANT!>value_1<!>)
<!DEBUG_INFO_CONSTANT!>value_1<!>.<!IMPLICIT_NOTHING_AS_TYPE_PARAMETER!>case_7_11<!>() == null -> println(<!DEBUG_INFO_CONSTANT!>value_1<!>)
}
}
@@ -89,7 +89,7 @@ fun case_3(value_1: Int?, value_2: Any?) {
if (!value_1.case_3(value_1, value_2 is Number?)) {
println(<!DEBUG_INFO_SMARTCAST!>value_2<!>?.toByte())
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.inv())
} else if (<!DEBUG_INFO_CONSTANT!>value_1<!>.case_3(<!DEBUG_INFO_CONSTANT!>value_1<!>, value_2 is Number?)) {
} else if (<!DEBUG_INFO_CONSTANT!>value_1<!>.<!IMPLICIT_NOTHING_AS_TYPE_PARAMETER!>case_3<!>(<!DEBUG_INFO_CONSTANT!>value_1<!>, value_2 is Number?)) {
println(<!DEBUG_INFO_CONSTANT!>value_1<!>)
} else {
<!UNREACHABLE_CODE!>println(<!><!DEBUG_INFO_SMARTCAST!>value_1<!><!UNREACHABLE_CODE!>.inv())<!>