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