Initial support of @JvmDefault

(cherry picked from commit fe45eb2)
This commit is contained in:
Mikhael Bogdanov
2018-02-20 18:02:54 +01:00
parent 33577b4078
commit a28a0beaea
50 changed files with 322 additions and 256 deletions

View File

@@ -1,12 +1,18 @@
// !API_VERSION: 1.3
// JVM_TARGET: 1.8
// KOTLIN_CONFIGURATION_FLAGS: +JVM.JVM8_TARGET_WITH_DEFAULTS
// WITH_RUNTIME
interface Test {
@kotlin.annotations.JvmDefault
fun test(): String {
return "OK"
}
fun testAbstract(): String
fun testDefaultImpl() {
}
}
// TESTED_OBJECT_KIND: function
@@ -16,3 +22,19 @@ interface Test {
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test, testAbstract
// FLAGS: ACC_PUBLIC, ACC_ABSTRACT
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test, testDefaultImpl
// FLAGS: ACC_PUBLIC, ACC_ABSTRACT
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test$DefaultImpls, test
// ABSENT: TRUE
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test$DefaultImpls, testAbstract
// ABSENT: TRUE
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test$DefaultImpls, testDefaultImpl
// FLAGS: ACC_PUBLIC, ACC_STATIC

View File

@@ -1,24 +0,0 @@
// JVM_TARGET: 1.8
// KOTLIN_CONFIGURATION_FLAGS: +JVM.JVM8_TARGET_WITH_DEFAULTS, +JVM.INTERFACE_COMPATIBILITY
interface Test {
fun test(): String {
return "OK"
}
}
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test, test
// FLAGS: ACC_PUBLIC
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test, test$defaultImpl
// FLAGS: ACC_PUBLIC, ACC_STATIC, ACC_SYNTHETIC
// TESTED_OBJECT_KIND: class
// TESTED_OBJECTS: Test$DefaultImpls
// FLAGS: ACC_PUBLIC, ACC_FINAL, ACC_SUPER
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test$DefaultImpls, test
// FLAGS: ACC_PUBLIC, ACC_STATIC

View File

@@ -1,7 +1,9 @@
// !API_VERSION: 1.3
// JVM_TARGET: 1.8
// KOTLIN_CONFIGURATION_FLAGS: +JVM.JVM8_TARGET_WITH_DEFAULTS
// WITH_RUNTIME
interface Test {
@kotlin.annotations.JvmDefault
var z: String
get() = "OK"
set(value) {}

View File

@@ -1,37 +0,0 @@
// JVM_TARGET: 1.8
// KOTLIN_CONFIGURATION_FLAGS: +JVM.JVM8_TARGET_WITH_DEFAULTS, +JVM.INTERFACE_COMPATIBILITY
interface Test {
var z: String
get() = "OK"
set(value) {}
}
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test, getZ
// FLAGS: ACC_PUBLIC
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test, setZ
// FLAGS: ACC_PUBLIC
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test, getZ$defaultImpl
// FLAGS: ACC_PUBLIC, ACC_STATIC, ACC_SYNTHETIC
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test, setZ$defaultImpl
// FLAGS: ACC_PUBLIC, ACC_STATIC, ACC_SYNTHETIC
// TESTED_OBJECT_KIND: class
// TESTED_OBJECTS: Test$DefaultImpls
// FLAGS: ACC_PUBLIC, ACC_FINAL, ACC_SUPER
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test$DefaultImpls, getZ
// FLAGS: ACC_PUBLIC, ACC_STATIC
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test$DefaultImpls, setZ
// FLAGS: ACC_PUBLIC, ACC_STATIC