Files
kotlin-fork/compiler/testData/klibABI/classTransformations/lib1/l1.kt
T
2023-05-23 16:23:41 +00:00

162 lines
4.2 KiB
Kotlin
Vendored

class ClassToEnum {
class Foo
object Bar
inner class Baz
}
object ObjectToEnum {
class Foo
object Bar
}
enum class EnumToClass {
Foo,
Bar,
Baz
}
enum class EnumToObject {
Foo,
Bar
}
class ClassToObject
object ObjectToClass
class ClassToInterface
class NestedObjectToCompanion1 {
object Companion {
fun name() = "NestedObjectToCompanion1.Companion"
override fun toString() = name()
}
}
class NestedObjectToCompanion2 {
object Foo {
fun name() = "NestedObjectToCompanion2.Foo"
override fun toString() = name()
}
}
class CompanionToNestedObject1 {
companion object {
fun name() = "CompanionToNestedObject1.Companion"
override fun toString() = name()
}
}
class CompanionToNestedObject2 {
companion object Foo {
fun name() = "CompanionToNestedObject2.Foo"
override fun toString() = name()
}
}
class CompanionAndNestedObjectsSwap {
companion object Foo {
fun name() = "Foo"
}
object Bar {
fun name() = "Bar"
}
}
class NestedClassContainer {
fun name() = "NestedClassContainer"
class NestedToInner {
fun name() = "NestedClassContainer.NestedToInner"
override fun toString() = name()
object Object {
fun name() = "NestedClassContainer.NestedToInner.Object"
override fun toString() = name()
}
companion object Companion {
fun name() = "NestedClassContainer.NestedToInner.Companion"
override fun toString() = name()
}
class Nested {
fun name() = "NestedClassContainer.NestedToInner.Nested"
override fun toString() = name()
}
inner class Inner {
fun name() = this@NestedToInner.name() + ".Inner"
override fun toString() = name()
}
}
}
class InnerClassContainer {
fun name() = "InnerClassContainer"
inner class InnerToNested {
fun name() = this@InnerClassContainer.name() + ".InnerToNested"
override fun toString() = name()
inner class /*object*/ Object {
fun name() = this@InnerToNested.name() + ".Object"
override fun toString() = name()
}
inner class /*companion object*/ Companion {
fun name() = this@InnerToNested.name() + ".Companion"
override fun toString() = name()
}
inner class /*class*/ Nested {
fun name() = this@InnerToNested.name() + ".Nested"
override fun toString() = name()
}
inner class Inner {
fun name() = this@InnerToNested.name() + ".Inner"
override fun toString() = name()
}
}
}
annotation class AnnotationClassWithChangedParameterType(val x: Int)
annotation class AnnotationClassThatBecomesRegularClass(val x: Int)
annotation class AnnotationClassThatDisappears(val x: Int)
annotation class AnnotationClassWithRenamedParameters(val i: Int, val s: String)
annotation class AnnotationClassWithReorderedParameters(val i: Int, val s: String)
annotation class AnnotationClassWithNewParameter(val i: Int)
value class ValueToClass(val x: Int)
class ClassToValue(val x: Int)
data class DataToClass(val x: Int, val y: Int)
class ClassToAbstractClass {
var name: String = "Alice"
fun getGreeting() = "Hello, $name!"
}
class RemovedClass
enum class EnumClassWithDisappearingEntry { UNCHANGED, REMOVED }
object PublicTopLevelLib1 {
annotation class AnnotationClassThatBecomesPrivate
class ClassThatBecomesPrivate
enum class EnumClassThatBecomesPrivate { ENTRY }
}
interface XAnswer { fun answer(): Int }
interface XAnswerDefault { fun answer(): Int /*= 42*/ }
interface XFunction1 { /*fun function1(): Int*/ }
interface XFunction1Default { /*fun function1(): Int = 42*/ }
interface XFunction2 { /*fun function2(): Int*/ }
interface XFunction2Default { /*fun function2(): Int = -42*/ }
interface XProperty1 { /*val property1: Int*/ }
interface XProperty1Default { /*val property1: Int get() = 42*/ }
interface XProperty2 { /*val property2: Int*/ }
interface XProperty2Default { /*val property2: Int get() = 42*/ }
fun interface FunctionalInterfaceToInterface : XAnswer