Generate 'DefaultImpls' for jvm 8 target only within compiler option

This commit is contained in:
Michael Bogdanov
2016-09-12 12:05:45 +03:00
parent ca41f01468
commit dd4d5e3aa1
15 changed files with 145 additions and 26 deletions

View File

@@ -0,0 +1,25 @@
// JVM_TARGET: 1.8
// KOTLIN_CONFIGURATION_FLAGS: +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

@@ -0,0 +1,37 @@
// JVM_TARGET: 1.8
// KOTLIN_CONFIGURATION_FLAGS: +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

View File

@@ -1,15 +0,0 @@
// JVM_TARGET: 1.8
interface Test {
fun a() {
}
}
// TESTED_OBJECT_KIND: class
// TESTED_OBJECTS: Test$DefaultImpls
// FLAGS: ACC_PUBLIC, ACC_FINAL, ACC_SUPER
// TESTED_OBJECT_KIND: class
// TESTED_OBJECTS: Test
// FLAGS: ACC_PUBLIC, ACC_ABSTRACT, ACC_INTERFACE