Introduce FirInitializerTypeMismatchChecker
This commit is contained in:
+3
-3
@@ -4,13 +4,13 @@ fun test(bal: Array<Int>) {
|
||||
|
||||
val a: () -> Unit = { bar += 4 }
|
||||
|
||||
val b: () -> Int = { bar = 4 }
|
||||
val b: () -> Int = <!INITIALIZER_TYPE_MISMATCH!>{ bar = 4 }<!>
|
||||
|
||||
val c: () -> <!UNRESOLVED_REFERENCE!>UNRESOLVED<!> = { bal[2] = 3 }
|
||||
|
||||
val d: () -> Int = { bar += 4 }
|
||||
val d: () -> Int = <!INITIALIZER_TYPE_MISMATCH!>{ bar += 4 }<!>
|
||||
|
||||
val e: Unit = run { bar += 4 }
|
||||
|
||||
val f: Int = run { bar += 4 }
|
||||
val f: Int = <!INITIALIZER_TYPE_MISMATCH!>run { bar += 4 }<!>
|
||||
}
|
||||
|
||||
+12
-12
@@ -7,33 +7,33 @@ fun <T>id(x: T) = x
|
||||
|
||||
// Before the fix, there wasn't any type mismatch error in NI due to result type not being a subtype of expected type
|
||||
fun main() {
|
||||
val x: () -> Int = { "" }
|
||||
val x: () -> Int = <!INITIALIZER_TYPE_MISMATCH!>{ "" }<!>
|
||||
|
||||
val a0: () -> Int = fun(): String = "1"
|
||||
val a1: () -> Int = (fun() = "1")
|
||||
val a0: () -> Int = <!INITIALIZER_TYPE_MISMATCH!>fun(): String = "1"<!>
|
||||
val a1: () -> Int = <!INITIALIZER_TYPE_MISMATCH!>(fun() = "1")<!>
|
||||
val a2: () -> Unit = (fun() = "1")
|
||||
val a3: Unit = (fun() = "1")
|
||||
val a3: Unit = <!INITIALIZER_TYPE_MISMATCH!>(fun() = "1")<!>
|
||||
val a4 = (fun() = "1")
|
||||
val a5 = (fun(): String = "1")
|
||||
val a6: () -> Int = (fun() = 1)
|
||||
val a7: () -> Int = (fun(): String = "1") as () -> Int
|
||||
val a8: () -> Int = fun(): String = "1"
|
||||
val a8: () -> Int = <!INITIALIZER_TYPE_MISMATCH!>fun(): String = "1"<!>
|
||||
val a9: () -> () -> () -> Int = fun(): () -> () -> String = fun(): () -> String = fun(): String = "1"
|
||||
|
||||
foo(fun(): String = <!ARGUMENT_TYPE_MISMATCH!>"1"<!>)
|
||||
foo(((fun(): String = <!ARGUMENT_TYPE_MISMATCH!>"1"<!>)))
|
||||
|
||||
val a10: Int.(String) -> Int = fun (x: String) = 10
|
||||
val a10: Int.(String) -> Int = <!INITIALIZER_TYPE_MISMATCH!>fun (x: String) = 10<!>
|
||||
val a11: () -> () -> () -> Int = fun() = fun() = fun(): String = "1"
|
||||
|
||||
val a12: Int = fun(): String = "1"
|
||||
val a13: Int = fun() = fun(): String = "1"
|
||||
val a14: Int = fun() = fun() = "1"
|
||||
val a15: Int = fun() = fun() = {}
|
||||
val a16: Int = fun() = fun() {}
|
||||
val a12: Int = <!INITIALIZER_TYPE_MISMATCH!>fun(): String = "1"<!>
|
||||
val a13: Int = <!INITIALIZER_TYPE_MISMATCH!>fun() = fun(): String = "1"<!>
|
||||
val a14: Int = <!INITIALIZER_TYPE_MISMATCH!>fun() = fun() = "1"<!>
|
||||
val a15: Int = <!INITIALIZER_TYPE_MISMATCH!>fun() = fun() = {}<!>
|
||||
val a16: Int = <!INITIALIZER_TYPE_MISMATCH!>fun() = fun() {}<!>
|
||||
|
||||
val a17: () -> Unit = fun() {}
|
||||
val a18: () -> Int = fun() {}
|
||||
val a18: () -> Int = <!INITIALIZER_TYPE_MISMATCH!>fun() {}<!>
|
||||
val a19: () -> () -> Int = fun() = fun() {}
|
||||
val a20: () -> () -> () -> Unit = fun() = fun() = {}
|
||||
val a21: () -> () -> () -> Int = fun() = fun() = {}
|
||||
|
||||
Vendored
+4
-4
@@ -1,8 +1,8 @@
|
||||
val flag = true
|
||||
|
||||
val a: () -> Int = l@ {
|
||||
val a: () -> Int = <!INITIALIZER_TYPE_MISMATCH!>l@ {
|
||||
if (flag) return@l 4
|
||||
}
|
||||
}<!>
|
||||
|
||||
val b: () -> Unit = l@ {
|
||||
if (flag) return@l 4
|
||||
@@ -17,6 +17,6 @@ val d: () -> Int = l@ {
|
||||
5
|
||||
}
|
||||
|
||||
val e: () -> Int = l@ {
|
||||
val e: () -> Int = <!INITIALIZER_TYPE_MISMATCH!>l@ {
|
||||
if (flag) 4
|
||||
}
|
||||
}<!>
|
||||
|
||||
Reference in New Issue
Block a user