FIR: Fix loading read-only collection Java types with incorrect variance
This commit is contained in:
committed by
TeamCityServer
parent
5ade831665
commit
18e93b50d9
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
// FIR_IDENTICAL
|
||||
// SKIP_TXT
|
||||
// FILE: JavaClass.java
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
public class JavaClass {
|
||||
public static void add(final @NotNull java.util.List<? super CharSequence> addedLibraries) {}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
fun bar() {
|
||||
JavaClass.add(ArrayList())
|
||||
}
|
||||
Vendored
+3
-3
@@ -11,8 +11,8 @@ public class A {
|
||||
|
||||
fun main(a: A, ml: MutableList<String>, l: List<String>) {
|
||||
a.foo(ml)
|
||||
a.foo(l)
|
||||
a.foo(<!ARGUMENT_TYPE_MISMATCH!>l<!>)
|
||||
|
||||
a.bar(ml)
|
||||
a.bar(l)
|
||||
a.bar(<!ARGUMENT_TYPE_MISMATCH!>ml<!>)
|
||||
a.bar(<!ARGUMENT_TYPE_MISMATCH!>l<!>)
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ FILE fqName:<root> fileName:/v8arrayToList.kt
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.V8Array' type=<root>.V8Array origin=null
|
||||
VAR name:list type:kotlin.collections.List<kotlin.String> [val]
|
||||
TYPE_OP type=kotlin.collections.List<kotlin.String> origin=CAST typeOperand=kotlin.collections.List<kotlin.String>
|
||||
CALL 'public open fun toList (array: @[FlexibleNullability] <root>.V8Array?): @[FlexibleNullability] kotlin.collections.List<*>? declared in <root>.Utils' type=@[FlexibleNullability] kotlin.collections.List<*>? origin=null
|
||||
CALL 'public open fun toList (array: @[FlexibleNullability] <root>.V8Array?): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Any?>? declared in <root>.Utils' type=@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Any?>? origin=null
|
||||
array: GET_VAR 'val array: <root>.V8Array [val] declared in <root>.box' type=<root>.V8Array origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
CALL 'public abstract fun get (index: kotlin.Int): E of kotlin.collections.List [operator] declared in kotlin.collections.List' type=kotlin.String origin=null
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
public open class MethodWithMappedClasses : R|kotlin/Any| {
|
||||
public open fun <T : R|ft<kotlin/Any, kotlin/Any?>|> copy(dest: R|ft<kotlin/collections/MutableList<in ft<T, T?>>, kotlin/collections/List<*>?>|, src: R|ft<kotlin/collections/MutableList<ft<T, T?>>, kotlin/collections/List<ft<T, T?>>?>|): R|kotlin/Unit|
|
||||
public open fun <T : R|ft<kotlin/Any, kotlin/Any?>|> copy(dest: R|ft<kotlin/collections/MutableList<in ft<T, T?>>, kotlin/collections/MutableList<in ft<T, T?>>?>|, src: R|ft<kotlin/collections/MutableList<ft<T, T?>>, kotlin/collections/List<ft<T, T?>>?>|): R|kotlin/Unit|
|
||||
|
||||
public open fun <T : R|ft<kotlin/Any, kotlin/Any?>|> copyMap(dest: R|ft<kotlin/collections/MutableMap<ft<kotlin/String, kotlin/String?>, in ft<T, T?>>, kotlin/collections/Map<ft<kotlin/String, kotlin/String?>, *>?>|, src: R|ft<kotlin/collections/MutableMap<ft<kotlin/String, kotlin/String?>, ft<T, T?>>, kotlin/collections/Map<ft<kotlin/String, kotlin/String?>, ft<T, T?>>?>|): R|kotlin/Unit|
|
||||
public open fun <T : R|ft<kotlin/Any, kotlin/Any?>|> copyMap(dest: R|ft<kotlin/collections/MutableMap<ft<kotlin/String, kotlin/String?>, in ft<T, T?>>, kotlin/collections/MutableMap<ft<kotlin/String, kotlin/String?>, in ft<T, T?>>?>|, src: R|ft<kotlin/collections/MutableMap<ft<kotlin/String, kotlin/String?>, ft<T, T?>>, kotlin/collections/Map<ft<kotlin/String, kotlin/String?>, ft<T, T?>>?>|): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|test/MethodWithMappedClasses|
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class MethodWithTypeParameters : R|kotlin/Any| {
|
||||
public open fun <A : R|ft<kotlin/Any, kotlin/Any?>|, B : R|ft<java/lang/Runnable, java/lang/Runnable?>|, R|ft<kotlin/collections/MutableList<ft<kotlin/Cloneable, kotlin/Cloneable?>>, kotlin/collections/List<ft<kotlin/Cloneable, kotlin/Cloneable?>>?>|> foo(a: R|ft<A, A?>|, b: R|ft<kotlin/collections/MutableList<out ft<B, B?>>, kotlin/collections/List<out ft<B, B?>>?>|, list: R|ft<kotlin/collections/MutableList<in ft<kotlin/String, kotlin/String?>>, kotlin/collections/List<*>?>|): R|kotlin/Unit|
|
||||
public open fun <A : R|ft<kotlin/Any, kotlin/Any?>|, B : R|ft<java/lang/Runnable, java/lang/Runnable?>|, R|ft<kotlin/collections/MutableList<ft<kotlin/Cloneable, kotlin/Cloneable?>>, kotlin/collections/List<ft<kotlin/Cloneable, kotlin/Cloneable?>>?>|> foo(a: R|ft<A, A?>|, b: R|ft<kotlin/collections/MutableList<out ft<B, B?>>, kotlin/collections/List<out ft<B, B?>>?>|, list: R|ft<kotlin/collections/MutableList<in ft<kotlin/String, kotlin/String?>>, kotlin/collections/MutableList<in ft<kotlin/String, kotlin/String?>>?>|): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|test/MethodWithTypeParameters|
|
||||
|
||||
|
||||
Reference in New Issue
Block a user