K2 opt-in: drop redundant recursive check for overridables
This commit is contained in:
committed by
Space Team
parent
cd81f22bd3
commit
a77750a257
+22
@@ -0,0 +1,22 @@
|
||||
@RequiresOptIn
|
||||
@Target(AnnotationTarget.TYPEALIAS, AnnotationTarget.FUNCTION)
|
||||
annotation class Marker
|
||||
|
||||
class Wrapper<T>
|
||||
|
||||
@Marker
|
||||
typealias TA<T> = Wrapper<T>
|
||||
|
||||
open class Base<T> {
|
||||
@Marker
|
||||
open fun foo(): T? = null
|
||||
|
||||
open fun bar(): <!OPT_IN_USAGE_ERROR!>TA<T><!>? = null
|
||||
}
|
||||
|
||||
class Derived : Base<String>()
|
||||
|
||||
fun test(d: Derived) {
|
||||
d.<!OPT_IN_USAGE_ERROR!>foo<!>()
|
||||
d.<!OPT_IN_USAGE_ERROR!>bar<!>()
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
@RequiresOptIn
|
||||
@Target(AnnotationTarget.TYPEALIAS, AnnotationTarget.FUNCTION)
|
||||
annotation class Marker
|
||||
|
||||
class Wrapper<T>
|
||||
|
||||
@Marker
|
||||
typealias TA<T> = Wrapper<T>
|
||||
|
||||
open class Base<T> {
|
||||
@Marker
|
||||
open fun foo(): T? = null
|
||||
|
||||
open fun bar(): <!OPT_IN_USAGE_ERROR!>TA<!><T>? = null
|
||||
}
|
||||
|
||||
class Derived : Base<String>()
|
||||
|
||||
fun test(d: Derived) {
|
||||
d.<!OPT_IN_USAGE_ERROR!>foo<!>()
|
||||
d.<!OPT_IN_USAGE_ERROR!>bar<!>()
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
package
|
||||
|
||||
public fun test(/*0*/ d: Derived): kotlin.Unit
|
||||
|
||||
public open class Base</*0*/ T> {
|
||||
public constructor Base</*0*/ T>()
|
||||
public open fun bar(): TA<T>? /* = Wrapper<T>? */
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@Marker public open fun foo(): T?
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Derived : Base<kotlin.String> {
|
||||
public constructor Derived()
|
||||
public open override /*1*/ /*fake_override*/ fun bar(): TA<kotlin.String>? /* = Wrapper<kotlin.String>? */
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@Marker public open override /*1*/ /*fake_override*/ fun foo(): kotlin.String?
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlin.RequiresOptIn @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPEALIAS, AnnotationTarget.FUNCTION}) public final annotation class Marker : kotlin.Annotation {
|
||||
public constructor Marker()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Wrapper</*0*/ T> {
|
||||
public constructor Wrapper</*0*/ T>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@Marker public typealias TA</*0*/ T> = Wrapper<T>
|
||||
Reference in New Issue
Block a user