Files
kotlin-fork/compiler/testData/klib/partial-linkage/inheritanceIssues/lib2/l2.kt
T
2023-08-16 19:11:34 +00:00

256 lines
18 KiB
Kotlin
Vendored

@file:Suppress("NOTHING_TO_INLINE")
fun getInterfaceToAbstractClass() = object : InterfaceToAbstractClass {}
inline fun getInterfaceToAbstractClassInline() = object : InterfaceToAbstractClass {}
fun getInterfaceToAbstractClassAsAny(): Any = object : InterfaceToAbstractClass {}
inline fun getInterfaceToAbstractClassAsAnyInline(): Any = object : InterfaceToAbstractClass {}
fun getInterfaceToAbstractClassAsAny2(): Any { class Local : InterfaceToAbstractClass; return Local() }
fun getInterfaceToOpenClass() = object : InterfaceToOpenClass {}
inline fun getInterfaceToOpenClassInline() = object : InterfaceToOpenClass {}
fun getInterfaceToOpenClassAsAny(): Any = object : InterfaceToOpenClass {}
inline fun getInterfaceToOpenClassAsAnyInline(): Any = object : InterfaceToOpenClass {}
fun getInterfaceToOpenClassAsAny2(): Any { class Local : InterfaceToOpenClass; return Local() }
fun getInterfaceToFinalClass() = object : InterfaceToFinalClass {}
inline fun getInterfaceToFinalClassInline() = object : InterfaceToFinalClass {}
fun getInterfaceToFinalClassAsAny(): Any = object : InterfaceToFinalClass {}
inline fun getInterfaceToFinalClassAsAnyInline(): Any = object : InterfaceToFinalClass {}
fun getInterfaceToFinalClassAsAny2(): Any { class Local : InterfaceToFinalClass; return Local() }
open class InterfaceToAbstractClassImpl : InterfaceToAbstractClass
class InterfaceToAbstractClassImpl2 : InterfaceToAbstractClassImpl()
open class InterfaceToOpenClassImpl : InterfaceToOpenClass
class InterfaceToOpenClassImpl2 : InterfaceToOpenClassImpl()
open class InterfaceToFinalClassImpl : InterfaceToFinalClass
class InterfaceToFinalClassImpl2 : InterfaceToFinalClassImpl()
class InterfaceToAbstractClassContainer {
open class InterfaceToAbstractClassImpl : InterfaceToAbstractClass
class InterfaceToAbstractClassImpl2 : InterfaceToAbstractClassImpl()
inner class InterfaceToAbstractClassInnerImpl : InterfaceToAbstractClass
}
class InterfaceToOpenClassContainer {
open class InterfaceToOpenClassImpl : InterfaceToOpenClass
class InterfaceToOpenClassImpl2 : InterfaceToOpenClassImpl()
inner class InterfaceToOpenClassInnerImpl : InterfaceToOpenClass
}
class InterfaceToFinalClassContainer {
open class InterfaceToFinalClassImpl : InterfaceToFinalClass
class InterfaceToFinalClassImpl2 : InterfaceToFinalClassImpl()
inner class InterfaceToFinalClassInnerImpl : InterfaceToFinalClass
}
fun getInterfaceToAbstractClassImpl() = InterfaceToAbstractClassImpl()
inline fun getInterfaceToAbstractClassImplInline() = InterfaceToAbstractClassImpl()
fun getInterfaceToAbstractClassImplAsAny(): Any = InterfaceToAbstractClassImpl()
inline fun getInterfaceToAbstractClassImplAsAnyInline(): Any = InterfaceToAbstractClassImpl()
fun getInterfaceToAbstractClassImpl2() = InterfaceToAbstractClassImpl2()
inline fun getInterfaceToAbstractClassImpl2Inline() = InterfaceToAbstractClassImpl2()
fun getInterfaceToAbstractClassImpl2AsAny(): Any = InterfaceToAbstractClassImpl2()
inline fun getInterfaceToAbstractClassImpl2AsAnyInline(): Any = InterfaceToAbstractClassImpl2()
fun getInterfaceToOpenClassImpl() = InterfaceToOpenClassImpl()
inline fun getInterfaceToOpenClassImplInline() = InterfaceToOpenClassImpl()
fun getInterfaceToOpenClassImplAsAny(): Any = InterfaceToOpenClassImpl()
inline fun getInterfaceToOpenClassImplAsAnyInline(): Any = InterfaceToOpenClassImpl()
fun getInterfaceToOpenClassImpl2() = InterfaceToOpenClassImpl2()
inline fun getInterfaceToOpenClassImpl2Inline() = InterfaceToOpenClassImpl2()
fun getInterfaceToOpenClassImpl2AsAny(): Any = InterfaceToOpenClassImpl2()
inline fun getInterfaceToOpenClassImpl2AsAnyInline(): Any = InterfaceToOpenClassImpl2()
fun getInterfaceToFinalClassImpl() = InterfaceToFinalClassImpl()
inline fun getInterfaceToFinalClassImplInline() = InterfaceToFinalClassImpl()
fun getInterfaceToFinalClassImplAsAny(): Any = InterfaceToFinalClassImpl()
inline fun getInterfaceToFinalClassImplAsAnyInline(): Any = InterfaceToFinalClassImpl()
fun getInterfaceToFinalClassImpl2() = InterfaceToFinalClassImpl2()
inline fun getInterfaceToFinalClassImpl2Inline() = InterfaceToFinalClassImpl2()
fun getInterfaceToFinalClassImpl2AsAny(): Any = InterfaceToFinalClassImpl2()
inline fun getInterfaceToFinalClassImpl2AsAnyInline(): Any = InterfaceToFinalClassImpl2()
fun getInterfaceToAbstractClassNestedImpl() = InterfaceToAbstractClassContainer.InterfaceToAbstractClassImpl()
inline fun getInterfaceToAbstractClassNestedImplInline() = InterfaceToAbstractClassContainer.InterfaceToAbstractClassImpl()
fun getInterfaceToAbstractClassNestedImplAsAny(): Any = InterfaceToAbstractClassContainer.InterfaceToAbstractClassImpl()
inline fun getInterfaceToAbstractClassNestedImplAsAnyInline(): Any = InterfaceToAbstractClassContainer.InterfaceToAbstractClassImpl()
fun getInterfaceToAbstractClassNestedImpl2() = InterfaceToAbstractClassContainer.InterfaceToAbstractClassImpl2()
inline fun getInterfaceToAbstractClassNestedImpl2Inline() = InterfaceToAbstractClassContainer.InterfaceToAbstractClassImpl2()
fun getInterfaceToAbstractClassNestedImpl2AsAny(): Any = InterfaceToAbstractClassContainer.InterfaceToAbstractClassImpl2()
inline fun getInterfaceToAbstractClassNestedImpl2AsAnyInline(): Any = InterfaceToAbstractClassContainer.InterfaceToAbstractClassImpl2()
fun getInterfaceToAbstractClassInnerImpl() = InterfaceToAbstractClassContainer().InterfaceToAbstractClassInnerImpl()
inline fun getInterfaceToAbstractClassInnerImplInline() = InterfaceToAbstractClassContainer().InterfaceToAbstractClassInnerImpl()
fun getInterfaceToAbstractClassInnerImplAsAny(): Any = InterfaceToAbstractClassContainer().InterfaceToAbstractClassInnerImpl()
inline fun getInterfaceToAbstractClassInnerImplAsAnyInline(): Any = InterfaceToAbstractClassContainer().InterfaceToAbstractClassInnerImpl()
fun getInterfaceToOpenClassNestedImpl() = InterfaceToOpenClassContainer.InterfaceToOpenClassImpl()
inline fun getInterfaceToOpenClassNestedImplInline() = InterfaceToOpenClassContainer.InterfaceToOpenClassImpl()
fun getInterfaceToOpenClassNestedImplAsAny(): Any = InterfaceToOpenClassContainer.InterfaceToOpenClassImpl()
inline fun getInterfaceToOpenClassNestedImplAsAnyInline(): Any = InterfaceToOpenClassContainer.InterfaceToOpenClassImpl()
fun getInterfaceToOpenClassNestedImpl2() = InterfaceToOpenClassContainer.InterfaceToOpenClassImpl2()
inline fun getInterfaceToOpenClassNestedImpl2Inline() = InterfaceToOpenClassContainer.InterfaceToOpenClassImpl2()
fun getInterfaceToOpenClassNestedImpl2AsAny(): Any = InterfaceToOpenClassContainer.InterfaceToOpenClassImpl2()
inline fun getInterfaceToOpenClassNestedImpl2AsAnyInline(): Any = InterfaceToOpenClassContainer.InterfaceToOpenClassImpl2()
fun getInterfaceToOpenClassInnerImpl() = InterfaceToOpenClassContainer().InterfaceToOpenClassInnerImpl()
inline fun getInterfaceToOpenClassInnerImplInline() = InterfaceToOpenClassContainer().InterfaceToOpenClassInnerImpl()
fun getInterfaceToOpenClassInnerImplAsAny(): Any = InterfaceToOpenClassContainer().InterfaceToOpenClassInnerImpl()
inline fun getInterfaceToOpenClassInnerImplAsAnyInline(): Any = InterfaceToOpenClassContainer().InterfaceToOpenClassInnerImpl()
fun getInterfaceToFinalClassNestedImpl() = InterfaceToFinalClassContainer.InterfaceToFinalClassImpl()
inline fun getInterfaceToFinalClassNestedImplInline() = InterfaceToFinalClassContainer.InterfaceToFinalClassImpl()
fun getInterfaceToFinalClassNestedImplAsAny(): Any = InterfaceToFinalClassContainer.InterfaceToFinalClassImpl()
inline fun getInterfaceToFinalClassNestedImplAsAnyInline(): Any = InterfaceToFinalClassContainer.InterfaceToFinalClassImpl()
fun getInterfaceToFinalClassNestedImpl2() = InterfaceToFinalClassContainer.InterfaceToFinalClassImpl2()
inline fun getInterfaceToFinalClassNestedImpl2Inline() = InterfaceToFinalClassContainer.InterfaceToFinalClassImpl2()
fun getInterfaceToFinalClassNestedImpl2AsAny(): Any = InterfaceToFinalClassContainer.InterfaceToFinalClassImpl2()
inline fun getInterfaceToFinalClassNestedImpl2AsAnyInline(): Any = InterfaceToFinalClassContainer.InterfaceToFinalClassImpl2()
fun getInterfaceToFinalClassInnerImpl() = InterfaceToFinalClassContainer().InterfaceToFinalClassInnerImpl()
inline fun getInterfaceToFinalClassInnerImplInline() = InterfaceToFinalClassContainer().InterfaceToFinalClassInnerImpl()
fun getInterfaceToFinalClassInnerImplAsAny(): Any = InterfaceToFinalClassContainer().InterfaceToFinalClassInnerImpl()
inline fun getInterfaceToFinalClassInnerImplAsAnyInline(): Any = InterfaceToFinalClassContainer().InterfaceToFinalClassInnerImpl()
fun referenceToInterfaceToAbstractClassImpl() = InterfaceToAbstractClassImpl::class.simpleName.orEmpty()
inline fun referenceToInterfaceToAbstractClassImplInline() = InterfaceToAbstractClassImpl::class.simpleName.orEmpty()
fun referenceToInterfaceToAbstractClassImpl2() = InterfaceToAbstractClassImpl2::class.simpleName.orEmpty()
inline fun referenceToInterfaceToAbstractClassImpl2Inline() = InterfaceToAbstractClassImpl2::class.simpleName.orEmpty()
fun referenceToInterfaceToFinalClassImpl() = check(InterfaceToFinalClassImpl::class.simpleName != null)
inline fun referenceToInterfaceToFinalClassImplInline() = check(InterfaceToFinalClassImpl::class.simpleName != null)
fun referenceToInterfaceToFinalClassImpl2() = check(InterfaceToFinalClassImpl2::class.simpleName != null)
inline fun referenceToInterfaceToFinalClassImpl2Inline() = check(InterfaceToFinalClassImpl2::class.simpleName != null)
class InterfaceToAnnotationClassImpl : InterfaceToAnnotationClass
class InterfaceToObjectImpl : InterfaceToObject
class InterfaceToEnumClassImpl : InterfaceToEnumClass
class InterfaceToValueClassImpl : InterfaceToValueClass
class InterfaceToDataClassImpl : InterfaceToDataClass
fun getInterfaceToAnnotationClassImpl() = InterfaceToAnnotationClassImpl()
fun getInterfaceToAnnotationClassImplAsAny(): Any = InterfaceToAnnotationClassImpl()
fun getInterfaceToObjectImpl() = InterfaceToObjectImpl()
fun getInterfaceToObjectImplAsAny(): Any = InterfaceToObjectImpl()
fun getInterfaceToEnumClassImpl() = InterfaceToEnumClassImpl()
fun getInterfaceToEnumClassImplAsAny(): Any = InterfaceToEnumClassImpl()
fun getInterfaceToValueClassImpl() = InterfaceToValueClassImpl()
fun getInterfaceToValueClassImplAny(): Any = InterfaceToValueClassImpl()
fun getInterfaceToDataClassImpl() = InterfaceToDataClassImpl()
fun getInterfaceToDataClassImplAny(): Any = InterfaceToDataClassImpl()
class OpenClassToFinalClassImpl : OpenClassToFinalClass(42)
class OpenClassToAnnotationClassImpl : OpenClassToAnnotationClass(42)
class OpenClassToObjectImpl : OpenClassToObject(42)
class OpenClassToEnumClassImpl : OpenClassToEnumClass(42)
class OpenClassToValueClassImpl : OpenClassToValueClass(42)
class OpenClassToDataClassImpl : OpenClassToDataClass(42)
class OpenClassToInterfaceImpl : OpenClassToInterface(42)
fun getOpenClassToFinalClassImpl() = OpenClassToFinalClassImpl()
fun getOpenClassToFinalClassImplAsAny(): Any = OpenClassToFinalClassImpl()
fun getOpenClassToAnnotationClassImpl() = OpenClassToAnnotationClassImpl()
fun getOpenClassToAnnotationClassImplAsAny(): Any = OpenClassToAnnotationClassImpl()
fun getOpenClassToObjectImpl() = OpenClassToObjectImpl()
fun getOpenClassToObjectImplAsAny(): Any = OpenClassToObjectImpl()
fun getOpenClassToEnumClassImpl() = OpenClassToEnumClassImpl()
fun getOpenClassToEnumClassImplAsAny(): Any = OpenClassToEnumClassImpl()
fun getOpenClassToValueClassImpl() = OpenClassToValueClassImpl()
fun getOpenClassToValueClassImplAsAny(): Any = OpenClassToValueClassImpl()
fun getOpenClassToDataClassImpl() = OpenClassToDataClassImpl()
fun getOpenClassToDataClassImplAsAny(): Any = OpenClassToDataClassImpl()
fun getOpenClassToInterfaceImpl() = OpenClassToInterfaceImpl()
fun getOpenClassToInterfaceImplAsAny(): Any = OpenClassToInterfaceImpl()
value class ValueClassInheritsAbstractClass(val x: Int) : InterfaceToAbstractClass
enum class EnumClassInheritsAbstractClass : InterfaceToAbstractClass { ENTRY }
fun getValueClassInheritsAbstractClass() = ValueClassInheritsAbstractClass(42)
fun getValueClassInheritsAbstractClassAsAny(): Any = ValueClassInheritsAbstractClass(42)
fun getEnumClassInheritsAbstractClass() = EnumClassInheritsAbstractClass.ENTRY
fun getEnumClassInheritsAbstractClassAsAny(): Any = EnumClassInheritsAbstractClass.ENTRY
fun getInterfaceToAbstractClass12_1(): InterfaceToAbstractClass1 = object : InterfaceToAbstractClass1, InterfaceToAbstractClass2 {}
inline fun getInterfaceToAbstractClass12_1Inline(): InterfaceToAbstractClass1 = object : InterfaceToAbstractClass1, InterfaceToAbstractClass2 {}
fun getInterfaceToAbstractClass12_2(): InterfaceToAbstractClass2 = object : InterfaceToAbstractClass1, InterfaceToAbstractClass2 {}
inline fun getInterfaceToAbstractClass12_2Inline(): InterfaceToAbstractClass2 = object : InterfaceToAbstractClass1, InterfaceToAbstractClass2 {}
fun getInterfaceToAbstractClass12AsAny(): Any = object : InterfaceToAbstractClass1, InterfaceToAbstractClass2 {}
inline fun getInterfaceToAbstractClass12AsAnyInline(): Any = object : InterfaceToAbstractClass1, InterfaceToAbstractClass2 {}
fun getInterfaceToAbstractClassAndAbstractClass_1(): InterfaceToAbstractClass1 = object : InterfaceToAbstractClass1, AbstractClass() {}
inline fun getInterfaceToAbstractClassAndAbstractClass_1Inline(): InterfaceToAbstractClass1 = object : InterfaceToAbstractClass1, AbstractClass() {}
fun getInterfaceToAbstractClassAndAbstractClass_2(): AbstractClass = object : InterfaceToAbstractClass1, AbstractClass() {}
inline fun getInterfaceToAbstractClassAndAbstractClass_2Inline(): AbstractClass = object : InterfaceToAbstractClass1, AbstractClass() {}
fun getInterfaceToAbstractClassAndAbstractClassAsAny(): Any = object : InterfaceToAbstractClass1, AbstractClass() {}
inline fun getInterfaceToAbstractClassAndAbstractClassAsAnyInline(): Any = object : InterfaceToAbstractClass1, AbstractClass() {}
open class InterfaceToAbstractClass12Impl : InterfaceToAbstractClass1, InterfaceToAbstractClass2
class InterfaceToAbstractClass12Impl2 : InterfaceToAbstractClass12Impl()
open class InterfaceToAbstractClassAndAbstractClassImpl : InterfaceToAbstractClass1, AbstractClass()
class InterfaceToAbstractClassAndAbstractClassImpl2 : InterfaceToAbstractClassAndAbstractClassImpl()
fun getInterfaceToAbstractClass12Impl() = InterfaceToAbstractClass12Impl()
inline fun getInterfaceToAbstractClass12ImplInline() = InterfaceToAbstractClass12Impl()
fun getInterfaceToAbstractClass12ImplAsAny(): Any = InterfaceToAbstractClass12Impl()
inline fun getInterfaceToAbstractClass12ImplAsAnyInline(): Any = InterfaceToAbstractClass12Impl()
fun getInterfaceToAbstractClass12Impl2() = InterfaceToAbstractClass12Impl2()
inline fun getInterfaceToAbstractClass12Impl2Inline() = InterfaceToAbstractClass12Impl2()
fun getInterfaceToAbstractClass12Impl2AsAny(): Any = InterfaceToAbstractClass12Impl2()
inline fun getInterfaceToAbstractClass12Impl2AsAnyInline(): Any = InterfaceToAbstractClass12Impl2()
fun getInterfaceToAbstractClassAndAbstractClassImpl() = InterfaceToAbstractClassAndAbstractClassImpl()
inline fun getInterfaceToAbstractClassAndAbstractClassImplInline() = InterfaceToAbstractClassAndAbstractClassImpl()
fun getInterfaceToAbstractClassAndAbstractClassImplAsAny(): Any = InterfaceToAbstractClassAndAbstractClassImpl()
inline fun getInterfaceToAbstractClassAndAbstractClassImplAsAnyInline(): Any = InterfaceToAbstractClassAndAbstractClassImpl()
fun getInterfaceToAbstractClassAndAbstractClassImpl2() = InterfaceToAbstractClassAndAbstractClassImpl2()
inline fun getInterfaceToAbstractClassAndAbstractClassImpl2Inline() = InterfaceToAbstractClassAndAbstractClassImpl2()
fun getInterfaceToAbstractClassAndAbstractClassImpl2AsAny(): Any = InterfaceToAbstractClassAndAbstractClassImpl2()
inline fun getInterfaceToAbstractClassAndAbstractClassImpl2AsAnyInline(): Any = InterfaceToAbstractClassAndAbstractClassImpl2()
fun referenceToInterfaceToAbstractClass12Impl() = check(InterfaceToAbstractClass12Impl::class.simpleName != null)
inline fun referenceToInterfaceToAbstractClass12ImplInline() = check(InterfaceToAbstractClass12Impl::class.simpleName != null)
fun referenceToInterfaceToAbstractClass12Impl2Impl() = check(InterfaceToAbstractClass12Impl2::class.simpleName != null)
inline fun referenceToInterfaceToAbstractClass12Impl2Inline() = check(InterfaceToAbstractClass12Impl2::class.simpleName != null)
fun referenceToInterfaceToAbstractClassAndAbstractClassImpl() = check(InterfaceToAbstractClassAndAbstractClassImpl::class.simpleName != null)
inline fun referenceToInterfaceToAbstractClassAndAbstractClassImplInline() = check(InterfaceToAbstractClassAndAbstractClassImpl::class.simpleName != null)
fun referenceToInterfaceToAbstractClassAndAbstractClassImpl2Impl() = check(InterfaceToAbstractClassAndAbstractClassImpl2::class.simpleName != null)
inline fun referenceToInterfaceToAbstractClassAndAbstractClassImpl2Inline() = check(InterfaceToAbstractClassAndAbstractClassImpl2::class.simpleName != null)
class RemovedInterfaceImpl1 : RemovedInterface {
override fun abstractFun() = "RemovedInterfaceImpl1.abstractFun"
override val abstractVal get() = "RemovedInterfaceImpl1.abstractVal"
}
class RemovedInterfaceImpl2 : RemovedInterface {
override fun abstractFun() = abstractFunWithDefaultImpl()
override val abstractVal get() = abstractValWithDefaultImpl
}
class RemovedAbstractClassImpl1 : RemovedAbstractClass() {
override fun abstractFun() = "RemovedAbstractClassImpl1.abstractFun"
override fun openFun() = "RemovedAbstractClassImpl1.openFun"
override val abstractVal get() = "RemovedAbstractClassImpl1.abstractVal"
override val openVal get() = "RemovedAbstractClassImpl1.openVal"
}
class RemovedAbstractClassImpl2 : RemovedAbstractClass() {
override fun abstractFun() = "${openFun()}:${finalFun()}"
override val abstractVal get() = "$openVal: $finalVal"
}
class RemovedOpenClassImpl1 : RemovedOpenClass() {
override fun openFun() = "RemovedOpenClassImpl1.openFun"
override val openVal get() = "RemovedOpenClassImpl1.openVal"
}
class RemovedOpenClassImpl2 : RemovedOpenClass()
class AbstractClassWithChangedConstructorSignatureImpl() : AbstractClassWithChangedConstructorSignature("Alice")
class OpenClassWithChangedConstructorSignatureImpl() : OpenClassWithChangedConstructorSignature("Bob")