diff --git a/compiler/testData/codegen/box/callableReference/function/getArityViaFunctionImpl.kt b/compiler/testData/codegen/box/callableReference/function/getArityViaFunctionImpl.kt index 214f7bba8d4..2f6bbdb8022 100644 --- a/compiler/testData/codegen/box/callableReference/function/getArityViaFunctionImpl.kt +++ b/compiler/testData/codegen/box/callableReference/function/getArityViaFunctionImpl.kt @@ -9,7 +9,7 @@ import kotlin.test.assertEquals import kotlin.jvm.internal.FunctionBase fun test(f: Function<*>, arity: Int) { - assertEquals(arity, (f as FunctionBase).getArity()) + assertEquals(arity, (f as FunctionBase).arity) } fun foo(s: String, i: Int) {} diff --git a/compiler/testData/codegen/box/coroutines/featureIntersection/callableReference/function/getArityViaFunctionImpl.kt b/compiler/testData/codegen/box/coroutines/featureIntersection/callableReference/function/getArityViaFunctionImpl.kt index 86dc2af52b8..100d6ab25c9 100644 --- a/compiler/testData/codegen/box/coroutines/featureIntersection/callableReference/function/getArityViaFunctionImpl.kt +++ b/compiler/testData/codegen/box/coroutines/featureIntersection/callableReference/function/getArityViaFunctionImpl.kt @@ -18,7 +18,7 @@ suspend fun builder(c: suspend () -> Unit) { } fun test(f: Function<*>, arity: Int) { - assertEquals(arity, (f as FunctionBase).getArity()) + assertEquals(arity, (f as FunctionBase).arity) } suspend fun foo(s: String, i: Int) {} diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KFunctionImpl.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KFunctionImpl.kt index 3becbc6c60e..e4f0dc32847 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KFunctionImpl.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KFunctionImpl.kt @@ -37,7 +37,7 @@ internal class KFunctionImpl private constructor( private val signature: String, descriptorInitialValue: FunctionDescriptor?, private val boundReceiver: Any? = CallableReference.NO_RECEIVER -) : KCallableImpl(), KFunction, FunctionBase, FunctionWithAllInvokes { +) : KCallableImpl(), KFunction, FunctionBase, FunctionWithAllInvokes { constructor(container: KDeclarationContainerImpl, name: String, signature: String, boundReceiver: Any?) : this(container, name, signature, null, boundReceiver) @@ -143,7 +143,7 @@ internal class KFunctionImpl private constructor( private fun createConstructorCaller(member: Constructor<*>) = if (isBound) FunctionCaller.BoundConstructor(member, boundReceiver) else FunctionCaller.Constructor(member) - override fun getArity() = caller.arity + override val arity: Int get() = caller.arity override val isInline: Boolean get() = descriptor.isInline diff --git a/libraries/stdlib/coroutines/jvm/src/kotlin/coroutines/jvm/internal/ContinuationImpl.kt b/libraries/stdlib/coroutines/jvm/src/kotlin/coroutines/jvm/internal/ContinuationImpl.kt index 75884242e39..3cff90891d8 100644 --- a/libraries/stdlib/coroutines/jvm/src/kotlin/coroutines/jvm/internal/ContinuationImpl.kt +++ b/libraries/stdlib/coroutines/jvm/src/kotlin/coroutines/jvm/internal/ContinuationImpl.kt @@ -132,13 +132,11 @@ internal interface SuspendFunction @SinceKotlin("1.3") // Restricted suspension lambdas inherit from this class internal abstract class RestrictedSuspendLambda( - private val arity: Int, + public override val arity: Int, completion: Continuation? -) : RestrictedContinuationImpl(completion), FunctionBase, SuspendFunction { +) : RestrictedContinuationImpl(completion), FunctionBase, SuspendFunction { constructor(arity: Int) : this(arity, null) - public override fun getArity(): Int = arity - public override fun toString(): String = if (completion == null) Reflection.renderLambdaToString(this) // this is lambda @@ -149,16 +147,14 @@ internal abstract class RestrictedSuspendLambda( @SinceKotlin("1.3") // Suspension lambdas inherit from this class internal abstract class SuspendLambda( - private val arity: Int, + public override val arity: Int, completion: Continuation? -) : ContinuationImpl(completion), FunctionBase, SuspendFunction { +) : ContinuationImpl(completion), FunctionBase, SuspendFunction { constructor(arity: Int) : this(arity, null) - public override fun getArity(): Int = arity - public override fun toString(): String = if (completion == null) Reflection.renderLambdaToString(this) // this is lambda else super.toString() // this is continuation -} \ No newline at end of file +} diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionBase.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionBase.kt similarity index 57% rename from libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionBase.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionBase.kt index 6bf4621e45b..2bc09ac3eac 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionBase.java +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionBase.kt @@ -3,10 +3,8 @@ * that can be found in the license/LICENSE.txt file. */ -package kotlin.jvm.internal; +package kotlin.jvm.internal -import kotlin.Function; - -public interface FunctionBase extends Function { - int getArity(); +interface FunctionBase : Function { + val arity: Int } diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/Lambda.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/Lambda.kt index 4aea692f52e..b4caeb8e9bd 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/Lambda.kt +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/Lambda.kt @@ -7,8 +7,6 @@ package kotlin.jvm.internal import java.io.Serializable -abstract class Lambda(private val arity: Int) : FunctionBase, Serializable { - override fun getArity(): Int = arity - +abstract class Lambda(override val arity: Int) : FunctionBase, Serializable { override fun toString(): String = Reflection.renderLambdaToString(this) } diff --git a/libraries/stdlib/jvm/src/kotlin/coroutines/experimental/jvm/internal/CoroutineImpl.kt b/libraries/stdlib/jvm/src/kotlin/coroutines/experimental/jvm/internal/CoroutineImpl.kt index 22140358274..06575edddfa 100644 --- a/libraries/stdlib/jvm/src/kotlin/coroutines/experimental/jvm/internal/CoroutineImpl.kt +++ b/libraries/stdlib/jvm/src/kotlin/coroutines/experimental/jvm/internal/CoroutineImpl.kt @@ -18,7 +18,7 @@ abstract class CoroutineImpl( arity: Int, @JvmField protected var completion: Continuation? -) : Lambda(arity), Continuation { +) : Lambda(arity), Continuation { // label == -1 when coroutine cannot be started (it is just a factory object) or has already finished execution // label == 0 in initial part of the coroutine