Introduce FirFunctionReturnTypeMismatchChecker
This commit is contained in:
+4
-4
@@ -33,15 +33,15 @@ fun testReturnFromAnonFun() =
|
||||
|
||||
fun testReturn1() =
|
||||
run {
|
||||
return if (true) 42
|
||||
else println()
|
||||
return <!RETURN_TYPE_MISMATCH!>if (true) 42
|
||||
else println()<!>
|
||||
}
|
||||
|
||||
fun testReturn2() =
|
||||
run {
|
||||
return if (true) 42
|
||||
return <!RETURN_TYPE_MISMATCH!>if (true) 42
|
||||
else if (true) 42
|
||||
else println()
|
||||
else println()<!>
|
||||
}
|
||||
|
||||
fun testUsage1() =
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNREACHABLE_CODE -UNUSED_PARAMETER -RETURN_NOT_ALLOWED
|
||||
|
||||
fun test1() = run {
|
||||
return "OK"
|
||||
return <!RETURN_TYPE_MISMATCH!>"OK"<!>
|
||||
}
|
||||
|
||||
fun test2() = run {
|
||||
fun local(): String {
|
||||
return ""
|
||||
}
|
||||
return ""
|
||||
return <!RETURN_TYPE_MISMATCH!>""<!>
|
||||
}
|
||||
|
||||
inline fun <T, R> Iterable<T>.map(transform: (T) -> R): List<R> = null!!
|
||||
fun test3(a: List<String>, b: List<Int>) = a.map {
|
||||
if (it.length == 3) return null
|
||||
if (it.length == 4) return ""
|
||||
if (it.length == 4) return 5
|
||||
if (it.length == 3) return <!RETURN_TYPE_MISMATCH!>null<!>
|
||||
if (it.length == 4) return <!RETURN_TYPE_MISMATCH!>""<!>
|
||||
if (it.length == 4) return <!RETURN_TYPE_MISMATCH!>5<!>
|
||||
if (it.length == 4) return b
|
||||
1
|
||||
}
|
||||
@@ -24,14 +24,14 @@ fun test4() = run {
|
||||
fun test5() {
|
||||
return
|
||||
|
||||
return@test4
|
||||
<!RETURN_TYPE_MISMATCH!>return@test4<!>
|
||||
|
||||
return return@test4
|
||||
return <!RETURN_TYPE_MISMATCH!>return@test4<!>
|
||||
|
||||
return fun() { return; return@test4 "" }
|
||||
return <!RETURN_TYPE_MISMATCH!>fun() { return; return@test4 <!RETURN_TYPE_MISMATCH!>""<!> }<!>
|
||||
}
|
||||
|
||||
return
|
||||
<!RETURN_TYPE_MISMATCH!>return<!>
|
||||
3
|
||||
}
|
||||
|
||||
@@ -43,5 +43,5 @@ val foo: Int
|
||||
}
|
||||
|
||||
fun test(): Int = run {
|
||||
return ""
|
||||
return <!RETURN_TYPE_MISMATCH!>""<!>
|
||||
}
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
package f
|
||||
|
||||
fun test(a: Boolean, b: Boolean): Int {
|
||||
return if(a) {
|
||||
return <!RETURN_TYPE_MISMATCH!>if(a) {
|
||||
1
|
||||
} else {
|
||||
if (b) {
|
||||
3
|
||||
}
|
||||
}
|
||||
}<!>
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -10,7 +10,7 @@ fun f() = object : ClassData {
|
||||
fun g() = object : ClassData {
|
||||
init {
|
||||
if (true) {
|
||||
<!RETURN_NOT_ALLOWED!>return<!> 0
|
||||
<!RETURN_NOT_ALLOWED!>return<!> <!RETURN_TYPE_MISMATCH!>0<!>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -17,4 +17,4 @@ fun g() = object : ClassData {
|
||||
fun some(): Int {
|
||||
return 6
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,15 +6,15 @@ fun foo() : Int {
|
||||
doSmth()
|
||||
}
|
||||
catch (e: Exception) {
|
||||
return ""
|
||||
return <!RETURN_TYPE_MISMATCH!>""<!>
|
||||
}
|
||||
finally {
|
||||
return ""
|
||||
return <!RETURN_TYPE_MISMATCH!>""<!>
|
||||
}
|
||||
}
|
||||
|
||||
fun bar() : Int =
|
||||
try {
|
||||
<!RETURN_TYPE_MISMATCH!>try {
|
||||
doSmth()
|
||||
}
|
||||
catch (e: Exception) {
|
||||
@@ -22,7 +22,7 @@ fun bar() : Int =
|
||||
}
|
||||
finally {
|
||||
""
|
||||
}
|
||||
}<!>
|
||||
|
||||
|
||||
fun doSmth() {}
|
||||
|
||||
+4
-4
@@ -26,22 +26,22 @@ fun testResultOfLambda2() =
|
||||
|
||||
fun testReturn1() =
|
||||
run {
|
||||
return when {
|
||||
return <!RETURN_TYPE_MISMATCH!>when {
|
||||
true -> 42
|
||||
else -> println()
|
||||
}
|
||||
}<!>
|
||||
}
|
||||
|
||||
fun testReturn2() =
|
||||
run {
|
||||
return when {
|
||||
return <!RETURN_TYPE_MISMATCH!>when {
|
||||
true -> 42
|
||||
else ->
|
||||
when {
|
||||
true -> 42
|
||||
else -> println()
|
||||
}
|
||||
}
|
||||
}<!>
|
||||
}
|
||||
|
||||
fun testUsage1() =
|
||||
|
||||
Reference in New Issue
Block a user