Generate defaults methods on extending jvm6 interfaces

This commit is contained in:
Mikhael Bogdanov
2016-05-19 14:30:34 +03:00
parent 331341bd4d
commit 16159c483d
7 changed files with 171 additions and 1 deletions
@@ -0,0 +1,24 @@
// WITH_REFLECT
// FULL_JDK
// FILE: 1.kt
interface Test {
fun test() {
}
}
// FILE: 2.kt
// KOTLIN_CONFIGURATION_FLAGS: +JVM.JVM_8_TARGET
class TestClass : Test {
}
fun box(): String {
try {
TestClass::class.java.getDeclaredMethod("test")
}
catch (e: NoSuchMethodException) {
return "fail"
}
return "OK"
}
@@ -0,0 +1,24 @@
// WITH_REFLECT
// FULL_JDK
// FILE: 1.kt
interface Test {
fun test() {
}
}
// FILE: 2.kt
// KOTLIN_CONFIGURATION_FLAGS: +JVM.JVM_8_TARGET
interface Test2 : Test {
}
fun box(): String {
try {
Test2::class.java.getDeclaredMethod("test")
}
catch (e: NoSuchMethodException) {
return "fail"
}
return "OK"
}
@@ -0,0 +1,35 @@
// WITH_REFLECT
// FULL_JDK
// FILE: 1.kt
interface Test {
fun test() {
}
}
// FILE: 2.kt
// KOTLIN_CONFIGURATION_FLAGS: +JVM.JVM_8_TARGET
interface Test2 : Test {
}
interface Test3 : Test2 {
}
fun box(): String {
try {
Test2::class.java.getDeclaredMethod("test")
}
catch (e: NoSuchMethodException) {
return "fail 1"
}
try {
Test3::class.java.getDeclaredMethod("test")
}
catch (e: NoSuchMethodException) {
return "OK"
}
return "fail 2"
}
@@ -0,0 +1,17 @@
// FILE: 1.kt
interface Test {
fun test(): String {
return "OK"
}
}
// FILE: 2.kt
// KOTLIN_CONFIGURATION_FLAGS: +JVM.JVM_8_TARGET
class TestClass : Test {
}
fun box(): String {
return TestClass().test()
}
@@ -0,0 +1,22 @@
// FILE: 1.kt
interface Test {
fun test(): String {
return "OK"
}
}
// FILE: 2.kt
// KOTLIN_CONFIGURATION_FLAGS: +JVM.JVM_8_TARGET
interface Test2 : Test {
}
class TestClass : Test2 {
}
fun box(): String {
return TestClass().test()
}