Drop KFunction.isTailrec

The fate of this modifier seems unclear, and there doesn't seem to be any
valuable use cases for it in reflection
This commit is contained in:
Alexander Udalov
2016-11-14 11:08:44 +03:00
parent 5e73dc4a4c
commit 7e82d139cf
6 changed files with 0 additions and 32 deletions
@@ -10,7 +10,6 @@ inline fun inline() {}
class External { external fun external() } class External { external fun external() }
operator fun Unit.invoke() {} operator fun Unit.invoke() {}
infix fun Unit.infix(unit: Unit) {} infix fun Unit.infix(unit: Unit) {}
tailrec fun tailrec() { tailrec() }
class Suspend { suspend fun suspend(c: Continuation<Unit>) {} } class Suspend { suspend fun suspend(c: Continuation<Unit>) {} }
val externalGetter = Unit val externalGetter = Unit
@@ -25,42 +24,30 @@ fun box(): String {
assertFalse(::inline.isExternal) assertFalse(::inline.isExternal)
assertFalse(::inline.isOperator) assertFalse(::inline.isOperator)
assertFalse(::inline.isInfix) assertFalse(::inline.isInfix)
assertFalse(::inline.isTailrec)
assertFalse(::inline.isSuspend) assertFalse(::inline.isSuspend)
assertFalse(External::external.isInline) assertFalse(External::external.isInline)
assertTrue(External::external.isExternal) assertTrue(External::external.isExternal)
assertFalse(External::external.isOperator) assertFalse(External::external.isOperator)
assertFalse(External::external.isInfix) assertFalse(External::external.isInfix)
assertFalse(External::external.isTailrec)
assertFalse(External::external.isSuspend) assertFalse(External::external.isSuspend)
assertFalse(Unit::invoke.isInline) assertFalse(Unit::invoke.isInline)
assertFalse(Unit::invoke.isExternal) assertFalse(Unit::invoke.isExternal)
assertTrue(Unit::invoke.isOperator) assertTrue(Unit::invoke.isOperator)
assertFalse(Unit::invoke.isInfix) assertFalse(Unit::invoke.isInfix)
assertFalse(Unit::invoke.isTailrec)
assertFalse(Unit::invoke.isSuspend) assertFalse(Unit::invoke.isSuspend)
assertFalse(Unit::infix.isInline) assertFalse(Unit::infix.isInline)
assertFalse(Unit::infix.isExternal) assertFalse(Unit::infix.isExternal)
assertFalse(Unit::infix.isOperator) assertFalse(Unit::infix.isOperator)
assertTrue(Unit::infix.isInfix) assertTrue(Unit::infix.isInfix)
assertFalse(Unit::infix.isTailrec)
assertFalse(Unit::infix.isSuspend) assertFalse(Unit::infix.isSuspend)
assertFalse(::tailrec.isInline)
assertFalse(::tailrec.isExternal)
assertFalse(::tailrec.isOperator)
assertFalse(::tailrec.isInfix)
assertTrue(::tailrec.isTailrec)
assertFalse(::tailrec.isSuspend)
assertFalse(Suspend::suspend.isInline) assertFalse(Suspend::suspend.isInline)
assertFalse(Suspend::suspend.isExternal) assertFalse(Suspend::suspend.isExternal)
assertFalse(Suspend::suspend.isOperator) assertFalse(Suspend::suspend.isOperator)
assertFalse(Suspend::suspend.isInfix) assertFalse(Suspend::suspend.isInfix)
assertFalse(Suspend::suspend.isTailrec)
assertTrue(Suspend::suspend.isSuspend) assertTrue(Suspend::suspend.isSuspend)
assertTrue(::externalGetter.getter.isExternal) assertTrue(::externalGetter.getter.isExternal)
@@ -52,14 +52,6 @@ public interface KFunction<out R> : KCallable<R>, Function<R> {
@SinceKotlin("1.1") @SinceKotlin("1.1")
public val isInfix: Boolean public val isInfix: Boolean
/**
* `true` if this function is `tailrec`.
* See the [Kotlin language documentation](https://kotlinlang.org/docs/reference/functions.html#tail-recursive-functions)
* for more information.
*/
@SinceKotlin("1.1")
public val isTailrec: Boolean
/** /**
* `true` if this is a suspending function. * `true` if this is a suspending function.
*/ */
@@ -135,9 +135,6 @@ internal class KFunctionImpl private constructor(
override val isInfix: Boolean override val isInfix: Boolean
get() = descriptor.isInfix get() = descriptor.isInfix
override val isTailrec: Boolean
get() = descriptor.isTailrec
override val isSuspend: Boolean override val isSuspend: Boolean
get() = descriptor.isSuspend get() = descriptor.isSuspend
@@ -118,7 +118,6 @@ internal abstract class KPropertyImpl<out R> private constructor(
override val isExternal: Boolean get() = descriptor.isExternal override val isExternal: Boolean get() = descriptor.isExternal
override val isOperator: Boolean get() = descriptor.isOperator override val isOperator: Boolean get() = descriptor.isOperator
override val isInfix: Boolean get() = descriptor.isInfix override val isInfix: Boolean get() = descriptor.isInfix
override val isTailrec: Boolean get() = descriptor.isTailrec
override val isSuspend: Boolean get() = descriptor.isSuspend override val isSuspend: Boolean get() = descriptor.isSuspend
} }
@@ -61,11 +61,6 @@ public class FunctionReference extends CallableReference implements FunctionImpl
return getReflected().isInfix(); return getReflected().isInfix();
} }
@Override
public boolean isTailrec() {
return getReflected().isTailrec();
}
@Override @Override
public boolean isSuspend() { public boolean isSuspend() {
return getReflected().isSuspend(); return getReflected().isSuspend();
@@ -509,7 +509,6 @@ public class kotlin/jvm/internal/FunctionReference : kotlin/jvm/internal/Callabl
public fun isInline ()Z public fun isInline ()Z
public fun isOperator ()Z public fun isOperator ()Z
public fun isSuspend ()Z public fun isSuspend ()Z
public fun isTailrec ()Z
public fun toString ()Ljava/lang/String; public fun toString ()Ljava/lang/String;
} }
@@ -1156,7 +1155,6 @@ public abstract interface class kotlin/reflect/KFunction : kotlin/Function, kotl
public abstract fun isInline ()Z public abstract fun isInline ()Z
public abstract fun isOperator ()Z public abstract fun isOperator ()Z
public abstract fun isSuspend ()Z public abstract fun isSuspend ()Z
public abstract fun isTailrec ()Z
} }
public abstract interface class kotlin/reflect/KMutableProperty : kotlin/reflect/KProperty { public abstract interface class kotlin/reflect/KMutableProperty : kotlin/reflect/KProperty {