diff --git a/compiler/testData/builtin-classes.txt b/compiler/testData/builtin-classes.txt index 145264f54be..4ae5001b6fc 100644 --- a/compiler/testData/builtin-classes.txt +++ b/compiler/testData/builtin-classes.txt @@ -274,8 +274,8 @@ public interface Cloneable { public interface Collection : kotlin.Iterable { public abstract val size: kotlin.Int public abstract fun (): kotlin.Int - public abstract operator fun contains(/*0*/ o: kotlin.Any?): kotlin.Boolean - public abstract fun containsAll(/*0*/ c: kotlin.Collection): kotlin.Boolean + public abstract operator fun contains(/*0*/ o: @kotlin.UnsafeVariance() E): kotlin.Boolean + public abstract fun containsAll(/*0*/ c: kotlin.Collection<@kotlin.UnsafeVariance() E>): kotlin.Boolean public abstract fun isEmpty(): kotlin.Boolean public abstract override /*1*/ fun iterator(): kotlin.Iterator } @@ -771,8 +771,8 @@ public interface Iterator { public interface List : kotlin.Collection { public abstract override /*1*/ val size: kotlin.Int public abstract override /*1*/ fun (): kotlin.Int - public abstract override /*1*/ fun contains(/*0*/ o: kotlin.Any?): kotlin.Boolean - public abstract override /*1*/ fun containsAll(/*0*/ c: kotlin.Collection): kotlin.Boolean + public abstract override /*1*/ fun contains(/*0*/ o: @kotlin.UnsafeVariance() E): kotlin.Boolean + public abstract override /*1*/ fun containsAll(/*0*/ c: kotlin.Collection<@kotlin.UnsafeVariance() E>): kotlin.Boolean public abstract operator fun get(/*0*/ index: kotlin.Int): E public abstract fun indexOf(/*0*/ o: kotlin.Any?): kotlin.Int public abstract override /*1*/ fun isEmpty(): kotlin.Boolean @@ -951,8 +951,8 @@ public interface MutableCollection : kotlin.Collection, kotlin.Mutab public abstract fun add(/*0*/ e: E): kotlin.Boolean public abstract fun addAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract fun clear(): kotlin.Unit - public abstract override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any?): kotlin.Boolean - public abstract override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.Collection): kotlin.Boolean + public abstract override /*1*/ /*fake_override*/ fun contains(/*0*/ o: E): kotlin.Boolean + public abstract override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public abstract override /*2*/ fun iterator(): kotlin.MutableIterator public abstract fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean @@ -978,8 +978,8 @@ public interface MutableList : kotlin.List, kotlin.MutableCollection public abstract override /*1*/ fun addAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract fun addAll(/*0*/ index: kotlin.Int, /*1*/ c: kotlin.Collection): kotlin.Boolean public abstract override /*1*/ fun clear(): kotlin.Unit - public abstract override /*2*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any?): kotlin.Boolean - public abstract override /*2*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.Collection): kotlin.Boolean + public abstract override /*2*/ /*fake_override*/ fun contains(/*0*/ o: E): kotlin.Boolean + public abstract override /*2*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract override /*1*/ /*fake_override*/ fun get(/*0*/ index: kotlin.Int): E public abstract override /*1*/ /*fake_override*/ fun indexOf(/*0*/ o: kotlin.Any?): kotlin.Int public abstract override /*2*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean @@ -1035,8 +1035,8 @@ public interface MutableSet : kotlin.Set, kotlin.MutableCollection): kotlin.Boolean public abstract override /*1*/ fun clear(): kotlin.Unit - public abstract override /*2*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any?): kotlin.Boolean - public abstract override /*2*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.Collection): kotlin.Boolean + public abstract override /*2*/ /*fake_override*/ fun contains(/*0*/ o: E): kotlin.Boolean + public abstract override /*2*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract override /*2*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public abstract override /*2*/ fun iterator(): kotlin.MutableIterator public abstract override /*1*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean @@ -1106,8 +1106,8 @@ public interface Range> { public interface Set : kotlin.Collection { public abstract override /*1*/ val size: kotlin.Int public abstract override /*1*/ fun (): kotlin.Int - public abstract override /*1*/ fun contains(/*0*/ o: kotlin.Any?): kotlin.Boolean - public abstract override /*1*/ fun containsAll(/*0*/ c: kotlin.Collection): kotlin.Boolean + public abstract override /*1*/ fun contains(/*0*/ o: @kotlin.UnsafeVariance() E): kotlin.Boolean + public abstract override /*1*/ fun containsAll(/*0*/ c: kotlin.Collection<@kotlin.UnsafeVariance() E>): kotlin.Boolean public abstract override /*1*/ fun isEmpty(): kotlin.Boolean public abstract override /*1*/ fun iterator(): kotlin.Iterator } diff --git a/core/builtins/native/kotlin/Collections.kt b/core/builtins/native/kotlin/Collections.kt index a954886c36c..83ce32c20db 100644 --- a/core/builtins/native/kotlin/Collections.kt +++ b/core/builtins/native/kotlin/Collections.kt @@ -59,14 +59,14 @@ public interface Collection : Iterable { /** * Checks if the specified element is contained in this collection. */ - public operator fun contains(o: Any?): Boolean + public operator fun contains(o: @UnsafeVariance E): Boolean override fun iterator(): Iterator // Bulk Operations /** * Checks if all elements in the specified collection are contained in this collection. */ - public fun containsAll(c: Collection): Boolean + public fun containsAll(c: Collection<@UnsafeVariance E>): Boolean } /** @@ -130,11 +130,11 @@ public interface List : Collection { // Query Operations override val size: Int override fun isEmpty(): Boolean - override fun contains(o: Any?): Boolean + override fun contains(o: @UnsafeVariance E): Boolean override fun iterator(): Iterator // Bulk Operations - override fun containsAll(c: Collection): Boolean + override fun containsAll(c: Collection<@UnsafeVariance E>): Boolean // Positional Access Operations /** @@ -234,11 +234,11 @@ public interface Set : Collection { // Query Operations override val size: Int override fun isEmpty(): Boolean - override fun contains(o: Any?): Boolean + override fun contains(o: @UnsafeVariance E): Boolean override fun iterator(): Iterator // Bulk Operations - override fun containsAll(c: Collection): Boolean + override fun containsAll(c: Collection<@UnsafeVariance E>): Boolean } /**