From 098f5462ebe0e483418c018516936041253450bf Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Wed, 23 Sep 2015 12:07:07 +0300 Subject: [PATCH] Drop `inlineOptions` and fix forgotten usages --- .../kotlin/resolve/inline/InlineOption.java | 22 ------------- .../kotlin/resolve/inline/InlineUtil.java | 23 +------------- compiler/testData/builtin-classes.txt | 22 ------------- .../anonymousObjectOnDeclarationSite.2.kt | 1 - ...ousObjectOnDeclarationSiteSuperParams.2.kt | 1 - .../builders/buildersAndLambdaCapturing.1.kt | 1 - .../boxInline/capture/captureInlinable.2.kt | 1 - .../capture/captureInlinableAndOther.2.kt | 1 - .../codegen/boxInline/complex/with.2.kt | 1 - .../lambdaClassClash/lambdaClassClash.2.kt | 1 - .../lambdaInLambdaNoInline.1.kt | 1 - .../regeneratedLambdaName.2.kt | 1 - .../lambdaTransformation/sameCaptured.1.kt | 1 - .../lambdaTransformation/sameCaptured.2.kt | 1 - ...noInlineLambdaChainWithCapturedInline.1.kt | 1 - .../boxInline/simple/rootConstructor.2.kt | 1 - .../boxInline/smap/anonymous/lambda.1.kt | 2 +- .../smap/anonymous/lambdaOnCallSite.1.kt | 2 +- .../anonymous/lambdaOnInlineCallSite.1.kt | 2 +- .../boxInline/smap/anonymous/object.1.kt | 2 +- .../smap/anonymous/objectOnCallSite.1.kt | 2 +- .../anonymous/objectOnInlineCallSite.1.kt | 2 +- .../anonymous/objectOnInlineCallSite2.1.kt | 2 +- .../objectOnInlineCallSiteWithCapture.1.kt | 2 +- .../testData/codegen/boxInline/smap/smap.1.kt | 2 +- .../boxWithStdlib/reified/newArrayInt.kt | 1 - .../reified/recursiveNewArray.kt | 1 - .../reified/sameIndexRecursive.kt | 1 - .../innerClassInfo/anonymousObjectInline.kt | 1 - .../codegen/outerClassInfo/inlineLambda.kt | 1 - .../codegen/outerClassInfo/inlineObject.kt | 1 - .../enum/enumIsAssignableToBuiltInEnum.kt | 2 +- .../enum/enumIsAssignableToBuiltInEnum.txt | 2 +- .../nonLocalReturns/anonymousObjects.kt | 1 - .../nonLocalReturns/anonymousObjectsNested.kt | 1 - .../inline/nonLocalReturns/fromOnlyLocal.kt | 1 - .../inline/nonLocalReturns/inlineLambda.kt | 1 - ...mbdaWithGlobalReturnsInsideOnlyLocalOne.kt | 1 - .../tests/inline/nonLocalReturns/localFun.kt | 1 - .../inline/nonLocalReturns/noInlineLambda.kt | 1 - .../inline/nonLocalReturns/nonInlinedClass.kt | 1 - .../nonLocalReturns/onlyLocalReturnLambda.kt | 1 - .../onlyLocalReturnLambdaBinaryExpr.kt | 1 - .../inline/nonLocalReturns/toOnlyLocal.kt | 1 - core/builtins/src/kotlin/Inline.kt | 31 +------------------ .../kotlin/builtins/KotlinBuiltIns.java | 1 - js/js.libraries/src/core/concurrent.kt | 1 - .../testData/inline/cases/rootConstructor.kt | 1 - .../anonymousObjectOnDeclarationSite.2.kt | 1 - ...ousObjectOnDeclarationSiteSuperParams.2.kt | 1 - .../buildersAndLambdaCapturing.1.kt | 1 - .../captureInlinable/captureInlinable.2.kt | 1 - .../captureInlinableAndOther.2.kt | 1 - .../lambdaInLambdaNoInline.1.kt | 1 - .../regeneratedLambdaName.2.kt | 1 - .../cases/sameCaptured/sameCaptured.1.kt | 1 - .../cases/sameCaptured/sameCaptured.2.kt | 1 - .../inlineMultiFile/cases/with/with.2.kt | 1 - 58 files changed, 13 insertions(+), 150 deletions(-) delete mode 100644 compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineOption.java diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineOption.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineOption.java deleted file mode 100644 index 759fe377642..00000000000 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineOption.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.resolve.inline; - -public enum InlineOption { - LOCAL_CONTINUE_AND_BREAK, - ONLY_LOCAL_RETURN -} diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineUtil.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineUtil.java index 8df75099b5e..d43e6f2c356 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineUtil.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineUtil.java @@ -61,29 +61,8 @@ public class InlineUtil { return InlineStrategy.valueOf(((EnumValue) argument).getValue().getName().asString()); } - public static boolean hasOnlyLocalContinueAndBreak(@NotNull ValueParameterDescriptor descriptor) { - return hasInlineOption(descriptor, InlineOption.LOCAL_CONTINUE_AND_BREAK); - } - public static boolean hasOnlyLocalReturn(@NotNull ValueParameterDescriptor descriptor) { - return hasInlineOption(descriptor, InlineOption.ONLY_LOCAL_RETURN) - || descriptor.getAnnotations().findAnnotation(KotlinBuiltIns.FQ_NAMES.crossinline) != null; - } - - private static boolean hasInlineOption(@NotNull ValueParameterDescriptor descriptor, @NotNull InlineOption option) { - AnnotationDescriptor annotation = descriptor.getAnnotations().findAnnotation(KotlinBuiltIns.FQ_NAMES.inlineOptions); - if (annotation != null) { - ConstantValue argument = firstOrNull(annotation.getAllValueArguments().values()); - if (argument instanceof ArrayValue) { - for (ConstantValue value : ((ArrayValue) argument).getValue()) { - if (value instanceof EnumValue && ((EnumValue) value).getValue().getName().asString().equals(option.name())) { - return true; - } - } - } - } - - return false; + return descriptor.getAnnotations().findAnnotation(KotlinBuiltIns.FQ_NAMES.crossinline) != null; } public static boolean checkNonLocalReturnUsage( diff --git a/compiler/testData/builtin-classes.txt b/compiler/testData/builtin-classes.txt index dc34fc2bdd9..48573e5c1ac 100644 --- a/compiler/testData/builtin-classes.txt +++ b/compiler/testData/builtin-classes.txt @@ -591,22 +591,6 @@ public interface Function { /*primary*/ public constructor HiddenDeclaration() } -public final enum class InlineOption : kotlin.Enum { - enum entry LOCAL_CONTINUE_AND_BREAK - - enum entry ONLY_LOCAL_RETURN - - /*primary*/ private constructor InlineOption() - protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any - public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: kotlin.InlineOption): kotlin.Int - public final override /*1*/ /*fake_override*/ fun name(): kotlin.String - public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int - - // Static members - public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): kotlin.InlineOption - public final /*synthesized*/ fun values(): kotlin.Array -} - public final class Int : kotlin.Number, kotlin.Comparable { /*primary*/ private constructor Int() public final fun and(/*0*/ other: kotlin.Int): kotlin.Int @@ -1268,12 +1252,6 @@ public object Unit { /*primary*/ public constructor inline() } -@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.VALUE_PARAMETER}) @kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) @kotlin.annotation.MustBeDocumented() @kotlin.annotation.annotation() public final class inlineOptions : kotlin.Annotation { - /*primary*/ public constructor inlineOptions(/*0*/ vararg value: kotlin.InlineOption /*kotlin.Array*/) - public final val value: kotlin.Array - public final fun (): kotlin.Array -} - @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.VALUE_PARAMETER}) @kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) @kotlin.annotation.MustBeDocumented() @kotlin.annotation.annotation() public final class noinline : kotlin.Annotation { /*primary*/ public constructor noinline() } diff --git a/compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSite.2.kt b/compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSite.2.kt index c425fc90c8a..8ff859bc931 100644 --- a/compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSite.2.kt +++ b/compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSite.2.kt @@ -1,6 +1,5 @@ package test -import kotlin.InlineOption.* abstract class A { abstract fun getO() : R diff --git a/compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSiteSuperParams.2.kt b/compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSiteSuperParams.2.kt index 68cb41d9991..8579bdeb3ce 100644 --- a/compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSiteSuperParams.2.kt +++ b/compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSiteSuperParams.2.kt @@ -1,6 +1,5 @@ package test -import kotlin.InlineOption.* abstract class A(val param : R) { abstract fun getO() : R diff --git a/compiler/testData/codegen/boxInline/builders/buildersAndLambdaCapturing.1.kt b/compiler/testData/codegen/boxInline/builders/buildersAndLambdaCapturing.1.kt index 282d321d2bc..48cb2c2e22c 100644 --- a/compiler/testData/codegen/boxInline/builders/buildersAndLambdaCapturing.1.kt +++ b/compiler/testData/codegen/boxInline/builders/buildersAndLambdaCapturing.1.kt @@ -1,6 +1,5 @@ //NO_CHECK_LAMBDA_INLINING import builders.* -import kotlin.InlineOption.* inline fun testAllInline(f: () -> String) : String { val args = arrayOf("1", "2", "3") diff --git a/compiler/testData/codegen/boxInline/capture/captureInlinable.2.kt b/compiler/testData/codegen/boxInline/capture/captureInlinable.2.kt index ae7308070dd..0dcea6524a2 100644 --- a/compiler/testData/codegen/boxInline/capture/captureInlinable.2.kt +++ b/compiler/testData/codegen/boxInline/capture/captureInlinable.2.kt @@ -1,6 +1,5 @@ package test -import kotlin.InlineOption.* inline fun doWork(crossinline job: ()-> R) : R { return notInline({job()}) diff --git a/compiler/testData/codegen/boxInline/capture/captureInlinableAndOther.2.kt b/compiler/testData/codegen/boxInline/capture/captureInlinableAndOther.2.kt index 373d726c2ff..b654b844f0d 100644 --- a/compiler/testData/codegen/boxInline/capture/captureInlinableAndOther.2.kt +++ b/compiler/testData/codegen/boxInline/capture/captureInlinableAndOther.2.kt @@ -1,6 +1,5 @@ package test -import kotlin.InlineOption.* inline fun doWork(crossinline job: ()-> R) : R { val k = 10; diff --git a/compiler/testData/codegen/boxInline/complex/with.2.kt b/compiler/testData/codegen/boxInline/complex/with.2.kt index 19d35e50b9b..f43c92b5685 100644 --- a/compiler/testData/codegen/boxInline/complex/with.2.kt +++ b/compiler/testData/codegen/boxInline/complex/with.2.kt @@ -1,6 +1,5 @@ package test -import kotlin.InlineOption.* public class Data() diff --git a/compiler/testData/codegen/boxInline/lambdaClassClash/lambdaClassClash.2.kt b/compiler/testData/codegen/boxInline/lambdaClassClash/lambdaClassClash.2.kt index 59f7b1b4d0c..8def24f88fe 100644 --- a/compiler/testData/codegen/boxInline/lambdaClassClash/lambdaClassClash.2.kt +++ b/compiler/testData/codegen/boxInline/lambdaClassClash/lambdaClassClash.2.kt @@ -1,6 +1,5 @@ package zzz -import kotlin.InlineOption.* inline fun calc(crossinline lambda: () -> Int): Int { return doCalc { lambda() } diff --git a/compiler/testData/codegen/boxInline/lambdaTransformation/lambdaInLambdaNoInline.1.kt b/compiler/testData/codegen/boxInline/lambdaTransformation/lambdaInLambdaNoInline.1.kt index 06b39e1d286..77ec6984b2e 100644 --- a/compiler/testData/codegen/boxInline/lambdaTransformation/lambdaInLambdaNoInline.1.kt +++ b/compiler/testData/codegen/boxInline/lambdaTransformation/lambdaInLambdaNoInline.1.kt @@ -1,6 +1,5 @@ //NO_CHECK_LAMBDA_INLINING import test.* -import kotlin.InlineOption.* fun test1(param: String): String { var result = "fail1" diff --git a/compiler/testData/codegen/boxInline/lambdaTransformation/regeneratedLambdaName.2.kt b/compiler/testData/codegen/boxInline/lambdaTransformation/regeneratedLambdaName.2.kt index 3ed44607d4a..fe9834fe317 100644 --- a/compiler/testData/codegen/boxInline/lambdaTransformation/regeneratedLambdaName.2.kt +++ b/compiler/testData/codegen/boxInline/lambdaTransformation/regeneratedLambdaName.2.kt @@ -1,6 +1,5 @@ package test -import kotlin.InlineOption.* inline fun call(crossinline f: () -> R) : R { return {f()} () diff --git a/compiler/testData/codegen/boxInline/lambdaTransformation/sameCaptured.1.kt b/compiler/testData/codegen/boxInline/lambdaTransformation/sameCaptured.1.kt index 9f4ec047c42..de432a39193 100644 --- a/compiler/testData/codegen/boxInline/lambdaTransformation/sameCaptured.1.kt +++ b/compiler/testData/codegen/boxInline/lambdaTransformation/sameCaptured.1.kt @@ -1,6 +1,5 @@ //NO_CHECK_LAMBDA_INLINING import test.* -import kotlin.InlineOption.* fun testSameCaptured() : String { var result = 0; diff --git a/compiler/testData/codegen/boxInline/lambdaTransformation/sameCaptured.2.kt b/compiler/testData/codegen/boxInline/lambdaTransformation/sameCaptured.2.kt index c2a9537e4d6..f6e4986b3c3 100644 --- a/compiler/testData/codegen/boxInline/lambdaTransformation/sameCaptured.2.kt +++ b/compiler/testData/codegen/boxInline/lambdaTransformation/sameCaptured.2.kt @@ -1,6 +1,5 @@ package test -import kotlin.InlineOption.* inline fun doWork(crossinline job: ()-> R) : R { val k = 10; diff --git a/compiler/testData/codegen/boxInline/noInline/noInlineLambdaChainWithCapturedInline.1.kt b/compiler/testData/codegen/boxInline/noInline/noInlineLambdaChainWithCapturedInline.1.kt index 325fb194949..3974c3931d7 100644 --- a/compiler/testData/codegen/boxInline/noInline/noInlineLambdaChainWithCapturedInline.1.kt +++ b/compiler/testData/codegen/boxInline/noInline/noInlineLambdaChainWithCapturedInline.1.kt @@ -1,6 +1,5 @@ //NO_CHECK_LAMBDA_INLINING import test.* -import kotlin.InlineOption.* inline fun test1(crossinline param: () -> String): String { var result = "fail" diff --git a/compiler/testData/codegen/boxInline/simple/rootConstructor.2.kt b/compiler/testData/codegen/boxInline/simple/rootConstructor.2.kt index ae7308070dd..0dcea6524a2 100644 --- a/compiler/testData/codegen/boxInline/simple/rootConstructor.2.kt +++ b/compiler/testData/codegen/boxInline/simple/rootConstructor.2.kt @@ -1,6 +1,5 @@ package test -import kotlin.InlineOption.* inline fun doWork(crossinline job: ()-> R) : R { return notInline({job()}) diff --git a/compiler/testData/codegen/boxInline/smap/anonymous/lambda.1.kt b/compiler/testData/codegen/boxInline/smap/anonymous/lambda.1.kt index 2335da7e3c1..a72d33bf5b1 100644 --- a/compiler/testData/codegen/boxInline/smap/anonymous/lambda.1.kt +++ b/compiler/testData/codegen/boxInline/smap/anonymous/lambda.1.kt @@ -1,5 +1,5 @@ import builders.* -import kotlin.InlineOption.* + fun test(): String { var res = "Fail" diff --git a/compiler/testData/codegen/boxInline/smap/anonymous/lambdaOnCallSite.1.kt b/compiler/testData/codegen/boxInline/smap/anonymous/lambdaOnCallSite.1.kt index 6c34163908d..a8381ebfc38 100644 --- a/compiler/testData/codegen/boxInline/smap/anonymous/lambdaOnCallSite.1.kt +++ b/compiler/testData/codegen/boxInline/smap/anonymous/lambdaOnCallSite.1.kt @@ -1,5 +1,5 @@ import builders.* -import kotlin.InlineOption.* + fun test(): String { var res = "Fail" diff --git a/compiler/testData/codegen/boxInline/smap/anonymous/lambdaOnInlineCallSite.1.kt b/compiler/testData/codegen/boxInline/smap/anonymous/lambdaOnInlineCallSite.1.kt index 5f071ca5c29..26356840449 100644 --- a/compiler/testData/codegen/boxInline/smap/anonymous/lambdaOnInlineCallSite.1.kt +++ b/compiler/testData/codegen/boxInline/smap/anonymous/lambdaOnInlineCallSite.1.kt @@ -1,5 +1,5 @@ import builders.* -import kotlin.InlineOption.* + inline fun test(): String { var res = "Fail" diff --git a/compiler/testData/codegen/boxInline/smap/anonymous/object.1.kt b/compiler/testData/codegen/boxInline/smap/anonymous/object.1.kt index 237c6501a45..334fdcd43c4 100644 --- a/compiler/testData/codegen/boxInline/smap/anonymous/object.1.kt +++ b/compiler/testData/codegen/boxInline/smap/anonymous/object.1.kt @@ -1,5 +1,5 @@ import builders.* -import kotlin.InlineOption.* + fun test(): String { var res = "Fail" diff --git a/compiler/testData/codegen/boxInline/smap/anonymous/objectOnCallSite.1.kt b/compiler/testData/codegen/boxInline/smap/anonymous/objectOnCallSite.1.kt index ae8a8c5a0ce..e8e9c7c4f60 100644 --- a/compiler/testData/codegen/boxInline/smap/anonymous/objectOnCallSite.1.kt +++ b/compiler/testData/codegen/boxInline/smap/anonymous/objectOnCallSite.1.kt @@ -1,5 +1,5 @@ import builders.* -import kotlin.InlineOption.* + fun test(): String { var res = "Fail" diff --git a/compiler/testData/codegen/boxInline/smap/anonymous/objectOnInlineCallSite.1.kt b/compiler/testData/codegen/boxInline/smap/anonymous/objectOnInlineCallSite.1.kt index 74f237b8edc..794e24c4542 100644 --- a/compiler/testData/codegen/boxInline/smap/anonymous/objectOnInlineCallSite.1.kt +++ b/compiler/testData/codegen/boxInline/smap/anonymous/objectOnInlineCallSite.1.kt @@ -1,5 +1,5 @@ import builders.* -import kotlin.InlineOption.* + inline fun test(): String { var res = "Fail" diff --git a/compiler/testData/codegen/boxInline/smap/anonymous/objectOnInlineCallSite2.1.kt b/compiler/testData/codegen/boxInline/smap/anonymous/objectOnInlineCallSite2.1.kt index d0ba07278fb..7e74a4368c2 100644 --- a/compiler/testData/codegen/boxInline/smap/anonymous/objectOnInlineCallSite2.1.kt +++ b/compiler/testData/codegen/boxInline/smap/anonymous/objectOnInlineCallSite2.1.kt @@ -1,5 +1,5 @@ import builders.* -import kotlin.InlineOption.* + fun box(): String { return test() diff --git a/compiler/testData/codegen/boxInline/smap/anonymous/objectOnInlineCallSiteWithCapture.1.kt b/compiler/testData/codegen/boxInline/smap/anonymous/objectOnInlineCallSiteWithCapture.1.kt index 9500c184fd7..f1ce619c597 100644 --- a/compiler/testData/codegen/boxInline/smap/anonymous/objectOnInlineCallSiteWithCapture.1.kt +++ b/compiler/testData/codegen/boxInline/smap/anonymous/objectOnInlineCallSiteWithCapture.1.kt @@ -1,5 +1,5 @@ import builders.* -import kotlin.InlineOption.* + fun box(): String { return test{"OK"} diff --git a/compiler/testData/codegen/boxInline/smap/smap.1.kt b/compiler/testData/codegen/boxInline/smap/smap.1.kt index 32d6ebf838c..1ae6077c22c 100644 --- a/compiler/testData/codegen/boxInline/smap/smap.1.kt +++ b/compiler/testData/codegen/boxInline/smap/smap.1.kt @@ -1,5 +1,5 @@ import builders.* -import kotlin.InlineOption.* + inline fun test(): String { var res = "Fail" diff --git a/compiler/testData/codegen/boxWithStdlib/reified/newArrayInt.kt b/compiler/testData/codegen/boxWithStdlib/reified/newArrayInt.kt index 78f9e5e6b2f..017cafb91b3 100644 --- a/compiler/testData/codegen/boxWithStdlib/reified/newArrayInt.kt +++ b/compiler/testData/codegen/boxWithStdlib/reified/newArrayInt.kt @@ -1,4 +1,3 @@ -import kotlin.InlineOption.* inline fun createArray(n: Int, crossinline block: () -> T): Array { return Array(n) { block() } diff --git a/compiler/testData/codegen/boxWithStdlib/reified/recursiveNewArray.kt b/compiler/testData/codegen/boxWithStdlib/reified/recursiveNewArray.kt index 9c12393dc6e..b740e7cdea3 100644 --- a/compiler/testData/codegen/boxWithStdlib/reified/recursiveNewArray.kt +++ b/compiler/testData/codegen/boxWithStdlib/reified/recursiveNewArray.kt @@ -1,4 +1,3 @@ -import kotlin.InlineOption.* inline fun createArray(n: Int, crossinline block: () -> T): Array { return Array(n) { block() } diff --git a/compiler/testData/codegen/boxWithStdlib/reified/sameIndexRecursive.kt b/compiler/testData/codegen/boxWithStdlib/reified/sameIndexRecursive.kt index a158cca7d7d..3abebd96224 100644 --- a/compiler/testData/codegen/boxWithStdlib/reified/sameIndexRecursive.kt +++ b/compiler/testData/codegen/boxWithStdlib/reified/sameIndexRecursive.kt @@ -1,4 +1,3 @@ -import kotlin.InlineOption.* inline fun createArray(n: Int, crossinline block: () -> Pair): Pair, Array> { return Pair(Array(n) { block().first }, Array(n) { block().second }) diff --git a/compiler/testData/codegen/innerClassInfo/anonymousObjectInline.kt b/compiler/testData/codegen/innerClassInfo/anonymousObjectInline.kt index da4f21cd985..717d570f88d 100644 --- a/compiler/testData/codegen/innerClassInfo/anonymousObjectInline.kt +++ b/compiler/testData/codegen/innerClassInfo/anonymousObjectInline.kt @@ -1,4 +1,3 @@ -import kotlin.InlineOption.* class A { fun foo() { diff --git a/compiler/testData/codegen/outerClassInfo/inlineLambda.kt b/compiler/testData/codegen/outerClassInfo/inlineLambda.kt index 0299eb4e551..becf608ae32 100644 --- a/compiler/testData/codegen/outerClassInfo/inlineLambda.kt +++ b/compiler/testData/codegen/outerClassInfo/inlineLambda.kt @@ -1,6 +1,5 @@ package foo -import kotlin.InlineOption.* class Foo { diff --git a/compiler/testData/codegen/outerClassInfo/inlineObject.kt b/compiler/testData/codegen/outerClassInfo/inlineObject.kt index 8352a00ec5e..75b598ae0d2 100644 --- a/compiler/testData/codegen/outerClassInfo/inlineObject.kt +++ b/compiler/testData/codegen/outerClassInfo/inlineObject.kt @@ -1,6 +1,5 @@ package foo -import kotlin.InlineOption.* class Foo { diff --git a/compiler/testData/diagnostics/tests/enum/enumIsAssignableToBuiltInEnum.kt b/compiler/testData/diagnostics/tests/enum/enumIsAssignableToBuiltInEnum.kt index a4cdb672311..8b9d867bd49 100644 --- a/compiler/testData/diagnostics/tests/enum/enumIsAssignableToBuiltInEnum.kt +++ b/compiler/testData/diagnostics/tests/enum/enumIsAssignableToBuiltInEnum.kt @@ -11,4 +11,4 @@ val a: Enum = E.ENTRY val b: Enum = RetentionPolicy.RUNTIME // Test deserialized resolve -val c: Enum = InlineOption.ONLY_LOCAL_RETURN +val c: Enum = AnnotationTarget.CLASS diff --git a/compiler/testData/diagnostics/tests/enum/enumIsAssignableToBuiltInEnum.txt b/compiler/testData/diagnostics/tests/enum/enumIsAssignableToBuiltInEnum.txt index 2cf94ca842e..c4af25a002f 100644 --- a/compiler/testData/diagnostics/tests/enum/enumIsAssignableToBuiltInEnum.txt +++ b/compiler/testData/diagnostics/tests/enum/enumIsAssignableToBuiltInEnum.txt @@ -2,7 +2,7 @@ package public val a: kotlin.Enum public val b: kotlin.Enum -public val c: kotlin.Enum +public val c: kotlin.Enum public final enum class E : kotlin.Enum { enum entry ENTRY diff --git a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/anonymousObjects.kt b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/anonymousObjects.kt index a866dd3e33c..60cff430f8b 100644 --- a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/anonymousObjects.kt +++ b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/anonymousObjects.kt @@ -1,5 +1,4 @@ // !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -import kotlin.InlineOption.* inline fun inlineFunOnlyLocal(crossinline p: () -> R) { val s = object { diff --git a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/anonymousObjectsNested.kt b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/anonymousObjectsNested.kt index eb650acfdca..91e637ce58f 100644 --- a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/anonymousObjectsNested.kt +++ b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/anonymousObjectsNested.kt @@ -1,5 +1,4 @@ // !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -import kotlin.InlineOption.* inline fun inlineFunOnlyLocal(crossinline p: () -> R) { val s = object { diff --git a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/fromOnlyLocal.kt b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/fromOnlyLocal.kt index a365fe0bec5..d6c0ad89ff2 100644 --- a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/fromOnlyLocal.kt +++ b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/fromOnlyLocal.kt @@ -1,4 +1,3 @@ -import kotlin.InlineOption.* inline fun onlyLocal(crossinline p: () -> R) { inlineAll(p) diff --git a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/inlineLambda.kt b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/inlineLambda.kt index b64de0e7241..094bfabab41 100644 --- a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/inlineLambda.kt +++ b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/inlineLambda.kt @@ -1,4 +1,3 @@ -import kotlin.InlineOption.* inline fun inlineFunWithAnnotation(crossinline p: () -> R) { inlineFun { diff --git a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/lambdaWithGlobalReturnsInsideOnlyLocalOne.kt b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/lambdaWithGlobalReturnsInsideOnlyLocalOne.kt index f8bdbcb81bf..6d43d939408 100644 --- a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/lambdaWithGlobalReturnsInsideOnlyLocalOne.kt +++ b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/lambdaWithGlobalReturnsInsideOnlyLocalOne.kt @@ -1,4 +1,3 @@ -import kotlin.InlineOption.ONLY_LOCAL_RETURN inline fun testSameCaptured(lambdaWithResultCaptured: () -> Unit) : String { doWork({lambdaWithResultCaptured()}) diff --git a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/localFun.kt b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/localFun.kt index afcd7df3382..6a5e5ecaa4f 100644 --- a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/localFun.kt +++ b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/localFun.kt @@ -1,5 +1,4 @@ // !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -import kotlin.InlineOption.* inline fun inlineFunOnlyLocal(crossinline p: () -> R) { fun a() { diff --git a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/noInlineLambda.kt b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/noInlineLambda.kt index e78669bc5a2..ac736c17d81 100644 --- a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/noInlineLambda.kt +++ b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/noInlineLambda.kt @@ -1,5 +1,4 @@ // !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -import kotlin.InlineOption.* inline fun inlineFunOnlyLocal(crossinline p: () -> R) { { diff --git a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/nonInlinedClass.kt b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/nonInlinedClass.kt index 8e15b5b2925..1ce9497c5f1 100644 --- a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/nonInlinedClass.kt +++ b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/nonInlinedClass.kt @@ -1,5 +1,4 @@ // !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -import kotlin.InlineOption.* inline fun inlineFunOnlyLocal(crossinline p: () -> R) { class A { diff --git a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/onlyLocalReturnLambda.kt b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/onlyLocalReturnLambda.kt index bc4441d8c76..6930354fd0e 100644 --- a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/onlyLocalReturnLambda.kt +++ b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/onlyLocalReturnLambda.kt @@ -1,5 +1,4 @@ // !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -import kotlin.InlineOption.* fun fun1(p: () -> R) { inlineFun { diff --git a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/onlyLocalReturnLambdaBinaryExpr.kt b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/onlyLocalReturnLambdaBinaryExpr.kt index fde1d83977b..c209b5867d0 100644 --- a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/onlyLocalReturnLambdaBinaryExpr.kt +++ b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/onlyLocalReturnLambdaBinaryExpr.kt @@ -1,5 +1,4 @@ // !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -import kotlin.InlineOption.* class Z { inline fun inlineFun(crossinline p: () -> R) { diff --git a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/toOnlyLocal.kt b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/toOnlyLocal.kt index 10cc07ad832..683f14f669c 100644 --- a/compiler/testData/diagnostics/tests/inline/nonLocalReturns/toOnlyLocal.kt +++ b/compiler/testData/diagnostics/tests/inline/nonLocalReturns/toOnlyLocal.kt @@ -1,4 +1,3 @@ -import kotlin.InlineOption.* inline fun toOnlyLocal(crossinline p: () -> R) { p() diff --git a/core/builtins/src/kotlin/Inline.kt b/core/builtins/src/kotlin/Inline.kt index 729cda20d48..e542c05623b 100644 --- a/core/builtins/src/kotlin/Inline.kt +++ b/core/builtins/src/kotlin/Inline.kt @@ -32,21 +32,13 @@ public annotation class noinline * See the [Kotlin language documentation](http://kotlinlang.org/docs/reference/inline-functions.html) for more information. * * @see noinline - * @see inlineOptions + * @see crossinline */ @Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY) @Retention(AnnotationRetention.RUNTIME) @MustBeDocumented public annotation class inline -/** - * @suppress - */ -@Target(AnnotationTarget.VALUE_PARAMETER) -@Retention(AnnotationRetention.RUNTIME) -@MustBeDocumented -public annotation class inlineOptions(vararg val value: InlineOption) - /** * Forbids use of non-local control flow statements within lambdas passed as arguments for this parameter. */ @@ -54,24 +46,3 @@ public annotation class inlineOptions(vararg val value: InlineOption) @Retention(AnnotationRetention.RUNTIME) @MustBeDocumented public annotation class crossinline - -/** - * Specifies the control flow statements which are allowed to be used for non-local control flow transfer in a lambda - * passed as a parameter to an inline function. - */ -public enum class InlineOption { - /** - * This option hasn't been implemented yet. - */ - LOCAL_CONTINUE_AND_BREAK, - - /** - * If this option is specified, lambdas may not use non-local return statements (statements which return from - * their calling function or one of its enclosing functions). This option must be specified if the lambda - * is not invoked directly by the receiving function but instead used in a different execution context - * (for example, from an object contained in the receiving function). - * - * By default, lambdas are allowed to use non-local returns. - */ - ONLY_LOCAL_RETURN -} diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java b/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java index dff1f55d13b..9ed97dc6d75 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java @@ -186,7 +186,6 @@ public class KotlinBuiltIns { public final FqName inline = fqName("inline"); public final FqName noinline = fqName("noinline"); public final FqName crossinline = fqName("crossinline"); - public final FqName inlineOptions = fqName("inlineOptions"); public final FqName extension = fqName("Extension"); public final FqName target = annotationName("Target"); public final FqName annotation = annotationName("annotation"); diff --git a/js/js.libraries/src/core/concurrent.kt b/js/js.libraries/src/core/concurrent.kt index c459a2868c5..2641683f84d 100644 --- a/js/js.libraries/src/core/concurrent.kt +++ b/js/js.libraries/src/core/concurrent.kt @@ -16,7 +16,6 @@ package kotlin -import kotlin.InlineOption.ONLY_LOCAL_RETURN // Note: // Right now we don't want to have neither 'volatile' nor 'synchronized' at runtime, diff --git a/js/js.translator/testData/inline/cases/rootConstructor.kt b/js/js.translator/testData/inline/cases/rootConstructor.kt index ffc8820632c..e325180f415 100644 --- a/js/js.translator/testData/inline/cases/rootConstructor.kt +++ b/js/js.translator/testData/inline/cases/rootConstructor.kt @@ -5,7 +5,6 @@ package foo -import kotlin.InlineOption.* inline fun doWork(crossinline job: ()-> R) : R { return notInline({job()}) diff --git a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSite/anonymousObjectOnDeclarationSite.2.kt b/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSite/anonymousObjectOnDeclarationSite.2.kt index c23197be621..96766d9b970 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSite/anonymousObjectOnDeclarationSite.2.kt +++ b/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSite/anonymousObjectOnDeclarationSite.2.kt @@ -6,7 +6,6 @@ package test -import kotlin.InlineOption.* abstract class A { abstract fun getO() : R diff --git a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSiteSuperParams/anonymousObjectOnDeclarationSiteSuperParams.2.kt b/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSiteSuperParams/anonymousObjectOnDeclarationSiteSuperParams.2.kt index 974e8559d62..14011d45ef9 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSiteSuperParams/anonymousObjectOnDeclarationSiteSuperParams.2.kt +++ b/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSiteSuperParams/anonymousObjectOnDeclarationSiteSuperParams.2.kt @@ -5,7 +5,6 @@ package test -import kotlin.InlineOption.* abstract class A(val param : R) { abstract fun getO() : R diff --git a/js/js.translator/testData/inlineMultiFile/cases/buildersAndLambdaCapturing/buildersAndLambdaCapturing.1.kt b/js/js.translator/testData/inlineMultiFile/cases/buildersAndLambdaCapturing/buildersAndLambdaCapturing.1.kt index 512bc469b79..1d8837d1925 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/buildersAndLambdaCapturing/buildersAndLambdaCapturing.1.kt +++ b/js/js.translator/testData/inlineMultiFile/cases/buildersAndLambdaCapturing/buildersAndLambdaCapturing.1.kt @@ -5,7 +5,6 @@ package foo -import kotlin.InlineOption.* inline fun testAllInline(f: () -> String) : String { val args = arrayOf("1", "2", "3") diff --git a/js/js.translator/testData/inlineMultiFile/cases/captureInlinable/captureInlinable.2.kt b/js/js.translator/testData/inlineMultiFile/cases/captureInlinable/captureInlinable.2.kt index b03d2e137a0..1a273386d8d 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/captureInlinable/captureInlinable.2.kt +++ b/js/js.translator/testData/inlineMultiFile/cases/captureInlinable/captureInlinable.2.kt @@ -5,7 +5,6 @@ package test -import kotlin.InlineOption.* inline fun doWork(crossinline job: ()-> R) : R { return notInline({job()}) diff --git a/js/js.translator/testData/inlineMultiFile/cases/captureInlinableAndOther/captureInlinableAndOther.2.kt b/js/js.translator/testData/inlineMultiFile/cases/captureInlinableAndOther/captureInlinableAndOther.2.kt index 442f3b97f7d..32f6060ca63 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/captureInlinableAndOther/captureInlinableAndOther.2.kt +++ b/js/js.translator/testData/inlineMultiFile/cases/captureInlinableAndOther/captureInlinableAndOther.2.kt @@ -5,7 +5,6 @@ package test -import kotlin.InlineOption.* inline fun doWork(crossinline job: ()-> R) : R { val k = 10; diff --git a/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambdaNoInline/lambdaInLambdaNoInline.1.kt b/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambdaNoInline/lambdaInLambdaNoInline.1.kt index 6b15cd98af3..a681ff056a1 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambdaNoInline/lambdaInLambdaNoInline.1.kt +++ b/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambdaNoInline/lambdaInLambdaNoInline.1.kt @@ -6,7 +6,6 @@ package foo import test.* -import kotlin.InlineOption.* fun test1(param: String): String { var result = "fail1" diff --git a/js/js.translator/testData/inlineMultiFile/cases/regeneratedLambdaName/regeneratedLambdaName.2.kt b/js/js.translator/testData/inlineMultiFile/cases/regeneratedLambdaName/regeneratedLambdaName.2.kt index dc256578811..c67af8ae54c 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/regeneratedLambdaName/regeneratedLambdaName.2.kt +++ b/js/js.translator/testData/inlineMultiFile/cases/regeneratedLambdaName/regeneratedLambdaName.2.kt @@ -5,7 +5,6 @@ package test -import kotlin.InlineOption.* inline fun call(crossinline f: () -> R) : R { return {f()} () diff --git a/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.1.kt b/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.1.kt index 6fe8f196bf1..4e7f4ab938b 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.1.kt +++ b/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.1.kt @@ -6,7 +6,6 @@ package foo import test.* -import kotlin.InlineOption.* fun testSameCaptured() : String { var result = 0; diff --git a/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.2.kt b/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.2.kt index 023919cad8d..07725a9d331 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.2.kt +++ b/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.2.kt @@ -5,7 +5,6 @@ package test -import kotlin.InlineOption.* inline fun doWork(crossinline job: ()-> R) : R { val k = 10; diff --git a/js/js.translator/testData/inlineMultiFile/cases/with/with.2.kt b/js/js.translator/testData/inlineMultiFile/cases/with/with.2.kt index 42a844048eb..373f634bde1 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/with/with.2.kt +++ b/js/js.translator/testData/inlineMultiFile/cases/with/with.2.kt @@ -5,7 +5,6 @@ package test -import kotlin.InlineOption.* public class Data()