FIR: fix type index computation during enhancement
1. in/out type parameters count; 2. star projections take up 1 space in the tree.
This commit is contained in:
+8
-8
@@ -32,23 +32,23 @@ fun <K: Any> takeArrayOfNotNullK(x: Array<K>) {}
|
||||
fun <K> takeArrayOfNullableK(x: Array<K?>) {}
|
||||
|
||||
fun <R> main(a: ReturnType<R>) {
|
||||
val x1 = <!DEBUG_INFO_EXPRESSION_TYPE("ReturnType.A<kotlin.String?, R..R?!>..ReturnType.A<kotlin.String?, R..R?!>?!")!>a.foo1()<!>
|
||||
val x1 = <!DEBUG_INFO_EXPRESSION_TYPE("ReturnType.A<kotlin.String?, R?>..ReturnType.A<kotlin.String?, R?>?!")!>a.foo1()<!>
|
||||
takeNotNullStringAndKNullable(<!ARGUMENT_TYPE_MISMATCH!>x1<!>)
|
||||
takeNullableStringAndKNullable(x1)
|
||||
takeNotNullStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x1<!>)
|
||||
takeNullableStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x1<!>)
|
||||
takeNotNullString(a.foo41.foo411)
|
||||
takeNotNullString(<!ARGUMENT_TYPE_MISMATCH!>a.foo41.foo411<!>)
|
||||
|
||||
val x2 = <!DEBUG_INFO_EXPRESSION_TYPE("ReturnType.A<kotlin.String, R..R?!>..ReturnType.A<kotlin.String, R..R?!>?!")!>a.foo2()<!>
|
||||
takeNotNullStringAndKNullable(x2)
|
||||
val x2 = <!DEBUG_INFO_EXPRESSION_TYPE("ReturnType.A<kotlin.String?, R!!>..ReturnType.A<kotlin.String?, R!!>?!")!>a.foo2()<!>
|
||||
takeNotNullStringAndKNullable(<!ARGUMENT_TYPE_MISMATCH!>x2<!>)
|
||||
takeNullableStringAndKNullable(<!ARGUMENT_TYPE_MISMATCH!>x2<!>)
|
||||
takeNotNullStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x2<!>)
|
||||
takeNullableStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x2<!>)
|
||||
takeNullableStringAndNotNullK(x2)
|
||||
|
||||
val x3 = <!DEBUG_INFO_EXPRESSION_TYPE("ReturnType.A<kotlin.String, R..R?!>..ReturnType.A<kotlin.String, R..R?!>?!")!>a.foo3<!>
|
||||
takeNotNullStringAndKNullable(x3)
|
||||
val x3 = <!DEBUG_INFO_EXPRESSION_TYPE("ReturnType.A<kotlin.String, R!!>..ReturnType.A<kotlin.String, R!!>?!")!>a.foo3<!>
|
||||
takeNotNullStringAndKNullable(<!ARGUMENT_TYPE_MISMATCH!>x3<!>)
|
||||
takeNullableStringAndKNullable(<!ARGUMENT_TYPE_MISMATCH!>x3<!>)
|
||||
takeNotNullStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x3<!>)
|
||||
takeNotNullStringAndNotNullK(x3)
|
||||
takeNullableStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x3<!>)
|
||||
|
||||
val x4 = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<R..R?!>..kotlin.Array<out R..R?!>")!>a.foo4<!>
|
||||
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
// SOURCE_RETENTION_ANNOTATIONS
|
||||
// FILE: Base.java
|
||||
public interface Base<T> {}
|
||||
// FILE: A.java
|
||||
import org.checkerframework.checker.nullness.qual.*;
|
||||
|
||||
public class A {
|
||||
@Nullable Base<@NonNull String> foo() { return null; }
|
||||
}
|
||||
|
||||
// FILE: a.kt
|
||||
interface Derived<E> : Base<E> {}
|
||||
|
||||
fun bar1(): Derived<String> = null!!
|
||||
fun bar2(): Derived<String?> = null!!
|
||||
|
||||
class B : A() {
|
||||
override fun foo(): Base<String> { return bar1(); }
|
||||
}
|
||||
|
||||
class C1 : A() {
|
||||
override fun foo(): Derived<String> { return bar1(); }
|
||||
}
|
||||
|
||||
class C2 : A() {
|
||||
override fun foo(): Derived<String>? { return bar1(); }
|
||||
}
|
||||
|
||||
class C3 : A() {
|
||||
override fun foo(): Derived<String?> { return bar2(); }
|
||||
}
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// SOURCE_RETENTION_ANNOTATIONS
|
||||
// FILE: Base.java
|
||||
public interface Base<T> {}
|
||||
|
||||
Vendored
+8
-8
@@ -34,23 +34,23 @@ fun <K: Any> takeArrayOfNotNullK(x: Array<K>) {}
|
||||
fun <K> takeArrayOfNullableK(x: Array<K?>) {}
|
||||
|
||||
fun <R> main(a: ReturnTypeWithWarnings<R>) {
|
||||
val x1 = <!DEBUG_INFO_EXPRESSION_TYPE("ReturnTypeWithWarnings.A<kotlin.String?, R..R?!>..ReturnTypeWithWarnings.A<kotlin.String?, R..R?!>?!")!>a.foo1()<!>
|
||||
val x1 = <!DEBUG_INFO_EXPRESSION_TYPE("ReturnTypeWithWarnings.A<kotlin.String?, R?>..ReturnTypeWithWarnings.A<kotlin.String?, R?>?!")!>a.foo1()<!>
|
||||
takeNotNullStringAndKNullable(<!ARGUMENT_TYPE_MISMATCH!>x1<!>)
|
||||
takeNullableStringAndKNullable(x1)
|
||||
takeNotNullStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x1<!>)
|
||||
takeNullableStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x1<!>)
|
||||
takeNotNullString(a.foo41.foo411)
|
||||
takeNotNullString(<!ARGUMENT_TYPE_MISMATCH!>a.foo41.foo411<!>)
|
||||
|
||||
val x2 = <!DEBUG_INFO_EXPRESSION_TYPE("ReturnTypeWithWarnings.A<kotlin.String, R..R?!>..ReturnTypeWithWarnings.A<kotlin.String, R..R?!>?!")!>a.foo2()<!>
|
||||
takeNotNullStringAndKNullable(x2)
|
||||
val x2 = <!DEBUG_INFO_EXPRESSION_TYPE("ReturnTypeWithWarnings.A<kotlin.String?, R!!>..ReturnTypeWithWarnings.A<kotlin.String?, R!!>?!")!>a.foo2()<!>
|
||||
takeNotNullStringAndKNullable(<!ARGUMENT_TYPE_MISMATCH!>x2<!>)
|
||||
takeNullableStringAndKNullable(<!ARGUMENT_TYPE_MISMATCH!>x2<!>)
|
||||
takeNotNullStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x2<!>)
|
||||
takeNullableStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x2<!>)
|
||||
takeNullableStringAndNotNullK(x2)
|
||||
|
||||
val x3 = <!DEBUG_INFO_EXPRESSION_TYPE("ReturnTypeWithWarnings.A<kotlin.String, R..R?!>..ReturnTypeWithWarnings.A<kotlin.String, R..R?!>?!")!>a.foo3<!>
|
||||
takeNotNullStringAndKNullable(x3)
|
||||
val x3 = <!DEBUG_INFO_EXPRESSION_TYPE("ReturnTypeWithWarnings.A<kotlin.String, R!!>..ReturnTypeWithWarnings.A<kotlin.String, R!!>?!")!>a.foo3<!>
|
||||
takeNotNullStringAndKNullable(<!ARGUMENT_TYPE_MISMATCH!>x3<!>)
|
||||
takeNullableStringAndKNullable(<!ARGUMENT_TYPE_MISMATCH!>x3<!>)
|
||||
takeNotNullStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x3<!>)
|
||||
takeNotNullStringAndNotNullK(x3)
|
||||
takeNullableStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x3<!>)
|
||||
|
||||
val x4 = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<R..R?!>..kotlin.Array<out R..R?!>")!>a.foo4<!>
|
||||
|
||||
Vendored
+4
-4
@@ -37,14 +37,14 @@ fun <R> main(a: ValueParameter<R>) {
|
||||
a.foo1(<!ARGUMENT_TYPE_MISMATCH!>getNotNullStringAndNotNullK()<!>)
|
||||
a.foo1(<!ARGUMENT_TYPE_MISMATCH!>getNullableStringAndNotNullK()<!>)
|
||||
|
||||
a.foo2(getNotNullStringAndKNullable())
|
||||
a.foo2(<!ARGUMENT_TYPE_MISMATCH!>getNotNullStringAndKNullable()<!>)
|
||||
a.foo2(<!ARGUMENT_TYPE_MISMATCH!>getNullableStringAndKNullable()<!>)
|
||||
a.foo2(<!ARGUMENT_TYPE_MISMATCH!>getNotNullStringAndNotNullK()<!>)
|
||||
a.foo2(<!ARGUMENT_TYPE_MISMATCH!>getNullableStringAndNotNullK()<!>)
|
||||
a.foo2(getNullableStringAndNotNullK())
|
||||
|
||||
a.foo3(getNotNullStringAndKNullable())
|
||||
a.foo3(<!ARGUMENT_TYPE_MISMATCH!>getNotNullStringAndKNullable()<!>)
|
||||
a.foo3(<!ARGUMENT_TYPE_MISMATCH!>getNullableStringAndKNullable()<!>)
|
||||
a.foo3(<!ARGUMENT_TYPE_MISMATCH!>getNotNullStringAndNotNullK()<!>)
|
||||
a.foo3(getNotNullStringAndNotNullK())
|
||||
a.foo3(<!ARGUMENT_TYPE_MISMATCH!>getNullableStringAndNotNullK()<!>)
|
||||
|
||||
a.foo4(<!ARGUMENT_TYPE_MISMATCH!>getArrayOfNotNullString()<!>)
|
||||
|
||||
+4
-4
@@ -39,14 +39,14 @@ fun <R> main(a: ValueParameterWithWarnings<R>) {
|
||||
a.foo1(<!ARGUMENT_TYPE_MISMATCH!>getNotNullStringAndNotNullK()<!>)
|
||||
a.foo1(<!ARGUMENT_TYPE_MISMATCH!>getNullableStringAndNotNullK()<!>)
|
||||
|
||||
a.foo2(getNotNullStringAndKNullable())
|
||||
a.foo2(<!ARGUMENT_TYPE_MISMATCH!>getNotNullStringAndKNullable()<!>)
|
||||
a.foo2(<!ARGUMENT_TYPE_MISMATCH!>getNullableStringAndKNullable()<!>)
|
||||
a.foo2(<!ARGUMENT_TYPE_MISMATCH!>getNotNullStringAndNotNullK()<!>)
|
||||
a.foo2(<!ARGUMENT_TYPE_MISMATCH!>getNullableStringAndNotNullK()<!>)
|
||||
a.foo2(getNullableStringAndNotNullK())
|
||||
|
||||
a.foo3(getNotNullStringAndKNullable())
|
||||
a.foo3(<!ARGUMENT_TYPE_MISMATCH!>getNotNullStringAndKNullable()<!>)
|
||||
a.foo3(<!ARGUMENT_TYPE_MISMATCH!>getNullableStringAndKNullable()<!>)
|
||||
a.foo3(<!ARGUMENT_TYPE_MISMATCH!>getNotNullStringAndNotNullK()<!>)
|
||||
a.foo3(getNotNullStringAndNotNullK())
|
||||
a.foo3(<!ARGUMENT_TYPE_MISMATCH!>getNullableStringAndNotNullK()<!>)
|
||||
|
||||
a.foo4(<!ARGUMENT_TYPE_MISMATCH!>getArrayOfNotNullString()<!>)
|
||||
|
||||
Reference in New Issue
Block a user