Files
kotlin/compiler/testData/codegen/box/reflection/modifiers/functions.kt
Ilya Matveev a5e4e0284e Mute some box tests for native backend
This patch mutes the following test categories:
   * Tests with java dependencies (System class,
     java stdlib, jvm-oriented annotations etc).
   * Coroutines tests.
   * Reflection tests.
   * Tests with an inheritance from the standard
     collections.
2017-03-10 19:59:37 +03:00

63 lines
1.8 KiB
Kotlin
Vendored

// TODO: muted automatically, investigate should it be ran for JS or not
// IGNORE_BACKEND: JS, NATIVE
// 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) {}
// TODO: support or prohibit references to suspend functions
// 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"
}