Load contavariantly projected collections in Java as mutable

#KT-3068 Fixed
This commit is contained in:
Denis Zharkov
2016-03-18 15:07:43 +03:00
parent e54b25a35a
commit 838fcf9a57
8 changed files with 23 additions and 12 deletions
@@ -6,4 +6,8 @@ public class MethodWithMappedClasses {
public <T> void copy(List<? super T> dest, List<T> src) {
throw new UnsupportedOperationException();
}
public <T> void copyMap(Map<String, ? super T> dest, Map<String, T> src) {
throw new UnsupportedOperationException();
}
}
@@ -2,5 +2,6 @@ package test
public open class MethodWithMappedClasses {
public constructor MethodWithMappedClasses()
public open fun </*0*/ T : kotlin.Any!> copy(/*0*/ p0: kotlin.collections.(Mutable)List<in T!>!, /*1*/ p1: kotlin.collections.(Mutable)List<T!>!): kotlin.Unit
public open fun </*0*/ T : kotlin.Any!> copy(/*0*/ p0: kotlin.collections.MutableList<in T!>!, /*1*/ p1: kotlin.collections.(Mutable)List<T!>!): kotlin.Unit
public open fun </*0*/ T : kotlin.Any!> copyMap(/*0*/ p0: kotlin.collections.MutableMap<kotlin.String!, in T!>!, /*1*/ p1: kotlin.collections.(Mutable)Map<kotlin.String!, T!>!): kotlin.Unit
}
@@ -2,5 +2,5 @@ package test
public open class MethodWithTypeParameters {
public constructor MethodWithTypeParameters()
public open fun </*0*/ A : kotlin.Any!, /*1*/ B : java.lang.Runnable!> foo(/*0*/ p0: A!, /*1*/ p1: (kotlin.collections.MutableList<out B!>..kotlin.collections.List<B!>?), /*2*/ p2: kotlin.collections.(Mutable)List<in kotlin.String!>!): kotlin.Unit where B : kotlin.collections.(Mutable)List<kotlin.Cloneable!>!
public open fun </*0*/ A : kotlin.Any!, /*1*/ B : java.lang.Runnable!> foo(/*0*/ p0: A!, /*1*/ p1: (kotlin.collections.MutableList<out B!>..kotlin.collections.List<B!>?), /*2*/ p2: kotlin.collections.MutableList<in kotlin.String!>!): kotlin.Unit where B : kotlin.collections.(Mutable)List<kotlin.Cloneable!>!
}
@@ -48,7 +48,7 @@ public open class Rendering {
public/*package*/ interface I_Wildcard {
public abstract fun foo1(/*0*/ p0: (kotlin.collections.MutableList<out kotlin.String!>..kotlin.collections.List<kotlin.String!>?)): kotlin.Unit
public abstract fun foo2(/*0*/ p0: kotlin.collections.(Mutable)List<in kotlin.String!>!): kotlin.Unit
public abstract fun foo2(/*0*/ p0: kotlin.collections.MutableList<in kotlin.String!>!): kotlin.Unit
public abstract fun foo3(/*0*/ p0: kotlin.collections.(Mutable)List<*>!): kotlin.Unit
public abstract fun foo4(/*0*/ p0: test.Rendering.D_SuperG<out kotlin.String!>!): kotlin.Unit
public abstract fun foo5(/*0*/ p0: test.Rendering.D_SuperG<in kotlin.String!>!): kotlin.Unit
@@ -6,7 +6,7 @@ public interface SubclassWithRawType {
public abstract override /*1*/ fun array1(): kotlin.Array<(out) kotlin.collections.(Mutable)List<kotlin.String!>!>!
public abstract override /*1*/ fun array2(): kotlin.Array<(out) kotlin.collections.(Mutable)List<(raw) kotlin.Any?>!>!
public abstract override /*1*/ fun boundWildcard1(): (kotlin.collections.MutableList<out kotlin.collections.(Mutable)List<kotlin.String!>!>..kotlin.collections.List<kotlin.collections.(Mutable)List<kotlin.String!>!>?)
public abstract override /*1*/ fun boundWildcard2(): kotlin.collections.(Mutable)List<in kotlin.collections.(Mutable)List<(raw) kotlin.Any?>!>!
public abstract override /*1*/ fun boundWildcard2(): kotlin.collections.MutableList<in kotlin.collections.(Mutable)List<(raw) kotlin.Any?>!>!
public abstract override /*1*/ fun simple1(): kotlin.collections.(Mutable)List<kotlin.String!>!
public abstract override /*1*/ fun simple2(): kotlin.collections.(Mutable)List<kotlin.collections.(Mutable)List<kotlin.String!>!>!
public abstract override /*1*/ fun simple3(): kotlin.collections.(Mutable)List<(raw) kotlin.Any?>!
@@ -17,7 +17,7 @@ public interface SubclassWithRawType {
public abstract fun array1(): kotlin.Array<(out) kotlin.collections.(Mutable)List<(raw) kotlin.Any?>!>!
public abstract fun array2(): kotlin.Array<(out) kotlin.collections.(Mutable)List<kotlin.String!>!>!
public abstract fun boundWildcard1(): (kotlin.collections.MutableList<out kotlin.collections.(Mutable)List<(raw) kotlin.Any?>!>..kotlin.collections.List<kotlin.collections.(Mutable)List<(raw) kotlin.Any?>!>?)
public abstract fun boundWildcard2(): kotlin.collections.(Mutable)List<in kotlin.collections.(Mutable)List<kotlin.String!>!>!
public abstract fun boundWildcard2(): kotlin.collections.MutableList<in kotlin.collections.(Mutable)List<kotlin.String!>!>!
public abstract fun simple1(): kotlin.collections.(Mutable)List<(raw) kotlin.Any?>!
public abstract fun simple2(): kotlin.collections.(Mutable)List<(raw) kotlin.Any?>!
public abstract fun simple3(): kotlin.collections.(Mutable)List<kotlin.String!>!