Deprecate @JvmDefault

This commit is contained in:
Mikhail Bogdanov
2020-03-27 15:56:55 +01:00
parent ff8eac29a0
commit c11f38688e
17 changed files with 58 additions and 57 deletions
@@ -2,7 +2,7 @@
// !JVM_DEFAULT_MODE: enable // !JVM_DEFAULT_MODE: enable
interface A<T> { interface A<T> {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
fun test(p: T) { fun test(p: T) {
} }
} }
@@ -13,7 +13,7 @@ public interface JavaInterface {
// FILE: 1.kt // FILE: 1.kt
interface KotlinInterface : JavaInterface { interface KotlinInterface : JavaInterface {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
override fun test() {} override fun test() {}
<!NON_JVM_DEFAULT_OVERRIDES_JAVA_DEFAULT!>override fun testForNonDefault()<!> {} <!NON_JVM_DEFAULT_OVERRIDES_JAVA_DEFAULT!>override fun testForNonDefault()<!> {}
@@ -22,7 +22,7 @@ interface KotlinInterface : JavaInterface {
} }
interface KotlinInterface2 : JavaInterface, KotlinInterface { interface KotlinInterface2 : JavaInterface, KotlinInterface {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
override fun test() {} override fun test() {}
override fun testForNonDefault() {} override fun testForNonDefault() {}
@@ -37,7 +37,7 @@ interface KotlinInterfaceForIndirect : JavaInterface {
interface KotlinInterfaceIndirectInheritance : KotlinInterfaceForIndirect { interface KotlinInterfaceIndirectInheritance : KotlinInterfaceForIndirect {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
override fun test() {} override fun test() {}
<!NON_JVM_DEFAULT_OVERRIDES_JAVA_DEFAULT!>override fun testForNonDefault()<!> {} <!NON_JVM_DEFAULT_OVERRIDES_JAVA_DEFAULT!>override fun testForNonDefault()<!> {}
@@ -63,7 +63,7 @@ interface KotlinInterfaceX {
} }
interface KotlinInterfaceManySuper: JavaInterface, KotlinInterfaceX { interface KotlinInterfaceManySuper: JavaInterface, KotlinInterfaceX {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
override fun test() {} override fun test() {}
<!NON_JVM_DEFAULT_OVERRIDES_JAVA_DEFAULT!>override fun testForNonDefault()<!> {} <!NON_JVM_DEFAULT_OVERRIDES_JAVA_DEFAULT!>override fun testForNonDefault()<!> {}
@@ -1,7 +1,7 @@
// !JVM_TARGET: 1.8 // !JVM_TARGET: 1.8
interface A { interface A {
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
fun test()<!> { fun test()<!> {
} }
} }
@@ -28,7 +28,7 @@ class Bar2 : Foo(), A
class Bar3 : Foo(), B class Bar3 : Foo(), B
open class BarWithJvmDefault : B { open class BarWithJvmDefault : B {
<!JVM_DEFAULT_NOT_IN_INTERFACE!>@JvmDefault<!> <!JVM_DEFAULT_NOT_IN_INTERFACE!>@<!DEPRECATION!>JvmDefault<!><!>
override fun test() { override fun test() {
} }
} }
@@ -2,12 +2,12 @@
// !JVM_TARGET: 1.8 // !JVM_TARGET: 1.8
public interface KInterface { public interface KInterface {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
fun test(): String { fun test(): String {
return "OK"; return "OK";
} }
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
val property: String val property: String
get() = "OK" get() = "OK"
@@ -23,7 +23,7 @@ public interface KInterface {
// FILE: 1.kt // FILE: 1.kt
interface KotlinInterface : KInterface { interface KotlinInterface : KInterface {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
fun fooo() { fun fooo() {
super.test() super.test()
super.property super.property
@@ -42,7 +42,7 @@ interface KotlinInterface : KInterface {
} }
} }
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
val propertyy: String val propertyy: String
get() { get() {
super.test() super.test()
@@ -105,7 +105,7 @@ interface KotlinInterface : KInterface {
} }
interface KotlinInterfaceIndirectInheritance : KotlinInterface { interface KotlinInterfaceIndirectInheritance : KotlinInterface {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
fun foooo() { fun foooo() {
super.test() super.test()
super.property super.property
@@ -124,7 +124,7 @@ interface KotlinInterfaceIndirectInheritance : KotlinInterface {
} }
} }
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
val propertyyy: String val propertyyy: String
get() { get() {
super.test() super.test()
@@ -15,7 +15,7 @@ public interface JavaInterface {
// FILE: 1.kt // FILE: 1.kt
interface KotlinInterface : JavaInterface { interface KotlinInterface : JavaInterface {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
fun fooo() { fun fooo() {
super.test() super.test()
@@ -26,7 +26,7 @@ interface KotlinInterface : JavaInterface {
} }
} }
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
val propertyy: String val propertyy: String
get() { get() {
super.test() super.test()
@@ -39,14 +39,14 @@ interface KotlinInterface : JavaInterface {
return "" return ""
} }
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
override fun testOverride(): String { override fun testOverride(): String {
return "OK"; return "OK";
} }
} }
interface KotlinInterfaceIndirectInheritance : KotlinInterface { interface KotlinInterfaceIndirectInheritance : KotlinInterface {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
fun foooo() { fun foooo() {
super.test() super.test()
@@ -57,7 +57,7 @@ interface KotlinInterfaceIndirectInheritance : KotlinInterface {
} }
} }
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
val propertyyy: String val propertyyy: String
get() { get() {
super.test() super.test()
@@ -2,27 +2,27 @@
interface B { interface B {
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
fun test()<!> {} fun test()<!> {}
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
abstract fun test2(s: String = "")<!> abstract fun test2(s: String = "")<!>
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
abstract fun test3()<!> abstract fun test3()<!>
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
abstract val prop: String<!> abstract val prop: String<!>
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
abstract val prop2: String<!> abstract val prop2: String<!>
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
val prop3: String<!> val prop3: String<!>
get() = "" get() = ""
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
var prop4: String<!> var prop4: String<!>
get() = "" get() = ""
set(<!UNUSED_PARAMETER!>value<!>) {} set(<!UNUSED_PARAMETER!>value<!>) {}
@@ -2,21 +2,21 @@
abstract class A { abstract class A {
<!JVM_DEFAULT_NOT_IN_INTERFACE!>@JvmDefault<!> <!JVM_DEFAULT_NOT_IN_INTERFACE!>@<!DEPRECATION!>JvmDefault<!><!>
fun test() {} fun test() {}
<!JVM_DEFAULT_NOT_IN_INTERFACE!>@JvmDefault<!> <!JVM_DEFAULT_NOT_IN_INTERFACE!>@<!DEPRECATION!>JvmDefault<!><!>
abstract fun test2(s: String = "") abstract fun test2(s: String = "")
<!JVM_DEFAULT_NOT_IN_INTERFACE!>@JvmDefault<!> <!JVM_DEFAULT_NOT_IN_INTERFACE!>@<!DEPRECATION!>JvmDefault<!><!>
abstract fun test3() abstract fun test3()
} }
object B { object B {
<!JVM_DEFAULT_NOT_IN_INTERFACE!>@JvmDefault<!> <!JVM_DEFAULT_NOT_IN_INTERFACE!>@<!DEPRECATION!>JvmDefault<!><!>
fun test() {} fun test() {}
<!JVM_DEFAULT_NOT_IN_INTERFACE!>@JvmDefault<!> <!JVM_DEFAULT_NOT_IN_INTERFACE!>@<!DEPRECATION!>JvmDefault<!><!>
fun test2(<!UNUSED_PARAMETER!>s<!>: String = "") {} fun test2(<!UNUSED_PARAMETER!>s<!>: String = "") {}
} }
@@ -3,12 +3,12 @@
interface B { interface B {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
val prop1: String val prop1: String
<!WRONG_ANNOTATION_TARGET!>@JvmDefault<!> get() = "" <!WRONG_ANNOTATION_TARGET!>@<!DEPRECATION!>JvmDefault<!><!> get() = ""
var prop2: String var prop2: String
<!WRONG_ANNOTATION_TARGET!>@JvmDefault<!> get() = "" <!WRONG_ANNOTATION_TARGET!>@<!DEPRECATION!>JvmDefault<!><!> get() = ""
<!WRONG_ANNOTATION_TARGET!>@JvmDefault<!> set(<!UNUSED_PARAMETER!>value<!>) {} <!WRONG_ANNOTATION_TARGET!>@<!DEPRECATION!>JvmDefault<!><!> set(<!UNUSED_PARAMETER!>value<!>) {}
} }
@@ -2,7 +2,7 @@
// !JVM_DEFAULT_MODE: enable // !JVM_DEFAULT_MODE: enable
interface A { interface A {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
fun test() {} fun test() {}
} }
@@ -2,7 +2,7 @@
// !JVM_DEFAULT_MODE: enable // !JVM_DEFAULT_MODE: enable
interface A { interface A {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
val test: String val test: String
get() = "OK" get() = "OK"
} }
@@ -1,7 +1,7 @@
// !JVM_TARGET: 1.8 // !JVM_TARGET: 1.8
// FILE: 1.kt // FILE: 1.kt
interface A { interface A {
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
fun test()<!> { fun test()<!> {
} }
} }
@@ -12,7 +12,7 @@ interface <!JVM_DEFAULT_THROUGH_INHERITANCE!>B<!> : A {
} }
interface C : B { interface C : B {
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
override fun test()<!> { override fun test()<!> {
super.<!USAGE_OF_JVM_DEFAULT_THROUGH_SUPER_CALL!>test<!>() super.<!USAGE_OF_JVM_DEFAULT_THROUGH_SUPER_CALL!>test<!>()
} }
@@ -1,6 +1,6 @@
// !JVM_TARGET: 1.8 // !JVM_TARGET: 1.8
interface A { interface A {
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
fun test()<!> { fun test()<!> {
} }
} }
@@ -16,7 +16,7 @@ interface B{
interface C : A, B { interface C : A, B {
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
override fun test()<!> { override fun test()<!> {
super<B>.test() super<B>.test()
super<A>.<!USAGE_OF_JVM_DEFAULT_THROUGH_SUPER_CALL!>test<!>() super<A>.<!USAGE_OF_JVM_DEFAULT_THROUGH_SUPER_CALL!>test<!>()
@@ -24,7 +24,7 @@ interface C : A, B {
} }
interface D : B, A { interface D : B, A {
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
override fun test()<!> { override fun test()<!> {
super<B>.test() super<B>.test()
super<A>.<!USAGE_OF_JVM_DEFAULT_THROUGH_SUPER_CALL!>test<!>() super<A>.<!USAGE_OF_JVM_DEFAULT_THROUGH_SUPER_CALL!>test<!>()
@@ -1,6 +1,6 @@
// !JVM_TARGET: 1.8 // !JVM_TARGET: 1.8
interface A { interface A {
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
fun test()<!> fun test()<!>
} }
@@ -1,6 +1,6 @@
// !JVM_TARGET: 1.8 // !JVM_TARGET: 1.8
interface A { interface A {
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault <!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
fun test()<!> { fun test()<!> {
} }
@@ -2,27 +2,27 @@
interface B { interface B {
<!JVM_DEFAULT_IN_JVM6_TARGET!>@JvmDefault<!> <!JVM_DEFAULT_IN_JVM6_TARGET!>@<!DEPRECATION!>JvmDefault<!><!>
fun test() {} fun test() {}
<!JVM_DEFAULT_IN_JVM6_TARGET!>@JvmDefault<!> <!JVM_DEFAULT_IN_JVM6_TARGET!>@<!DEPRECATION!>JvmDefault<!><!>
abstract fun test2(s: String = "") abstract fun test2(s: String = "")
<!JVM_DEFAULT_IN_JVM6_TARGET!>@JvmDefault<!> <!JVM_DEFAULT_IN_JVM6_TARGET!>@<!DEPRECATION!>JvmDefault<!><!>
abstract fun test3() abstract fun test3()
<!JVM_DEFAULT_IN_JVM6_TARGET!>@JvmDefault<!> <!JVM_DEFAULT_IN_JVM6_TARGET!>@<!DEPRECATION!>JvmDefault<!><!>
abstract val prop: String abstract val prop: String
<!JVM_DEFAULT_IN_JVM6_TARGET!>@JvmDefault<!> <!JVM_DEFAULT_IN_JVM6_TARGET!>@<!DEPRECATION!>JvmDefault<!><!>
abstract val prop2: String abstract val prop2: String
<!JVM_DEFAULT_IN_JVM6_TARGET!>@JvmDefault<!> <!JVM_DEFAULT_IN_JVM6_TARGET!>@<!DEPRECATION!>JvmDefault<!><!>
val prop3: String val prop3: String
get() = "" get() = ""
<!JVM_DEFAULT_IN_JVM6_TARGET!>@JvmDefault<!> <!JVM_DEFAULT_IN_JVM6_TARGET!>@<!DEPRECATION!>JvmDefault<!><!>
var prop4: String var prop4: String
get() = "" get() = ""
set(<!UNUSED_PARAMETER!>value<!>) {} set(<!UNUSED_PARAMETER!>value<!>) {}
@@ -3,27 +3,27 @@
interface B { interface B {
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
fun test() {} fun test() {}
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
abstract fun test2(s: String = "") abstract fun test2(s: String = "")
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
abstract fun test3() abstract fun test3()
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
abstract val prop: String abstract val prop: String
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
abstract val prop2: String abstract val prop2: String
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
val prop3: String val prop3: String
get() = "" get() = ""
@JvmDefault @<!DEPRECATION!>JvmDefault<!>
var prop4: String var prop4: String
get() = "" get() = ""
set(<!UNUSED_PARAMETER!>value<!>) {} set(<!UNUSED_PARAMETER!>value<!>) {}
@@ -30,4 +30,5 @@ import kotlin.internal.RequireKotlinVersionKind
@SinceKotlin("1.2") @SinceKotlin("1.2")
@RequireKotlin("1.2.40", versionKind = RequireKotlinVersionKind.COMPILER_VERSION) @RequireKotlin("1.2.40", versionKind = RequireKotlinVersionKind.COMPILER_VERSION)
@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY) @Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY)
@Deprecated("Switch to new -Xjvm-default options: `all` or `all-compatibility`")
annotation class JvmDefault annotation class JvmDefault