Introduce FirFunctionReturnTypeMismatchChecker

This commit is contained in:
vldf
2021-04-03 22:58:19 +03:00
committed by Mikhail Glukhikh
parent 24f1f1221e
commit 57d2eb5da2
80 changed files with 501 additions and 238 deletions
@@ -33,5 +33,5 @@ fun baz(s: String?, r: String?): String {
fun withNull(s: String?): String {
val t = s ?: null
// Error: nullable
return t
return <!RETURN_TYPE_MISMATCH!>t<!>
}
@@ -8,7 +8,7 @@ class Immutable(val x: String?) {
class Mutable(var y: String?) {
fun foo(): String {
if (y != null) return y
if (y != null) return <!RETURN_TYPE_MISMATCH!>y<!>
return ""
}
}
@@ -3,5 +3,5 @@
fun calc(x: List<String>?, y: Int?): Int {
x?.subList(y!! - 1, y)
// y!! above should not provide smart cast here
return y
return <!RETURN_TYPE_MISMATCH!>y<!>
}
@@ -6,5 +6,5 @@ fun calc(x: String?, y: Int?): Int {
// Smart cast because of x!! in receiver
foo(x!!)?.subSequence(y!!, x.length)?.length
// No smart cast possible
return y
return <!RETURN_TYPE_MISMATCH!>y<!>
}
@@ -13,5 +13,5 @@ fun list(start: SomeObject): SomeObject {
e = e<!UNSAFE_CALL!>.<!>next()
}
// Smart cast is not possible here due to next()
return e
return <!RETURN_TYPE_MISMATCH!>e<!>
}
@@ -14,5 +14,5 @@ fun list(start: SomeObject): SomeObject {
e.doSomething()
e = e.next()
}
return e
return <!RETURN_TYPE_MISMATCH!>e<!>
}
@@ -14,5 +14,5 @@ fun list(start: SomeObject): SomeObject {
e.doSomething()
e = e.next()
}
return e
return <!RETURN_TYPE_MISMATCH!>e<!>
}