diff --git a/idea/resources/META-INF/plugin-common.xml b/idea/resources/META-INF/plugin-common.xml index 7ea49d6f0b4..3b4468abd09 100644 --- a/idea/resources/META-INF/plugin-common.xml +++ b/idea/resources/META-INF/plugin-common.xml @@ -3139,6 +3139,16 @@ language="kotlin" /> + + + + Since Kotlin 1.4, it's forbidden to declare a target label which does not denote a function. + + diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/migration/RestrictReturnStatementTargetMigrationInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/migration/RestrictReturnStatementTargetMigrationInspection.kt new file mode 100644 index 00000000000..156d7b3d95d --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/migration/RestrictReturnStatementTargetMigrationInspection.kt @@ -0,0 +1,25 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.inspections.migration + +import com.intellij.codeInspection.CleanupLocalInspectionTool +import org.jetbrains.kotlin.config.LanguageVersion +import org.jetbrains.kotlin.diagnostics.Errors +import org.jetbrains.kotlin.idea.configuration.MigrationInfo +import org.jetbrains.kotlin.idea.configuration.isLanguageVersionUpdate +import org.jetbrains.kotlin.idea.quickfix.migration.MigrationFix +import org.jetbrains.kotlin.psi.KtExpressionWithLabel + + +class RestrictReturnStatementTargetMigrationInspection : + AbstractDiagnosticBasedMigrationInspection(Errors.NOT_A_FUNCTION_LABEL, KtExpressionWithLabel::class.java), + MigrationFix, + CleanupLocalInspectionTool { + override fun isApplicable(migrationInfo: MigrationInfo): Boolean { + return migrationInfo.isLanguageVersionUpdate(LanguageVersion.KOTLIN_1_3, LanguageVersion.KOTLIN_1_4) + } +} +