NI: extract diagnostics from partially resolved call instead of separately handling it including running all checks
^KT-37630 Fixed ^KT-35494 Fixed
This commit is contained in:
@@ -51,6 +51,6 @@ fun test6() = <!UNSUPPORTED!>foo<!><Nothing>()
|
||||
|
||||
class B<T>(val array: Array<T>)
|
||||
|
||||
fun <T> bar() = B<Array<T>>(<!NI;TYPE_PARAMETER_AS_REIFIED_ARRAY, TYPE_PARAMETER_AS_REIFIED_ARRAY!>arrayOf<!>())
|
||||
fun <T> bar() = B<Array<T>>(<!TYPE_PARAMETER_AS_REIFIED_ARRAY!>arrayOf<!>())
|
||||
|
||||
fun test7() = <!UNSUPPORTED!>bar<!><Nothing>()
|
||||
|
||||
+1
-1
@@ -6,6 +6,6 @@ public @interface A {
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
@A(*<!NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;CONSTANT_EXPECTED_TYPE_MISMATCH, NI;CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>, "b")<!>)
|
||||
@A(*<!NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>, "b")<!>)
|
||||
fun test() {
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,6 +2,6 @@
|
||||
|
||||
annotation class B(vararg val args: String)
|
||||
|
||||
@B(*<!NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;CONSTANT_EXPECTED_TYPE_MISMATCH, NI;CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>, "b")<!>)
|
||||
@B(*<!NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>, "b")<!>)
|
||||
fun test() {
|
||||
}
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@ class MyClass1
|
||||
@Ann1(arrayOf(Any::class))
|
||||
class MyClass1a
|
||||
|
||||
@Ann1(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH!>B1::class<!>)<!>)
|
||||
@Ann1(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;TYPE_MISMATCH!>B1::class<!>)<!>)
|
||||
class MyClass2
|
||||
|
||||
annotation class Ann2(val arg: Array<KClass<in B1>>)
|
||||
@@ -25,5 +25,5 @@ class MyClass3
|
||||
@Ann2(arrayOf(B1::class))
|
||||
class MyClass4
|
||||
|
||||
@Ann2(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH!>B2::class<!>)<!>)
|
||||
@Ann2(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;TYPE_MISMATCH!>B2::class<!>)<!>)
|
||||
class MyClass5
|
||||
|
||||
+3
-3
@@ -11,7 +11,7 @@ annotation class Ann1(val arg: Array<KClass<out A>>)
|
||||
@Ann1(arrayOf(A::class))
|
||||
class MyClass1
|
||||
|
||||
@Ann1(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH!>Any::class<!>)<!>)
|
||||
@Ann1(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;TYPE_MISMATCH!>Any::class<!>)<!>)
|
||||
class MyClass1a
|
||||
|
||||
@Ann1(arrayOf(B1::class))
|
||||
@@ -19,11 +19,11 @@ class MyClass2
|
||||
|
||||
annotation class Ann2(val arg: Array<KClass<out B1>>)
|
||||
|
||||
@Ann2(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH!>A::class<!>)<!>)
|
||||
@Ann2(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;TYPE_MISMATCH!>A::class<!>)<!>)
|
||||
class MyClass3
|
||||
|
||||
@Ann2(arrayOf(B1::class))
|
||||
class MyClass4
|
||||
|
||||
@Ann2(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH!>B2::class<!>)<!>)
|
||||
@Ann2(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf(<!NI;TYPE_MISMATCH!>B2::class<!>)<!>)
|
||||
class MyClass5
|
||||
|
||||
@@ -9,8 +9,8 @@ fun <T> fail2(): Array<T> = ok1 { Array<<!TYPE_PARAMETER_AS_REIFIED!>T<!>>(1) {
|
||||
fun <T> ok3(block: () -> Array<T>): Array<T> = ok1 { block() }
|
||||
inline fun <reified T> ok4(): Array<T> = ok1 { Array<T>(1) { null!! } }
|
||||
|
||||
fun <T> fail3(block: () -> T): Pair<Array<T>, Array<T>> = Pair(<!NI;TYPE_PARAMETER_AS_REIFIED, TYPE_PARAMETER_AS_REIFIED!>arrayOf<!>(
|
||||
block()), <!NI;TYPE_PARAMETER_AS_REIFIED, TYPE_PARAMETER_AS_REIFIED!>arrayOf<!>()
|
||||
fun <T> fail3(block: () -> T): Pair<Array<T>, Array<T>> = Pair(<!TYPE_PARAMETER_AS_REIFIED!>arrayOf<!>(
|
||||
block()), <!TYPE_PARAMETER_AS_REIFIED!>arrayOf<!>()
|
||||
)
|
||||
inline fun <reified T> ok5(block: () -> T): Pair<Array<T>, Array<T>> = Pair(
|
||||
arrayOf(block()), arrayOf()
|
||||
|
||||
@@ -30,6 +30,6 @@ fun test2(): Map<Int, Int> = run {
|
||||
<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, NI;TYPE_MISMATCH!>try {
|
||||
emptyMap()
|
||||
} catch (e: ExcA) {
|
||||
<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>mapOf(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH!>"" to ""<!>)<!>
|
||||
<!NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>mapOf(<!NI;TYPE_MISMATCH!>"" to ""<!>)<!>
|
||||
}<!>
|
||||
}
|
||||
Reference in New Issue
Block a user