FIR2IR don't generate delegates for default interface members
This commit is contained in:
committed by
TeamCityServer
parent
261482904c
commit
88f41d006a
-2
@@ -1,6 +1,4 @@
|
||||
// !JVM_DEFAULT_MODE: all-compatibility
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// FIR status: FailK
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_STDLIB
|
||||
|
||||
-2
@@ -1,6 +1,4 @@
|
||||
// !JVM_DEFAULT_MODE: all-compatibility
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// FIR status: failK
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_STDLIB
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// FIR status: Shouldn't be executed in 'remove'
|
||||
// FIR status: NSME: Test.remove(Ljava/lang/String;Ljava/lang/String;)Z
|
||||
// FIR + JVM_IR:
|
||||
// INVOKEVIRTUAL Test.remove (Ljava/lang/String;Ljava/lang/String;)Z
|
||||
// => java.lang.NoSuchMethodError: Test.remove(Ljava/lang/String;Ljava/lang/String;)Z
|
||||
// FE1.0 + JVM_IR:
|
||||
// INVOKEVIRTUAL Test.remove (Ljava/lang/Object;Ljava/lang/Object;)Z
|
||||
// => default method in java.util.Map (as expected)
|
||||
|
||||
// SKIP_JDK6
|
||||
// TARGET_BACKEND: JVM
|
||||
// FULL_JDK
|
||||
@@ -25,3 +32,4 @@ fun box(): String {
|
||||
|
||||
return test.getOrDefault("absent", "OK")
|
||||
}
|
||||
|
||||
|
||||
-2
@@ -1,6 +1,4 @@
|
||||
// !JVM_DEFAULT_MODE: all-compatibility
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// FIR status: failK
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_STDLIB
|
||||
|
||||
Vendored
-2
@@ -1,6 +1,4 @@
|
||||
// !JVM_DEFAULT_MODE: all-compatibility
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// FIR status: failK
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_STDLIB
|
||||
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_STDLIB
|
||||
|
||||
// FILE: javaDefaultMethod.kt
|
||||
|
||||
class JImpl : J {
|
||||
override fun getO() = "fail"
|
||||
override fun getK() = "K"
|
||||
}
|
||||
|
||||
class Test : J by JImpl()
|
||||
|
||||
fun box() =
|
||||
Test().getO() + Test().getK()
|
||||
|
||||
// FILE: J.java
|
||||
public interface J {
|
||||
default String getO() {
|
||||
return "O";
|
||||
}
|
||||
|
||||
String getK();
|
||||
}
|
||||
@@ -1,6 +1,4 @@
|
||||
// !JVM_DEFAULT_MODE: enable
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// FIR status: failK
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_STDLIB
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
// !JVM_DEFAULT_MODE: enable
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// FIR status: failK
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_STDLIB
|
||||
|
||||
-2
@@ -1,6 +1,4 @@
|
||||
// !JVM_DEFAULT_MODE: all
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// FIR status: failK
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_STDLIB
|
||||
|
||||
-2
@@ -1,6 +1,4 @@
|
||||
// !JVM_DEFAULT_MODE: all
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// FIR status: failK
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_STDLIB
|
||||
|
||||
Reference in New Issue
Block a user