mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-16 00:21:32 +00:00
The fate of this modifier seems unclear, and there doesn't seem to be any valuable use cases for it in reflection
62 lines
1.8 KiB
Kotlin
Vendored
62 lines
1.8 KiB
Kotlin
Vendored
// TODO: muted automatically, investigate should it be ran for JS or not
|
|
// IGNORE_BACKEND: JS
|
|
|
|
// WITH_REFLECT
|
|
|
|
import kotlin.test.assertTrue
|
|
import kotlin.test.assertFalse
|
|
|
|
inline fun inline() {}
|
|
class External { external fun external() }
|
|
operator fun Unit.invoke() {}
|
|
infix fun Unit.infix(unit: Unit) {}
|
|
class Suspend { suspend fun suspend(c: Continuation<Unit>) {} }
|
|
|
|
val externalGetter = Unit
|
|
external get
|
|
|
|
inline var inlineProperty: Unit
|
|
get() = Unit
|
|
set(value) {}
|
|
|
|
fun box(): String {
|
|
assertTrue(::inline.isInline)
|
|
assertFalse(::inline.isExternal)
|
|
assertFalse(::inline.isOperator)
|
|
assertFalse(::inline.isInfix)
|
|
assertFalse(::inline.isSuspend)
|
|
|
|
assertFalse(External::external.isInline)
|
|
assertTrue(External::external.isExternal)
|
|
assertFalse(External::external.isOperator)
|
|
assertFalse(External::external.isInfix)
|
|
assertFalse(External::external.isSuspend)
|
|
|
|
assertFalse(Unit::invoke.isInline)
|
|
assertFalse(Unit::invoke.isExternal)
|
|
assertTrue(Unit::invoke.isOperator)
|
|
assertFalse(Unit::invoke.isInfix)
|
|
assertFalse(Unit::invoke.isSuspend)
|
|
|
|
assertFalse(Unit::infix.isInline)
|
|
assertFalse(Unit::infix.isExternal)
|
|
assertFalse(Unit::infix.isOperator)
|
|
assertTrue(Unit::infix.isInfix)
|
|
assertFalse(Unit::infix.isSuspend)
|
|
|
|
assertFalse(Suspend::suspend.isInline)
|
|
assertFalse(Suspend::suspend.isExternal)
|
|
assertFalse(Suspend::suspend.isOperator)
|
|
assertFalse(Suspend::suspend.isInfix)
|
|
assertTrue(Suspend::suspend.isSuspend)
|
|
|
|
assertTrue(::externalGetter.getter.isExternal)
|
|
assertFalse(::externalGetter.getter.isInline)
|
|
|
|
assertFalse(::inlineProperty.getter.isExternal)
|
|
assertTrue(::inlineProperty.getter.isInline)
|
|
assertTrue(::inlineProperty.setter.isInline)
|
|
|
|
return "OK"
|
|
}
|