| // TARGET_BACKEND: JVM |
| // FILE: CompanionInitialization.java |
| |
| public class CompanionInitialization { |
| |
| public static Object getCompanion() { |
| return ConcreteWithStatic.Companion; |
| } |
| |
| } |
| |
| // FILE: CompanionInitialization.kt |
| |
| interface IStatic |
| |
| open class Static(x: IStatic) { |
| fun doSth() { |
| } |
| } |
| |
| class ConcreteWithStatic : IStatic { |
| companion object : Static(ConcreteWithStatic()) |
| } |
| |
| fun box(): String { |
| ConcreteWithStatic.doSth() |
| |
| val companion: Any? = CompanionInitialization.getCompanion() |
| if (companion == null) return "fail 1" |
| if (companion != ConcreteWithStatic) return "fail 2" |
| |
| return "OK" |
| } |