Removing redundant projections when loading from Java.

This commit is contained in:
Evgeny Gerashchenko
2012-11-30 19:09:01 +04:00
parent 46a485da01
commit 01b3d75374
21 changed files with 94 additions and 52 deletions
@@ -30,7 +30,10 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.rt.signature.JetSignatureReader;
import javax.inject.Inject;
import java.util.*;
import java.util.Collections;
import java.util.EnumSet;
import java.util.List;
import java.util.Set;
import static org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer.TypeUsage.*;
@@ -186,7 +189,16 @@ public class JavaTypeTransformer {
TypeParameterDescriptor typeParameterDescriptor = parameters.get(i);
TypeUsage howTheProjectionIsUsed = howThisTypeIsUsed == SUPERTYPE ? SUPERTYPE_ARGUMENT : TYPE_ARGUMENT;
arguments.add(transformToTypeProjection(psiArgument, typeParameterDescriptor, typeVariableResolver, howTheProjectionIsUsed));
TypeProjection typeProjection = transformToTypeProjection(
psiArgument, typeParameterDescriptor, typeVariableResolver, howTheProjectionIsUsed);
if (typeProjection.getProjectionKind() == typeParameterDescriptor.getVariance()) {
// remove redundant 'out' and 'in'
arguments.add(new TypeProjection(Variance.INVARIANT, typeProjection.getType()));
}
else {
arguments.add(typeProjection);
}
}
}
@@ -125,7 +125,6 @@ public class TypeParameterDescriptorImpl extends DeclarationDescriptorNonRootImp
@Override
public Variance getVariance() {
checkInitialized();
return variance;
}
@@ -0,0 +1,8 @@
package test;
import java.util.Collection;
public interface RemoveRedundantProjectionKind {
void f(Collection<? extends CharSequence> collection);
void f(Comparable<? super CharSequence> comparator);
}
@@ -0,0 +1,6 @@
package test
public trait RemoveRedundantProjectionKind: Object {
public fun f(p0: Collection<CharSequence?>?)
public fun f(p0: Comparable<CharSequence?>?)
}
@@ -0,0 +1,6 @@
namespace test
public abstract trait test.RemoveRedundantProjectionKind : java.lang.Object {
public abstract fun f(/*0*/ p0: jet.Collection<jet.CharSequence?>?): jet.Tuple0
public abstract fun f(/*0*/ p0: jet.Comparable<jet.CharSequence?>?): jet.Tuple0
}
@@ -7,7 +7,7 @@ import org.jetbrains.jet.jvm.compiler.annotation.ExpectLoadError;
public class WrongTypeParameterBoundStructure1 {
@ExpectLoadError("'java.lang.Runnable?' type in method signature has 0 type arguments, while 'Runnable<Int>' in alternative signature has 1 of them")
@KotlinSignature("fun <A, B : Runnable<Int>> foo(a : A, b : List<out B>) where B : List<Cloneable>")
@KotlinSignature("fun <A, B : Runnable<Int>> foo(a : A, b : List<B>) where B : List<Cloneable>")
public <A, B extends Runnable & List<Cloneable>> void foo(A a, List<? extends B> b) {
}
}
@@ -3,6 +3,6 @@ package test
import java.util.*
public open class WrongTypeParameterBoundStructure1 : Object() {
public open fun <erased A, erased B : Runnable?> foo(p0 : A?, p1 : List<out B>?) where B : List<Cloneable?>? {
public open fun <erased A, erased B : Runnable?> foo(p0 : A?, p1 : List<B>?) where B : List<Cloneable?>? {
}
}
@@ -2,5 +2,5 @@ namespace test
public open class test.WrongTypeParameterBoundStructure1 : java.lang.Object {
public final /*constructor*/ fun <init>(): test.WrongTypeParameterBoundStructure1
public open fun </*0*/ A : jet.Any?, /*1*/ B : java.lang.Runnable? & jet.List<java.lang.Cloneable?>?>foo(/*0*/ p0: A?, /*1*/ p1: jet.List<out B>?): jet.Tuple0
public open fun </*0*/ A : jet.Any?, /*1*/ B : java.lang.Runnable? & jet.List<java.lang.Cloneable?>?>foo(/*0*/ p0: A?, /*1*/ p1: jet.List<B>?): jet.Tuple0
}
@@ -7,7 +7,7 @@ import org.jetbrains.jet.jvm.compiler.annotation.ExpectLoadError;
public class WrongTypeParameterBoundStructure2 {
@ExpectLoadError("'jet.List<java.lang.Cloneable?>?' type in method signature has 1 type arguments, while 'List' in alternative signature has 0 of them")
@KotlinSignature("fun <A, B : Runnable> foo(a : A, b : List<out B>) where B : List")
@KotlinSignature("fun <A, B : Runnable> foo(a : A, b : List<B>) where B : List")
public <A, B extends Runnable & List<Cloneable>> void foo(A a, List<? extends B> b) {
}
}
@@ -3,6 +3,6 @@ package test
import java.util.*
public open class WrongTypeParameterBoundStructure2 : Object() {
public open fun <erased A, erased B : Runnable?> foo(p0 : A?, p1 : List<out B>?) where B : List<Cloneable?>? {
public open fun <erased A, erased B : Runnable?> foo(p0 : A?, p1 : List<B>?) where B : List<Cloneable?>? {
}
}
@@ -2,5 +2,5 @@ namespace test
public open class test.WrongTypeParameterBoundStructure2 : java.lang.Object {
public final /*constructor*/ fun <init>(): test.WrongTypeParameterBoundStructure2
public open fun </*0*/ A : jet.Any?, /*1*/ B : java.lang.Runnable? & jet.List<java.lang.Cloneable?>?>foo(/*0*/ p0: A?, /*1*/ p1: jet.List<out B>?): jet.Tuple0
public open fun </*0*/ A : jet.Any?, /*1*/ B : java.lang.Runnable? & jet.List<java.lang.Cloneable?>?>foo(/*0*/ p0: A?, /*1*/ p1: jet.List<B>?): jet.Tuple0
}
@@ -7,7 +7,7 @@ import org.jetbrains.jet.jvm.compiler.annotation.ExpectLoadError;
public class WrongTypeParametersCount {
@ExpectLoadError("Method signature has 2 type parameters, but alternative signature has 3")
@KotlinSignature("fun <A, B, C> foo(a : A, b : List<out B>)")
@KotlinSignature("fun <A, B, C> foo(a : A, b : List<B>)")
public <A, B> void foo(A a, List<? extends B> b) {
}
}
@@ -3,6 +3,6 @@ package test
import java.util.*
public open class WrongTypeParametersCount : Object() {
public open fun <erased A, erased B> foo(p0 : A?, p1 : List<out B>?) {
public open fun <erased A, erased B> foo(p0 : A?, p1 : List<B>?) {
}
}
@@ -2,5 +2,5 @@ namespace test
public open class test.WrongTypeParametersCount : java.lang.Object {
public final /*constructor*/ fun <init>(): test.WrongTypeParametersCount
public open fun </*0*/ A : jet.Any?, /*1*/ B : jet.Any?>foo(/*0*/ p0: A?, /*1*/ p1: jet.List<out B>?): jet.Tuple0
public open fun </*0*/ A : jet.Any?, /*1*/ B : jet.Any?>foo(/*0*/ p0: A?, /*1*/ p1: jet.List<B>?): jet.Tuple0
}
@@ -1,5 +1,6 @@
package test;
import java.lang.Number;
import java.util.*;
import jet.runtime.typeinfo.KotlinSignature;
@@ -7,8 +8,8 @@ import org.jetbrains.jet.jvm.compiler.annotation.ExpectLoadError;
public class WrongTypeVariance {
@ExpectLoadError("Variance mismatch, actual: out, in alternative signature: ")
@KotlinSignature("fun copy(a : List<out Number>, b : List<Number>) : MutableList<Number>")
public List<Number> copy(List<? extends Number> from, List<? extends Number> to) {
@KotlinSignature("fun copy(a : Array<out Number>, b : Array<Number>) : MutableList<Number>")
public List<Number> copy(Number[] from, Number[] to) {
throw new UnsupportedOperationException();
}
}
@@ -3,7 +3,7 @@ package test
import java.util.*
public open class WrongTypeVariance : Object() {
public open fun copy(p0 : List<out jet.Number?>?, p1 : List<out jet.Number?>?) : MutableList<jet.Number?>? {
public open fun copy(p0 : Array<out Number?>?, p1 : Array<out Number?>?) : MutableList<Number?>? {
throw UnsupportedOperationException()
}
}
@@ -2,5 +2,5 @@ namespace test
public open class test.WrongTypeVariance : java.lang.Object {
public final /*constructor*/ fun <init>(): test.WrongTypeVariance
public open fun copy(/*0*/ p0: jet.List<out jet.Number?>?, /*1*/ p1: jet.List<out jet.Number?>?): jet.MutableList<jet.Number?>?
public open fun copy(/*0*/ p0: jet.Array<out jet.Number?>?, /*1*/ p1: jet.Array<out jet.Number?>?): jet.MutableList<jet.Number?>?
}
@@ -139,6 +139,11 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest {
doTest("compiler/testData/loadJava/MyException.java");
}
@TestMetadata("RemoveRedundantProjectionKind.java")
public void testRemoveRedundantProjectionKind() throws Exception {
doTest("compiler/testData/loadJava/RemoveRedundantProjectionKind.java");
}
@TestMetadata("Simple.java")
public void testSimple() throws Exception {
doTest("compiler/testData/loadJava/Simple.java");
@@ -1029,6 +1029,11 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso
doTestSinglePackage("compiler/testData/loadJava/MyException.kt");
}
@TestMetadata("RemoveRedundantProjectionKind.kt")
public void testRemoveRedundantProjectionKind() throws Exception {
doTestSinglePackage("compiler/testData/loadJava/RemoveRedundantProjectionKind.kt");
}
@TestMetadata("Simple.kt")
public void testSimple() throws Exception {
doTestSinglePackage("compiler/testData/loadJava/Simple.kt");
+31 -31
View File
@@ -11,7 +11,7 @@
</item>
<item name='java.util.AbstractList boolean addAll(int, java.util.Collection<? extends E>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun addAll(index : Int, c : Collection&lt;out E&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun addAll(index : Int, c : Collection&lt;E&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.AbstractList E get(int)'>
@@ -56,12 +56,12 @@
</item>
<item name='java.util.ArrayList boolean addAll(java.util.Collection<? extends E>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun addAll(c : Collection&lt;out E&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun addAll(c : Collection&lt;E&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.ArrayList boolean addAll(int, java.util.Collection<? extends E>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun addAll(index : Int, c : Collection&lt;out E&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun addAll(index : Int, c : Collection&lt;E&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.ArrayList E get(int)'>
@@ -104,17 +104,17 @@
</item>
<item name='java.util.List boolean addAll(java.util.Collection<? extends E>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun addAll(c : Collection&lt;out E&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun addAll(c : Collection&lt;E&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.List boolean addAll(int, java.util.Collection<? extends E>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun addAll(index : Int, c : Collection&lt;out E&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun addAll(index : Int, c : Collection&lt;E&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.List boolean containsAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun containsAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun containsAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.List E get(int)'>
@@ -144,12 +144,12 @@
</item>
<item name='java.util.List boolean removeAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun removeAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun removeAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.List boolean retainAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun retainAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun retainAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.List E set(int, E)'>
@@ -189,12 +189,12 @@
</item>
<item name='java.util.Collection boolean addAll(java.util.Collection<? extends E>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun addAll(c : Collection&lt;out E&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun addAll(c : Collection&lt;E&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.Collection boolean containsAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun containsAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun containsAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.Collection java.util.Iterator<E> iterator()'>
@@ -204,12 +204,12 @@
</item>
<item name='java.util.Collection boolean removeAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun removeAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun removeAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.Collection boolean retainAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun retainAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun retainAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.Collection java.lang.Object[] toArray()'>
@@ -274,12 +274,12 @@
</item>
<item name='java.util.Set boolean addAll(java.util.Collection<? extends E>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun addAll(c : Collection&lt;out E&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun addAll(c : Collection&lt;E&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.Set boolean containsAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun containsAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun containsAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.Set java.util.Iterator<E> iterator()'>
@@ -289,12 +289,12 @@
</item>
<item name='java.util.Set boolean removeAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun removeAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun removeAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.Set boolean retainAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun retainAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun retainAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.Set java.lang.Object[] toArray()'>
@@ -314,12 +314,12 @@
</item>
<item name='java.util.AbstractCollection boolean addAll(java.util.Collection<? extends E>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun addAll(c : Collection&lt;out E&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun addAll(c : Collection&lt;E&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.AbstractCollection boolean containsAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun containsAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun containsAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.AbstractCollection java.util.Iterator<E> iterator()'>
@@ -329,12 +329,12 @@
</item>
<item name='java.util.AbstractCollection boolean removeAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun removeAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun removeAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.AbstractCollection boolean retainAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun retainAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun retainAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.AbstractCollection java.lang.Object[] toArray()'>
@@ -379,7 +379,7 @@
</item>
<item name='java.util.AbstractSet boolean removeAll(java.util.Collection<?>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun removeAll(c : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun removeAll(c : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.Queue boolean add(E)'>
@@ -424,12 +424,12 @@
</item>
<item name='java.util.LinkedList boolean addAll(java.util.Collection<? extends E>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun addAll(c : Collection&lt;out E&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun addAll(c : Collection&lt;E&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.LinkedList boolean addAll(int, java.util.Collection<? extends E>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun addAll(index : Int, c : Collection&lt;out E&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun addAll(index : Int, c : Collection&lt;E&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.LinkedList void addFirst(E)'>
@@ -709,7 +709,7 @@
</item>
<item name='java.util.AbstractSequentialList boolean addAll(int, java.util.Collection<? extends E>)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun addAll(index : Int, c : Collection&lt;out E&gt;) : Boolean&quot;"/>
<val name="value" val="&quot;fun addAll(index : Int, c : Collection&lt;E&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.AbstractSequentialList E get(int)'>
@@ -1431,7 +1431,7 @@
<annotation name='org.jetbrains.annotations.NotNull'/>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value"
val="&quot;fun &lt;T: Comparable<in T>&gt; min(coll : Collection&lt;out T&gt;) : T&quot;"/>
val="&quot;fun &lt;T: Comparable<in T>&gt; min(coll : Collection&lt;T&gt;) : T&quot;"/>
</annotation>
</item>
<item name='java.util.Collections T min(java.util.Collection&lt;? extends T&gt;, java.util.Comparator&lt;? super T&gt;) 0'>
@@ -1444,7 +1444,7 @@
<annotation name='org.jetbrains.annotations.NotNull'/>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value"
val="&quot;fun &lt;T&gt; min(coll : Collection&lt;out T&gt;, comp : Comparator&lt;in T&gt;) : T&quot;"/>
val="&quot;fun &lt;T&gt; min(coll : Collection&lt;T&gt;, comp : Comparator&lt;in T&gt;) : T&quot;"/>
</annotation>
</item>
<item name='java.util.Collections T max(java.util.Collection&lt;? extends T&gt;) 0'>
@@ -1454,7 +1454,7 @@
<annotation name='org.jetbrains.annotations.NotNull'/>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value"
val="&quot;fun &lt;T: Comparable<in T>&gt; max(coll : Collection&lt;out T&gt;) : T&quot;"/>
val="&quot;fun &lt;T: Comparable<in T>&gt; max(coll : Collection&lt;T&gt;) : T&quot;"/>
</annotation>
</item>
<item name='java.util.Collections T max(java.util.Collection&lt;? extends T&gt;, java.util.Comparator&lt;? super T&gt;) 0'>
@@ -1467,7 +1467,7 @@
<annotation name='org.jetbrains.annotations.NotNull'/>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value"
val="&quot;fun &lt;T&gt; max(coll : Collection&lt;out T&gt;, comp : Comparator&lt;in T&gt;) : T&quot;"/>
val="&quot;fun &lt;T&gt; max(coll : Collection&lt;T&gt;, comp : Comparator&lt;in T&gt;) : T&quot;"/>
</annotation>
</item>
<item name='java.util.Collections int indexOfSubList(java.util.List&lt;?&gt;, java.util.List&lt;?&gt;) 0'>
@@ -1707,7 +1707,7 @@
<item name='java.util.Collections java.util.Collection&lt;T&gt; unmodifiableCollection(java.util.Collection&lt;? extends T&gt;)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value"
val="&quot;fun &lt;T&gt; unmodifiableCollection(c : Collection&lt;out T&gt;) : MutableCollection&lt;T&gt;&quot;"/>
val="&quot;fun &lt;T&gt; unmodifiableCollection(c : Collection&lt;T&gt;) : MutableCollection&lt;T&gt;&quot;"/>
</annotation>
</item>
<item name='java.util.Collections java.util.Set&lt;T&gt; unmodifiableSet(java.util.Set&lt;? extends T&gt;)'>
@@ -1833,13 +1833,13 @@
</item>
<item name='java.util.Collections int frequency(java.util.Collection&lt;?&gt;, java.lang.Object)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value" val="&quot;fun frequency(c : Collection&lt;out Any?&gt;, o : Any?) : Int&quot;"/>
<val name="value" val="&quot;fun frequency(c : Collection&lt;Any?&gt;, o : Any?) : Int&quot;"/>
</annotation>
</item>
<item name='java.util.Collections boolean disjoint(java.util.Collection&lt;?&gt;, java.util.Collection&lt;?&gt;)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value"
val="&quot;fun disjoint(c1 : Collection&lt;out Any?&gt;, c2 : Collection&lt;out Any?&gt;) : Boolean&quot;"/>
val="&quot;fun disjoint(c1 : Collection&lt;Any?&gt;, c2 : Collection&lt;Any?&gt;) : Boolean&quot;"/>
</annotation>
</item>
<item name='java.util.Collections boolean addAll(java.util.Collection&lt;? super T&gt;, T...)'>
@@ -112,14 +112,14 @@
<item name='java.util.concurrent.ExecutorService java.util.List&lt;java.util.concurrent.Future&lt;T&gt;&gt; invokeAll(java.util.Collection&lt;? extends java.util.concurrent.Callable&lt;T&gt;&gt;) 0'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value"
val="&quot;fun &lt;T&gt; invokeAll(tasks : Collection&lt;out Callable&lt;T&gt;&gt;) : MutableList&lt;Future&lt;T&gt;&gt;&quot;"/>
val="&quot;fun &lt;T&gt; invokeAll(tasks : Collection&lt;Callable&lt;T&gt;&gt;) : MutableList&lt;Future&lt;T&gt;&gt;&quot;"/>
</annotation>
</item>
<item name='java.util.concurrent.ExecutorService java.util.List&lt;java.util.concurrent.Future&lt;T&gt;&gt; invokeAll(java.util.Collection&lt;? extends java.util.concurrent.Callable&lt;T&gt;&gt;, long, java.util.concurrent.TimeUnit)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value"
val="&quot;fun &lt;T&gt; invokeAll(tasks : Collection&lt;out Callable&lt;T&gt;&gt;, timeout : Long, unit : TimeUnit) : MutableList&lt;Future&lt;T&gt;&gt;&quot;"/>
val="&quot;fun &lt;T&gt; invokeAll(tasks : Collection&lt;Callable&lt;T&gt;&gt;, timeout : Long, unit : TimeUnit) : MutableList&lt;Future&lt;T&gt;&gt;&quot;"/>
</annotation>
</item>
<item name='java.util.concurrent.ExecutorService java.util.List&lt;java.util.concurrent.Future&lt;T&gt;&gt; invokeAll(java.util.Collection&lt;? extends java.util.concurrent.Callable&lt;T&gt;&gt;, long, java.util.concurrent.TimeUnit) 0'>
@@ -134,14 +134,14 @@
<item name='java.util.concurrent.ExecutorService T invokeAny(java.util.Collection&lt;? extends java.util.concurrent.Callable&lt;T&gt;&gt;)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value"
val="&quot;fun &lt;T&gt; invokeAny(tasks : Collection&lt;out Callable&lt;T&gt;&gt;) : T?&quot;"/>
val="&quot;fun &lt;T&gt; invokeAny(tasks : Collection&lt;Callable&lt;T&gt;&gt;) : T?&quot;"/>
</annotation>
</item>
<item name='java.util.concurrent.ExecutorService T invokeAny(java.util.Collection&lt;? extends java.util.concurrent.Callable&lt;T&gt;&gt;, long, java.util.concurrent.TimeUnit)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value"
val="&quot;fun &lt;T&gt; invokeAny(tasks : Collection&lt;out Callable&lt;T&gt;&gt;, timeout : Long, unit : TimeUnit) : T&quot;"/>
val="&quot;fun &lt;T&gt; invokeAny(tasks : Collection&lt;Callable&lt;T&gt;&gt;, timeout : Long, unit : TimeUnit) : T&quot;"/>
</annotation>
</item>
<item name='java.util.concurrent.ExecutorService T invokeAny(java.util.Collection&lt;? extends java.util.concurrent.Callable&lt;T&gt;&gt;, long, java.util.concurrent.TimeUnit) 0'>
@@ -359,7 +359,7 @@
<item name='java.util.concurrent.ExecutorService java.util.List&lt;java.util.concurrent.Future&lt;T&gt;&gt; invokeAll(java.util.Collection&lt;? extends java.util.concurrent.Callable&lt;T&gt;&gt;)'>
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
<val name="value"
val="&quot;fun &lt;T&gt; invokeAll(tasks : Collection&lt;out Callable&lt;T&gt;&gt;) : MutableList&lt;Future&lt;T&gt;&gt;&quot;"/>
val="&quot;fun &lt;T&gt; invokeAll(tasks : Collection&lt;Callable&lt;T&gt;&gt;) : MutableList&lt;Future&lt;T&gt;&gt;&quot;"/>
</annotation>
</item>
<item name='java.util.concurrent.CompletionService java.util.concurrent.Future&lt;V&gt; poll(long, java.util.concurrent.TimeUnit)'>