Change default upper bound of Java type parameters to Any!
#KT-7672 Fixed
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
// FILE: Derived.java
|
||||
import kotlin.jvm.functions.Function0;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class Derived implements Base {
|
||||
@Override
|
||||
public <V> void foo(@NotNull Function0<? extends V> compute) {}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
interface Base {
|
||||
fun <V: Any> foo(compute: () -> V?)
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
Derived().foo<String> { "" }
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package
|
||||
|
||||
internal fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
|
||||
|
||||
internal interface Base {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
internal abstract fun </*0*/ V : kotlin.Any> foo(/*0*/ compute: () -> V?): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public open class Derived : Base {
|
||||
public constructor Derived()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
java.lang.Override() public open override /*1*/ fun </*0*/ V : kotlin.Any!> foo(/*0*/ org.jetbrains.annotations.NotNull() compute: () -> V?): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+3
-3
@@ -3,8 +3,8 @@ package
|
||||
internal fun bar(): kotlin.String?
|
||||
internal fun foo(): kotlin.Unit
|
||||
|
||||
kotlin.jvm.PurelyImplements(value = "kotlin.MutableCollection") public/*package*/ open class A</*0*/ T> : java.util.AbstractCollection<T!>, kotlin.MutableCollection<T> {
|
||||
public/*package*/ constructor A</*0*/ T>()
|
||||
kotlin.jvm.PurelyImplements(value = "kotlin.MutableCollection") public/*package*/ open class A</*0*/ T : kotlin.Any!> : java.util.AbstractCollection<T!>, kotlin.MutableCollection<T> {
|
||||
public/*package*/ constructor A</*0*/ T : kotlin.Any!>()
|
||||
public open override /*2*/ /*fake_override*/ fun add(/*0*/ e: T): kotlin.Boolean
|
||||
public open override /*2*/ /*fake_override*/ fun addAll(/*0*/ c: kotlin.Collection<T>): kotlin.Boolean
|
||||
public open override /*2*/ /*fake_override*/ fun clear(): kotlin.Unit
|
||||
@@ -19,6 +19,6 @@ kotlin.jvm.PurelyImplements(value = "kotlin.MutableCollection") public/*package*
|
||||
public open override /*2*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
|
||||
java.lang.Override() public open override /*2*/ fun size(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
|
||||
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
|
||||
public open override /*1*/ /*fake_override*/ fun </*0*/ T : kotlin.Any!> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
compiler/testData/diagnostics/testsWithStdLib/purelyImplementedCollection/customClassMutableList.txt
Vendored
+3
-3
@@ -3,8 +3,8 @@ package
|
||||
internal fun bar(): kotlin.String?
|
||||
internal fun foo(): kotlin.Unit
|
||||
|
||||
kotlin.jvm.PurelyImplements(value = "kotlin.MutableList") public/*package*/ open class A</*0*/ T> : java.util.AbstractList<T!>, kotlin.MutableList<T> {
|
||||
public/*package*/ constructor A</*0*/ T>()
|
||||
kotlin.jvm.PurelyImplements(value = "kotlin.MutableList") public/*package*/ open class A</*0*/ T : kotlin.Any!> : java.util.AbstractList<T!>, kotlin.MutableList<T> {
|
||||
public/*package*/ constructor A</*0*/ T : kotlin.Any!>()
|
||||
protected/*protected and package*/ final override /*1*/ /*fake_override*/ var modCount: kotlin.Int
|
||||
public open override /*2*/ /*fake_override*/ fun add(/*0*/ e: T): kotlin.Boolean
|
||||
public open override /*2*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: T): kotlin.Unit
|
||||
@@ -33,6 +33,6 @@ kotlin.jvm.PurelyImplements(value = "kotlin.MutableList") public/*package*/ open
|
||||
java.lang.Override() public open override /*2*/ fun size(): kotlin.Int
|
||||
public open override /*2*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.MutableList<T>
|
||||
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
|
||||
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
|
||||
public open override /*1*/ /*fake_override*/ fun </*0*/ T : kotlin.Any!> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
+3
-3
@@ -3,8 +3,8 @@ package
|
||||
internal fun bar(): kotlin.String?
|
||||
internal fun foo(): kotlin.Unit
|
||||
|
||||
kotlin.jvm.PurelyImplements(value = "kotlin.MutableList") public/*package*/ open class A</*0*/ T, /*1*/ V> : java.util.AbstractList<T!> {
|
||||
public/*package*/ constructor A</*0*/ T, /*1*/ V>()
|
||||
kotlin.jvm.PurelyImplements(value = "kotlin.MutableList") public/*package*/ open class A</*0*/ T : kotlin.Any!, /*1*/ V : kotlin.Any!> : java.util.AbstractList<T!> {
|
||||
public/*package*/ constructor A</*0*/ T : kotlin.Any!, /*1*/ V : kotlin.Any!>()
|
||||
protected/*protected and package*/ final override /*1*/ /*fake_override*/ var modCount: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun add(/*0*/ e: T!): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: T!): kotlin.Unit
|
||||
@@ -33,6 +33,6 @@ kotlin.jvm.PurelyImplements(value = "kotlin.MutableList") public/*package*/ open
|
||||
java.lang.Override() public open override /*1*/ fun size(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.MutableList<T!>
|
||||
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
|
||||
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
|
||||
public open override /*1*/ /*fake_override*/ fun </*0*/ T : kotlin.Any!> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user