[FIR] Add NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY diagnostic

This commit is contained in:
Andrey Zinovyev
2021-07-08 15:29:31 +03:00
committed by teamcityserver
parent 151478aa27
commit a6984c5198
97 changed files with 939 additions and 1151 deletions
@@ -1,13 +0,0 @@
interface X {
fun f(): Boolean
}
val m = object : X {
override fun f(): Boolean {
}
fun foo() {
fun local(): Int {
}
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface X {
fun f(): Boolean
}
@@ -1,17 +0,0 @@
package f
//KT-3444 Front-end doesn't check if local function or function of anonymous class returns value
fun box(): Int {
fun local(): Int {
}
return local()
}
fun main() {
box()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package f
@@ -7,10 +7,10 @@ class A {}
package test.p; class C {fun f() {}}
// FILE: c.kt
package test.p; open class G<T> {open fun f(): T {} fun a() {}}
package test.p; open class G<T> {open fun f(): T {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!> fun a() {}}
// FILE: d.kt
package test.p; class G2<E> : <!SUPERTYPE_NOT_INITIALIZED!>G<E><!> { fun g() : E {} override fun f() : E {}}
package test.p; class G2<E> : <!SUPERTYPE_NOT_INITIALIZED!>G<E><!> { fun g() : E {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!> override fun f() : E {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>}
// FILE: e.kt
package test.p; fun foo() {}
@@ -3,4 +3,4 @@ fun illegalWhenBlock(a: Any): Int {
is Int -> return a
is String -> return a.length
}
}
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
@@ -1,13 +0,0 @@
fun box() {
fun local():Int {
}
}
interface X {
fun f(): Boolean
}
val m = object : X {
override fun f(): Boolean {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
fun box() {
fun local():Int {
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
@@ -10,19 +10,19 @@ val closure = {
}
fun h(): Int { // error: should be NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY
}
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
}
class A {
init {
fun foo(): Int {
}
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
val closure = {
val x = ""
fun local(): Int {
}
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
}
val y = ""
@@ -7,7 +7,7 @@ fun f() {
fun loc1(): Int {
val x1_ = "" // ok: unused
}
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
}
fun f() {
@@ -15,12 +15,12 @@ fun f() {
fun loc2(): Int {
val x2_ = "" // error: should be UNUSED_VARIABLE
}
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
}
val v: String
get() {
val x3 = "" // ok: unused
}
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
}
}