Skip java defaults in EXPLICIT_OVERRIDE_REQUIRED_IN_MIXED_MODE check

#KT-42674 Fixed
This commit is contained in:
Mikhael Bogdanov
2020-10-15 10:10:47 +02:00
parent a60febbdfb
commit b6dc99b98e
9 changed files with 192 additions and 1 deletions
@@ -0,0 +1,26 @@
// !JVM_DEFAULT_MODE: all-compatibility
// TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: A.java
public interface A {
default String foo() {
return "fail";
}
}
// FILE: B.java
public abstract class B implements A {}
// FILE: test.kt
interface KDefault : A {
override fun foo() = "OK"
}
class Problem : B(), KDefault
fun box(): String {
return Problem().foo()
}
@@ -0,0 +1,27 @@
// !JVM_DEFAULT_MODE: compatibility
// TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: A.java
public interface A {
default String foo() {
return "fail";
}
}
// FILE: B.java
public abstract class B implements A {}
// FILE: test.kt
interface KDefault : A {
@JvmDefault
override fun foo() = "OK"
}
class Problem : B(), KDefault
fun box(): String {
return Problem().foo()
}
+27
View File
@@ -0,0 +1,27 @@
// !JVM_DEFAULT_MODE: enable
// TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: A.java
public interface A {
default String foo() {
return "fail";
}
}
// FILE: B.java
public abstract class B implements A {}
// FILE: test.kt
interface KDefault : A {
@JvmDefault
override fun foo() = "OK"
}
class Problem : B(), KDefault
fun box(): String {
return Problem().foo()
}
@@ -0,0 +1,26 @@
// !JVM_DEFAULT_MODE: all
// TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: A.java
public interface A {
default String foo() {
return "fail";
}
}
// FILE: B.java
public abstract class B implements A {}
// FILE: test.kt
interface KDefault : A {
override fun foo() = "OK"
}
class Problem : B(), KDefault
fun box(): String {
return Problem().foo()
}