From 4a993f517edb26a093769983c4b7cec572f14b21 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Tue, 22 Sep 2015 12:41:26 +0300 Subject: [PATCH] Drop `tailRecursive` and it's usage --- compiler/testData/builtin-classes.txt | 4 ---- core/builtins/src/kotlin/Annotations.kt | 4 ---- .../src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java | 4 +--- libraries/tools/idl2k/src/main/kotlin/typeMappings.kt | 3 +-- 4 files changed, 2 insertions(+), 13 deletions(-) diff --git a/compiler/testData/builtin-classes.txt b/compiler/testData/builtin-classes.txt index 48573e5c1ac..1f4beaf3dff 100644 --- a/compiler/testData/builtin-classes.txt +++ b/compiler/testData/builtin-classes.txt @@ -1256,10 +1256,6 @@ public object Unit { /*primary*/ public constructor noinline() } -@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.FUNCTION}) @kotlin.annotation.Retention(value = AnnotationRetention.SOURCE) @kotlin.annotation.annotation() public final class tailRecursive : kotlin.Annotation { - /*primary*/ public constructor tailRecursive() -} - @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.FUNCTION}) @kotlin.annotation.Retention(value = AnnotationRetention.SOURCE) @kotlin.annotation.annotation() public final class tailrec : kotlin.Annotation { /*primary*/ public constructor tailrec() } diff --git a/core/builtins/src/kotlin/Annotations.kt b/core/builtins/src/kotlin/Annotations.kt index 4949c21386f..bd5baff439e 100644 --- a/core/builtins/src/kotlin/Annotations.kt +++ b/core/builtins/src/kotlin/Annotations.kt @@ -80,10 +80,6 @@ public annotation class Suppress(vararg val names: String) * growing the stack depth. Tail call optimization is currently only supported by the JVM * backend. */ -@Target(FUNCTION) -@Retention(SOURCE) -public annotation class tailRecursive - @Target(FUNCTION) @Retention(SOURCE) public annotation class tailrec diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java b/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java index 9ed97dc6d75..76cc501a9b1 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java @@ -182,7 +182,6 @@ public class KotlinBuiltIns { public final FqName data = fqName("data"); public final FqName deprecated = fqName("Deprecated"); public final FqName tailRecursive = fqName("tailrec"); - public final FqName tailRecursiveDeprecated = fqName("tailRecursive"); public final FqName inline = fqName("inline"); public final FqName noinline = fqName("noinline"); public final FqName crossinline = fqName("crossinline"); @@ -1063,8 +1062,7 @@ public class KotlinBuiltIns { } public static boolean isTailRecursive(@NotNull DeclarationDescriptor declarationDescriptor) { - return containsAnnotation(declarationDescriptor, FQ_NAMES.tailRecursive) - || containsAnnotation(declarationDescriptor, FQ_NAMES.tailRecursiveDeprecated); + return containsAnnotation(declarationDescriptor, FQ_NAMES.tailRecursive); } /** Checks that the symbol represented by the descriptor is annotated with the {@code kotlin.noinline} annotation */ diff --git a/libraries/tools/idl2k/src/main/kotlin/typeMappings.kt b/libraries/tools/idl2k/src/main/kotlin/typeMappings.kt index 303eff520bd..2cd20009c58 100644 --- a/libraries/tools/idl2k/src/main/kotlin/typeMappings.kt +++ b/libraries/tools/idl2k/src/main/kotlin/typeMappings.kt @@ -48,8 +48,7 @@ private val typeMapper = mapOf( fun GenerateTraitOrClass.allSuperTypes(all: Map) = LinkedHashSet().let { result -> allSuperTypesImpl(listOf(this), all, result); result.toList() } -tailRecursive -fun allSuperTypesImpl(roots: List, all: Map, result: MutableSet) { +tailrec fun allSuperTypesImpl(roots: List, all: Map, result: MutableSet) { if (roots.isNotEmpty()) { allSuperTypesImpl(roots.flatMap { it.superTypes }.map { all[it] }.filterNotNull().filter { result.add(it) }, all, result) }