Files
kotlin/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithManyKindsOfMembers.kt
Alexander Udalov e2a42446ed Use getter names for $annotations methods in most codegen tests
This is needed to update master to 1.4, while still testing the latest
compiler by default. Also add one test on the old behavior.
2019-12-30 16:29:13 +01:00

81 lines
2.0 KiB
Kotlin
Vendored

// !LANGUAGE: +InlineClasses +UseGetterNameForPropertyAnnotationsMethodOnJvm
interface IFoo {
fun overridingFun()
fun String.overridingExtFun()
val overridingVal: Int
var overridingVar: Int
val String.overridingExtVal: Int
var String.overridingExtVar: Int
}
@Target(AnnotationTarget.CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY)
@Retention(AnnotationRetention.BINARY)
annotation class A
@Target(AnnotationTarget.PROPERTY_GETTER)
@Retention(AnnotationRetention.BINARY)
annotation class AGet
@Target(AnnotationTarget.PROPERTY_SETTER)
@Retention(AnnotationRetention.BINARY)
annotation class ASet
@Target(AnnotationTarget.VALUE_PARAMETER)
@Retention(AnnotationRetention.BINARY)
annotation class ASetParam
@Target(AnnotationTarget.VALUE_PARAMETER)
@Retention(AnnotationRetention.BINARY)
annotation class AReceiver
inline class Z(@get:AGet val x: Int) : IFoo {
constructor(y: Long) : this(y.toInt())
@A override fun overridingFun() {}
@A override fun @receiver:AReceiver String.overridingExtFun() {}
@A @get:AGet
override val overridingVal: Int
get() = x
@A @get:AGet @set:ASet @setparam:ASetParam
override var overridingVar: Int
get() = x
set(v) {}
@A @get:AGet
override val @receiver:AReceiver String.overridingExtVal: Int
get() = x
@A @get:AGet @set:ASet @setparam:ASetParam
override var @receiver:AReceiver String.overridingExtVar: Int
get() = x
set(v) {}
@A override fun toString(): String = x.toString()
@A fun nonOverridingFun() {}
@A fun @receiver:AReceiver String.nonOverridingExtFun() {}
@A @get:AGet
val nonOverridingVal: Int get() = x
@A @get:AGet @set:ASet @setparam:ASetParam
var nonOverridingVar: Int
get() = x
set(v) {}
@A @get:AGet
val @receiver:AReceiver String.nonOverridingExtVal: Int
get() = x
@A @get:AGet @set:ASet @setparam:ASetParam
var @receiver:AReceiver String.nonOverridingExtVar: Int
get() = x
set(v) {}
}