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" }