From eedad9194ee20dbccb929a79da2f85a3613e5500 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 14 Nov 2016 11:36:56 +0300 Subject: [PATCH] Drop KParameter.isNoinline, KParameter.isCrossinline There seems to be no valuable use cases for them at the moment --- .../box/reflection/modifiers/parameters.kt | 18 +++--------------- core/builtins/src/kotlin/reflect/KParameter.kt | 16 ---------------- .../reflect/jvm/internal/KParameterImpl.kt | 6 ------ .../reference-public-api/kotlin-runtime.txt | 2 -- 4 files changed, 3 insertions(+), 39 deletions(-) diff --git a/compiler/testData/codegen/box/reflection/modifiers/parameters.kt b/compiler/testData/codegen/box/reflection/modifiers/parameters.kt index 0dbb275b84e..e78c93aeb4c 100644 --- a/compiler/testData/codegen/box/reflection/modifiers/parameters.kt +++ b/compiler/testData/codegen/box/reflection/modifiers/parameters.kt @@ -7,7 +7,6 @@ import kotlin.test.assertTrue import kotlin.test.assertFalse inline fun Unit.foo( - crossinline crossinline: () -> Unit, noinline coroutine x: Unit.() -> Continuation, vararg vararg: Unit ) {} @@ -15,25 +14,14 @@ inline fun Unit.foo( fun box(): String { val p = Unit::foo.parameters - assertFalse(p[0].isNoinline) - assertFalse(p[0].isCrossinline) assertFalse(p[0].isVararg) assertFalse(p[0].isCoroutine) - assertFalse(p[1].isNoinline) - assertTrue(p[1].isCrossinline) assertFalse(p[1].isVararg) - assertFalse(p[1].isCoroutine) + assertTrue(p[1].isCoroutine) - assertTrue(p[2].isNoinline) - assertFalse(p[2].isCrossinline) - assertFalse(p[2].isVararg) - assertTrue(p[2].isCoroutine) - - assertFalse(p[3].isNoinline) - assertFalse(p[3].isCrossinline) - assertTrue(p[3].isVararg) - assertFalse(p[3].isCoroutine) + assertTrue(p[2].isVararg) + assertFalse(p[2].isCoroutine) return "OK" } diff --git a/core/builtins/src/kotlin/reflect/KParameter.kt b/core/builtins/src/kotlin/reflect/KParameter.kt index f885fe002bb..48f73bbcaaf 100644 --- a/core/builtins/src/kotlin/reflect/KParameter.kt +++ b/core/builtins/src/kotlin/reflect/KParameter.kt @@ -78,22 +78,6 @@ public interface KParameter : KAnnotatedElement { @SinceKotlin("1.1") public val isVararg: Boolean - /** - * `true` if this parameter is `noinline`. - * See the [Kotlin language documentation](https://kotlinlang.org/docs/reference/inline-functions.html#noinline) - * for more information. - */ - @SinceKotlin("1.1") - public val isNoinline: Boolean - - /** - * `true` if this parameter is `crossinline`. - * See the [Kotlin language documentation](https://kotlinlang.org/docs/reference/inline-functions.html#non-local-returns) - * for more information. - */ - @SinceKotlin("1.1") - public val isCrossinline: Boolean - /** * `true` if this parameter is `coroutine`. */ diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KParameterImpl.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KParameterImpl.kt index 3407153591b..f4eb48974e9 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KParameterImpl.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KParameterImpl.kt @@ -48,12 +48,6 @@ internal class KParameterImpl( override val isVararg: Boolean get() = descriptor.let { it is ValueParameterDescriptor && it.varargElementType != null } - override val isNoinline: Boolean - get() = descriptor.let { it is ValueParameterDescriptor && it.isNoinline } - - override val isCrossinline: Boolean - get() = descriptor.let { it is ValueParameterDescriptor && it.isCrossinline } - override val isCoroutine: Boolean get() = descriptor.let { it is ValueParameterDescriptor && it.isCoroutine } diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-runtime.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-runtime.txt index 365d077713c..d883267e07f 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-runtime.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-runtime.txt @@ -1194,8 +1194,6 @@ public abstract interface class kotlin/reflect/KParameter : kotlin/reflect/KAnno public abstract fun getName ()Ljava/lang/String; public abstract fun getType ()Lkotlin/reflect/KType; public abstract fun isCoroutine ()Z - public abstract fun isCrossinline ()Z - public abstract fun isNoinline ()Z public abstract fun isOptional ()Z public abstract fun isVararg ()Z }