K2: generate implicit dispatch receivers for static members called
#KT-55371 Fixed #KT-55372 Fixed
This commit is contained in:
committed by
Space Team
parent
9cfcf057ef
commit
4167a69e30
Vendored
+28
@@ -0,0 +1,28 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// FILE: javapackage/PackagePrivateGrandparentAbstractClass.java
|
||||
|
||||
package javapackage;
|
||||
|
||||
/*package-private*/ interface PackagePrivateGrandparentInterface {
|
||||
String publicStaticField = "OK";
|
||||
}
|
||||
|
||||
// FILE: javapackage/PublicParentClass.java
|
||||
|
||||
package javapackage;
|
||||
|
||||
public class PublicParentClass implements PackagePrivateGrandparentInterface {}
|
||||
|
||||
// FILE: Child.kt
|
||||
|
||||
import javapackage.PublicParentClass
|
||||
|
||||
class Child : PublicParentClass() {
|
||||
fun foo(): String {
|
||||
return publicStaticField
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
fun box() = Child().foo()
|
||||
Vendored
-2
@@ -1,6 +1,4 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// See KT-55371
|
||||
// FILE: javapackage/PackagePrivateGrandparentAbstractClass.java
|
||||
|
||||
package javapackage;
|
||||
|
||||
Vendored
+31
@@ -0,0 +1,31 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// FILE: javapackage/PackagePrivateGrandparentAbstractClass.java
|
||||
|
||||
package javapackage;
|
||||
|
||||
/*package-private*/ abstract class PackagePrivateGrandparentAbstractClass {
|
||||
public static void publicStaticMethod() {}
|
||||
|
||||
public static String publicStaticField = "OK";
|
||||
}
|
||||
|
||||
// FILE: javapackage/PublicParentClass.java
|
||||
|
||||
package javapackage;
|
||||
|
||||
public class PublicParentClass extends PackagePrivateGrandparentAbstractClass {}
|
||||
|
||||
// FILE: Child.kt
|
||||
|
||||
typealias Base = javapackage.PublicParentClass
|
||||
|
||||
class Child : Base() {
|
||||
fun foo(): String {
|
||||
publicStaticMethod()
|
||||
return publicStaticField
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
fun box() = Child().foo()
|
||||
Reference in New Issue
Block a user