[FIR] Implement IMPLICIT_NOTHING_*_TYPE diagnostics

This commit is contained in:
Dmitriy Novozhilov
2022-11-09 18:44:57 +02:00
committed by Space Team
parent 0e84bf2053
commit 1b42298025
18 changed files with 104 additions and 23 deletions
@@ -30,13 +30,13 @@ fun testReturnFromAnonFun() =
return <!RETURN_TYPE_MISMATCH!>if (true) 42 else println()<!>
})
fun testReturn1() =
fun <!IMPLICIT_NOTHING_RETURN_TYPE!>testReturn1<!>() =
run {
return <!RETURN_TYPE_MISMATCH!>if (true) 42
else println()<!>
}
fun testReturn2() =
fun <!IMPLICIT_NOTHING_RETURN_TYPE!>testReturn2<!>() =
run {
return <!RETURN_TYPE_MISMATCH!>if (true) 42
else if (true) 42
@@ -1,10 +1,10 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNREACHABLE_CODE -UNUSED_PARAMETER -RETURN_NOT_ALLOWED
fun test1() = run {
fun <!IMPLICIT_NOTHING_RETURN_TYPE!>test1<!>() = run {
return <!RETURN_TYPE_MISMATCH!>"OK"<!>
}
fun test2() = run {
fun <!IMPLICIT_NOTHING_RETURN_TYPE!>test2<!>() = run {
fun local(): String {
return ""
}
@@ -14,7 +14,7 @@ fun test() {
val a : Nothing = <!RETURN_NOT_ALLOWED!>return<!> 1
val b = <!RETURN_NOT_ALLOWED!>return<!> 1
val <!IMPLICIT_NOTHING_PROPERTY_TYPE!>b<!> = <!RETURN_NOT_ALLOWED!>return<!> 1
val c = doSmth(if (true) 3 else <!RETURN_NOT_ALLOWED!>return<!>)
@@ -24,7 +24,7 @@ fun testResultOfLambda2() =
}
}
fun testReturn1() =
fun <!IMPLICIT_NOTHING_RETURN_TYPE!>testReturn1<!>() =
run {
return <!RETURN_TYPE_MISMATCH!>when {
true -> 42
@@ -32,7 +32,7 @@ fun testReturn1() =
}<!>
}
fun testReturn2() =
fun <!IMPLICIT_NOTHING_RETURN_TYPE!>testReturn2<!>() =
run {
return <!RETURN_TYPE_MISMATCH!>when {
true -> 42
@@ -80,4 +80,4 @@ val testUsage5: Any get() =
when {
true -> 42
else -> println()
}
}