Forbid using experimental markers on override declarations
#KT-45844 Fixed
This commit is contained in:
committed by
teamcityserver
parent
bb9efab3c4
commit
603afe89a2
+68
@@ -30,6 +30,11 @@ annotation class E4
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class E5
|
||||
|
||||
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
||||
@Target(PROPERTY, FUNCTION, PROPERTY_SETTER, VALUE_PARAMETER, FIELD)
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class E6
|
||||
|
||||
var some: Int
|
||||
@E4
|
||||
get() = 42
|
||||
@@ -38,3 +43,66 @@ var some: Int
|
||||
|
||||
@get:E4
|
||||
val another: Int = 42
|
||||
|
||||
class My {
|
||||
@E6
|
||||
override fun hashCode() = 0
|
||||
}
|
||||
|
||||
interface Base {
|
||||
val bar: Int
|
||||
|
||||
val baz: Int
|
||||
|
||||
@E6
|
||||
fun foo()
|
||||
|
||||
fun String.withReceiver()
|
||||
}
|
||||
|
||||
class Derived : Base {
|
||||
@E6
|
||||
override val bar: Int = 42
|
||||
|
||||
@set:E6 @setparam:E6
|
||||
override var baz: Int = 13
|
||||
|
||||
@E6
|
||||
override fun foo() {}
|
||||
|
||||
override fun @receiver:E6 String.withReceiver() {}
|
||||
}
|
||||
|
||||
abstract class Another : Base {
|
||||
@delegate:E6
|
||||
override val bar: Int by lazy { 42 }
|
||||
}
|
||||
|
||||
interface A {
|
||||
fun f()
|
||||
}
|
||||
|
||||
interface B {
|
||||
@E6
|
||||
fun f()
|
||||
}
|
||||
|
||||
interface C1 : A, B
|
||||
interface C2 : B, A
|
||||
|
||||
class X1 : C1 {
|
||||
@E6 // Ok
|
||||
override fun f() {}
|
||||
}
|
||||
|
||||
class X2 : C2 {
|
||||
@E6 // Ok
|
||||
override fun f() {}
|
||||
}
|
||||
|
||||
open class Y(val b: B): B by b
|
||||
|
||||
class Z(b: B) : Y(b) {
|
||||
@E6
|
||||
override fun f() {}
|
||||
}
|
||||
+68
@@ -30,6 +30,11 @@ annotation class E4
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class E5
|
||||
|
||||
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
||||
@Target(PROPERTY, FUNCTION, PROPERTY_SETTER, VALUE_PARAMETER, FIELD)
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class E6
|
||||
|
||||
var some: Int
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_GETTER!>@E4<!>
|
||||
get() = 42
|
||||
@@ -39,3 +44,66 @@ var some: Int
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_GETTER!>@get:E4<!>
|
||||
val another: Int = 42
|
||||
|
||||
class My {
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_OVERRIDE!>@E6<!>
|
||||
override fun hashCode() = 0
|
||||
}
|
||||
|
||||
interface Base {
|
||||
val bar: Int
|
||||
|
||||
val baz: Int
|
||||
|
||||
@E6
|
||||
fun foo()
|
||||
|
||||
fun String.withReceiver()
|
||||
}
|
||||
|
||||
class Derived : Base {
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_OVERRIDE!>@E6<!>
|
||||
override val bar: Int = 42
|
||||
|
||||
@set:E6 @setparam:E6
|
||||
override var baz: Int = 13
|
||||
|
||||
@E6
|
||||
override fun foo() {}
|
||||
|
||||
override fun @receiver:E6 String.withReceiver() {}
|
||||
}
|
||||
|
||||
abstract class Another : Base {
|
||||
@delegate:E6
|
||||
override val bar: Int by lazy { 42 }
|
||||
}
|
||||
|
||||
interface A {
|
||||
fun f()
|
||||
}
|
||||
|
||||
interface B {
|
||||
@E6
|
||||
fun f()
|
||||
}
|
||||
|
||||
interface C1 : A, B
|
||||
interface C2 : B, A
|
||||
|
||||
class X1 : C1 {
|
||||
@E6 // Ok
|
||||
override fun f() {}
|
||||
}
|
||||
|
||||
class X2 : C2 {
|
||||
@E6 // Ok
|
||||
override fun f() {}
|
||||
}
|
||||
|
||||
open class Y(val b: B): B by b
|
||||
|
||||
class Z(b: B) : Y(b) {
|
||||
@E6
|
||||
override fun f() {}
|
||||
}
|
||||
|
||||
|
||||
+108
@@ -4,6 +4,66 @@ package api {
|
||||
@get:api.E4 public val another: kotlin.Int = 42
|
||||
@get:api.E4 @set:api.E5 public var some: kotlin.Int
|
||||
|
||||
public interface A {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public abstract class Another : api.Base {
|
||||
public constructor Another()
|
||||
@delegate:api.E6 public open override /*1*/ val bar: kotlin.Int
|
||||
public abstract override /*1*/ /*fake_override*/ val baz: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@api.E6 public abstract override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public abstract override /*1*/ /*fake_override*/ fun kotlin.String.withReceiver(): kotlin.Unit
|
||||
}
|
||||
|
||||
public interface B {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@api.E6 public abstract fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface Base {
|
||||
public abstract val bar: kotlin.Int
|
||||
public abstract val baz: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@api.E6 public abstract fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public abstract fun kotlin.String.withReceiver(): kotlin.Unit
|
||||
}
|
||||
|
||||
public interface C1 : api.A, api.B {
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract override /*2*/ /*fake_override*/ fun f(): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface C2 : api.B, api.A {
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@api.E6 public abstract override /*2*/ /*fake_override*/ fun f(): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Derived : api.Base {
|
||||
public constructor Derived()
|
||||
@api.E6 public open override /*1*/ val bar: kotlin.Int = 42
|
||||
@set:api.E6 @setparam:api.E6 public open override /*1*/ var baz: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@api.E6 public open override /*1*/ fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public open override /*1*/ fun @receiver:api.E6 kotlin.String.withReceiver(): kotlin.Unit
|
||||
}
|
||||
|
||||
@kotlin.RequiresOptIn(level = Level.WARNING) @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.PROPERTY, AnnotationTarget.FIELD, AnnotationTarget.LOCAL_VARIABLE, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.TYPE, AnnotationTarget.TYPEALIAS}) @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) public final annotation class E1 : kotlin.Annotation {
|
||||
public constructor E1()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@@ -38,4 +98,52 @@ package api {
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlin.RequiresOptIn(level = Level.WARNING) @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FIELD}) @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) public final annotation class E6 : kotlin.Annotation {
|
||||
public constructor E6()
|
||||
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 My {
|
||||
public constructor My()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@api.E6 public open override /*1*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class X1 : api.C1 {
|
||||
public constructor X1()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@api.E6 public open override /*1*/ fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class X2 : api.C2 {
|
||||
public constructor X2()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@api.E6 public open override /*1*/ fun f(): 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 Y : api.B {
|
||||
public constructor Y(/*0*/ b: api.B)
|
||||
public final val b: api.B
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@api.E6 public open override /*1*/ /*delegation*/ fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Z : api.Y {
|
||||
public constructor Z(/*0*/ b: api.B)
|
||||
public final override /*1*/ /*fake_override*/ val b: api.B
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@api.E6 public open override /*1*/ fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user