[CLI] non-local break and continue enters preview phase
- Assign LV 2.2 (this way IDE can pick up this change earlier and
correctly highlight the code for future versions of Kotlin)
- Introduce -Xnon-local-break-continue flag
diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt
index 0623308..f89de7a 100644
--- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt
+++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt
@@ -697,6 +697,16 @@
}
@Argument(
+ value = "-Xnon-local-break-continue",
+ description = "Enable experimental non-local break and continue."
+ )
+ var nonLocalBreakContinue = false
+ set(value) {
+ checkFrozen()
+ field = value
+ }
+
+ @Argument(
value = "-Xmulti-dollar-interpolation",
description = "Enable experimental multi-dollar interpolation."
)
@@ -858,6 +868,10 @@
put(LanguageFeature.ContextReceivers, LanguageFeature.State.ENABLED)
}
+ if (nonLocalBreakContinue) {
+ put(LanguageFeature.BreakContinueInInlineLambdas, LanguageFeature.State.ENABLED)
+ }
+
if (inlineClasses) {
put(LanguageFeature.InlineClasses, LanguageFeature.State.ENABLED)
}
diff --git a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt
index 616a0b2..4e9b563 100644
--- a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt
+++ b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt
@@ -335,6 +335,7 @@
// 2.2
+ BreakContinueInInlineLambdas(KOTLIN_2_2), // KT-1436
UnstableSmartcastOnDelegatedProperties(KOTLIN_2_2, kind = BUG_FIX), // KT-57417
ReferencesToSyntheticJavaProperties(KOTLIN_2_2), // KT-8575
ForbidUsingExpressionTypesWithInaccessibleContent(KOTLIN_2_2, kind = BUG_FIX), // KT-66691
@@ -374,7 +375,6 @@
// Experimental features
- BreakContinueInInlineLambdas(null), // KT-1436
JsEnableExtensionFunctionInExternals(null, kind = OTHER),
PackagePrivateFileClassesWithAllPrivateMembers(null), // Disabled until the breaking change is approved by the committee, see KT-10884.
BooleanElvisBoundSmartCasts(null), // see KT-26357 for details