mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 08:31:26 +00:00
80 lines
2.0 KiB
Kotlin
Vendored
80 lines
2.0 KiB
Kotlin
Vendored
// !LANGUAGE: +InlineClasses
|
|
|
|
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) {}
|
|
} |