JvmDefault: remove most tests on @JvmDefault

The tests are removed because JvmDefault is going to be deprecated with
error in KT-54746 and removed later in KT-57696.

Many of the removed tests already had existing counterparts with the new
modes `all` and `all-compatibility`. In this change, I've added such
tests where they were missing, and removed tests which were testing
behavior specific to the JvmDefault annotation, such as some
diagnostics.

 #KT-54746
This commit is contained in:
Alexander Udalov
2023-03-31 01:06:32 +02:00
committed by Space Team
parent ace2279631
commit 3120a35a88
210 changed files with 1267 additions and 7917 deletions
@@ -6,24 +6,11 @@
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
fun test(): String {
return "O"
}
fun delegatedTest(): String {
return "fail"
}
fun test(): String = "Fail"
}
class Delegate : Test {
override fun test(): String {
return "Fail"
}
override fun delegatedTest(): String {
return "K"
}
override fun test(): String = "OK"
}
// MODULE: main(lib)
@@ -32,5 +19,5 @@ class TestClass(val foo: Test) : Test by foo
fun box(): String {
val testClass = TestClass(Delegate())
return testClass.test() + testClass.delegatedTest()
return testClass.test()
}
@@ -6,21 +6,11 @@
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
val test: String
get() = "O"
val testDelegated: String
get() = "fail"
val test: String get() = "Fail"
}
class Delegate : Test {
override val test: String
get() = "fail"
override val testDelegated: String
get() = "K"
override val test: String get() = "OK"
}
// MODULE: main(lib)
@@ -29,5 +19,5 @@ class TestClass(val foo: Test) : Test by foo
fun box(): String {
val testClass = TestClass(Delegate())
return testClass.test + testClass.testDelegated
return testClass.test
}
@@ -1,11 +1,10 @@
// !JVM_DEFAULT_MODE: all
// FULL_JDK
// WITH_STDLIB
// JVM_TARGET: 1.8
// MODULE: lib
// !JVM_DEFAULT_MODE: enable
// FILE: 1.kt
interface KInterface {
@JvmDefault
fun call(): List<String> {
return Thread.currentThread().getStackTrace().map { it.className + "." + it.methodName }
}
@@ -14,10 +13,9 @@ interface KInterface {
}
// MODULE: main(lib)
// !JVM_DEFAULT_MODE: all
// FILE: main.kt
interface KInterface2 : KInterface {
override fun superCall() = super.superCall()
}
class Foo: KInterface2 {
@@ -30,10 +28,9 @@ fun box(): String {
if (result[2] != "MainKt.box") return "fail 2: ${result[2]}"
result = Foo().superCall2()
if (result[1] != "KInterface\$DefaultImpls.superCall") return "fail 1: ${result[1]}"
if (result[2] != "KInterface2.superCall") return "fail 2: ${result[2]}"
if (result[3] != "Foo.superCall2") return "fail 3: ${result[3]}"
if (result[4] != "MainKt.box") return "fail 4: ${result[4]}"
if (result[1] != "KInterface.superCall") return "fail 1: ${result[1]}"
if (result[2] != "Foo.superCall2") return "fail 2: ${result[2]}"
if (result[3] != "MainKt.box") return "fail 3: ${result[3]}"
return "OK"
@@ -1,20 +0,0 @@
// !JVM_DEFAULT_MODE: all
// JVM_TARGET: 1.8
// WITH_STDLIB
// MODULE: lib
// FILE: 1.kt
interface Test {
val prop: String
get() = "OK"
}
// MODULE: main(lib)
// FILE: 2.kt
interface Test2 : Test {
override val prop: String
get() = super.prop
}
fun box(): String {
return object : Test2 {}.prop
}
@@ -1,10 +1,9 @@
// !JVM_DEFAULT_MODE: enable
// !JVM_DEFAULT_MODE: all
// JVM_TARGET: 1.8
// WITH_STDLIB
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
fun test(): String {
return "OK"
}
@@ -1,10 +1,9 @@
// !JVM_DEFAULT_MODE: enable
// !JVM_DEFAULT_MODE: all
// JVM_TARGET: 1.8
// WITH_STDLIB
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
fun test(): String {
return "OK"
}
@@ -14,7 +13,6 @@ interface Test {
// FILE: 2.kt
interface Test2 : Test {
@JvmDefault
override fun test(): String {
return super.test()
}
@@ -1,29 +0,0 @@
// !JVM_DEFAULT_MODE: enable
// JVM_TARGET: 1.8
// WITH_STDLIB
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
fun test(): String {
return "OK"
}
fun defaultImplTrigger(): String {
return "OK"
}
}
// MODULE: main(lib)
// FILE: 2.kt
interface Test2 : Test {
@JvmDefault
override fun test(): String {
return super.test()
}
}
fun box(): String {
return object : Test2 {}.test()
}
@@ -1,10 +1,9 @@
// !JVM_DEFAULT_MODE: enable
// !JVM_DEFAULT_MODE: all
// JVM_TARGET: 1.8
// WITH_STDLIB
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
val prop: String
get() = "OK"
}
@@ -1,10 +1,9 @@
// !JVM_DEFAULT_MODE: enable
// !JVM_DEFAULT_MODE: all
// JVM_TARGET: 1.8
// WITH_STDLIB
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
val prop: String
get() = "OK"
}
@@ -12,7 +11,6 @@ interface Test {
// MODULE: main(lib)
// FILE: 2.kt
interface Test2 : Test {
@JvmDefault
override val prop: String
get() = super.prop
}
@@ -1,25 +0,0 @@
// !JVM_DEFAULT_MODE: enable
// JVM_TARGET: 1.8
// WITH_STDLIB
// MODULE: lib
// FILE: 1.kt
interface Test {
@JvmDefault
val prop: String
get() = "OK"
val defaultImplTrigger: String
get() = "OK"
}
// MODULE: main(lib)
// FILE: 2.kt
interface Test2 : Test {
@JvmDefault
override val prop: String
get() = super.prop
}
fun box(): String {
return object : Test2 {}.prop
}
@@ -1,5 +1,5 @@
// !JVM_DEFAULT_MODE: enable
// MODULE: lib
// !JVM_DEFAULT_MODE: disable
// FILE: 1.kt
interface Test {
fun test(): String {
@@ -8,11 +8,11 @@ interface Test {
}
// MODULE: main(lib)
// !JVM_DEFAULT_MODE: all
// JVM_TARGET: 1.8
// WITH_STDLIB
// FILE: 2.kt
interface Test2 : Test {
@JvmDefault
override fun test(): String {
return super.test()
}
@@ -24,7 +24,6 @@ interface Test3 : Test {
interface Test4 : Test2, Test3 {
@JvmDefault
override fun test(): String {
return super.test()
}
@@ -1,5 +1,5 @@
// !JVM_DEFAULT_MODE: enable
// MODULE: lib
// !JVM_DEFAULT_MODE: disable
// FILE: 1.kt
interface Test {
fun test(): String {
@@ -8,6 +8,7 @@ interface Test {
}
// MODULE: main(lib)
// !JVM_DEFAULT_MODE: all
// JVM_TARGET: 1.8
// WITH_STDLIB
// FILE: 2.kt
@@ -18,7 +19,6 @@ open class TestClass : Test {
}
interface Test2 : Test {
@JvmDefault
override fun test(): String
}
@@ -1,5 +1,5 @@
// !JVM_DEFAULT_MODE: enable
// MODULE: lib
// !JVM_DEFAULT_MODE: disable
// FILE: 1.kt
interface Test {
fun test(): String {
@@ -8,6 +8,7 @@ interface Test {
}
// MODULE: main(lib)
// !JVM_DEFAULT_MODE: all
// JVM_TARGET: 1.8
// WITH_STDLIB
// FILE: 2.kt
@@ -16,7 +17,6 @@ abstract class TestClass : Test {
}
interface Test2 : Test {
@JvmDefault
override fun test(): String {
return "OK"
}
@@ -1,5 +1,5 @@
// !JVM_DEFAULT_MODE: enable
// MODULE: lib
// !JVM_DEFAULT_MODE: disable
// FILE: 1.kt
interface Test {
fun test(): String {
@@ -8,11 +8,11 @@ interface Test {
}
// MODULE: main(lib)
// !JVM_DEFAULT_MODE: all
// JVM_TARGET: 1.8
// WITH_STDLIB
// FILE: 2.kt
interface Test2 : Test {
@JvmDefault
override fun test(): String {
return super.test()
}
@@ -1,5 +1,5 @@
// !JVM_DEFAULT_MODE: enable
// MODULE: lib
// !JVM_DEFAULT_MODE: disable
// FILE: 1.kt
interface Test {
@@ -9,11 +9,11 @@ interface Test {
}
// MODULE: main(lib)
// !JVM_DEFAULT_MODE: all
// JVM_TARGET: 1.8
// WITH_STDLIB
// FILE: 2.kt
interface Test2 : Test {
@JvmDefault
override fun test(): String {
return super.test()
}
@@ -1,5 +1,5 @@
// !JVM_DEFAULT_MODE: enable
// MODULE: lib
// !JVM_DEFAULT_MODE: disable
// FILE: 1.kt
interface Test {
@@ -8,11 +8,11 @@ interface Test {
}
// MODULE: main(lib)
// !JVM_DEFAULT_MODE: all
// JVM_TARGET: 1.8
// WITH_STDLIB
// FILE: 2.kt
interface Test2 : Test {
@JvmDefault
override val test: String
get() = super.test
}