Support fake Java property overrides in function equality in bridges
A synthetic property descriptor created for `B.value` (see the added test) should not be equal to the normal descriptor created by the fake override construction algorithm. Otherwise we can't reach this synthetic non-abstract descriptor when building bridges in `C`, which results in exception. #KT-31367 Fixed
This commit is contained in:
compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/javaGetterImplementsKotlinProperty.kt
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
class C : B(), I
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package test
|
||||
|
||||
public abstract class A {
|
||||
public constructor A()
|
||||
public open fun getValue(): kotlin.String!
|
||||
}
|
||||
|
||||
public open class B : test.A, test.I {
|
||||
public constructor B()
|
||||
public open override /*2*/ /*fake_override*/ val value: kotlin.String?
|
||||
}
|
||||
|
||||
public final class C : test.B, test.I {
|
||||
public constructor C()
|
||||
public open override /*2*/ /*fake_override*/ val value: kotlin.String?
|
||||
}
|
||||
|
||||
public interface I {
|
||||
public abstract val value: kotlin.String?
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package test;
|
||||
|
||||
public abstract class A {
|
||||
public String getValue() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package test;
|
||||
|
||||
public class B extends A implements I {
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package test
|
||||
|
||||
interface I {
|
||||
val value: String?
|
||||
}
|
||||
Reference in New Issue
Block a user