diff --git a/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/KotlinK2QuickFixRegistrar.kt b/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/KotlinK2QuickFixRegistrar.kt index e894b9fc477a..0b815a965a8a 100644 --- a/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/KotlinK2QuickFixRegistrar.kt +++ b/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/KotlinK2QuickFixRegistrar.kt @@ -111,6 +111,7 @@ class KotlinK2QuickFixRegistrar : KotlinQuickFixRegistrar() { registerFactory(AddInlineModifierFixFactories.inlineSuspendFunctionTypeUnsupported) registerFactory(MakeTypeParameterReifiedAndFunctionInlineFixFactory.cannotCheckForErasedFactory) registerFactory(AddInlineToFunctionFixFactories.illegalInlineParameterModifierFactory) + registerPsiQuickFixes(KtFirDiagnostic.ReifiedTypeParameterNoInline::class, AddModifierFix.addInlineToFunctionWithReified) } private val propertyInitialization = KtQuickFixesListBuilder.registerPsiQuickFix { diff --git a/plugins/kotlin/code-insight/fixes-k2/tests/test/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/HighLevelQuickFixTestGenerated.java b/plugins/kotlin/code-insight/fixes-k2/tests/test/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/HighLevelQuickFixTestGenerated.java index 58db5e887cb2..5bee3f39e081 100644 --- a/plugins/kotlin/code-insight/fixes-k2/tests/test/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/HighLevelQuickFixTestGenerated.java +++ b/plugins/kotlin/code-insight/fixes-k2/tests/test/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/HighLevelQuickFixTestGenerated.java @@ -4869,7 +4869,18 @@ public abstract class HighLevelQuickFixTestGenerated extends AbstractHighLevelQu } } + @RunWith(JUnit3RunnerWithInners.class) + @TestMetadata("../../../idea/tests/testData/quickfix/addInlineToReifiedFunctionFix") + public static class AddInlineToReifiedFunctionFix extends AbstractHighLevelQuickFixTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + @TestMetadata("basic.kt") + public void testBasic() throws Exception { + runTest("../../../idea/tests/testData/quickfix/addInlineToReifiedFunctionFix/basic.kt"); + } + } diff --git a/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.kt b/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.kt index 4724c4b0dbff..687e856e3189 100644 --- a/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.kt +++ b/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.kt @@ -127,6 +127,7 @@ open class AddModifierFix( val addInnerModifier = createFactory(KtTokens.INNER_KEYWORD) val addOverrideModifier = createFactory(KtTokens.OVERRIDE_KEYWORD) val addDataModifier = createFactory(KtTokens.DATA_KEYWORD, KtClass::class.java) + val addInlineToFunctionWithReified = createFactory(KtTokens.INLINE_KEYWORD, KtNamedFunction::class.java) val modifiersWithWarning: Set = setOf(KtTokens.ABSTRACT_KEYWORD, KtTokens.FINAL_KEYWORD) private val modalityModifiers = modifiersWithWarning + KtTokens.OPEN_KEYWORD diff --git a/plugins/kotlin/idea/tests/testData/quickfix/addInlineToReifiedFunctionFix/basic.kt b/plugins/kotlin/idea/tests/testData/quickfix/addInlineToReifiedFunctionFix/basic.kt index 7b652c5c5488..5106aaf6997f 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/addInlineToReifiedFunctionFix/basic.kt +++ b/plugins/kotlin/idea/tests/testData/quickfix/addInlineToReifiedFunctionFix/basic.kt @@ -3,4 +3,5 @@ fun <reified T> fn() { } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddInlineToFunctionWithReifiedFix \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddInlineToFunctionWithReifiedFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddModifierFix \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/quickfix/addInlineToReifiedFunctionFix/basic.kt.after b/plugins/kotlin/idea/tests/testData/quickfix/addInlineToReifiedFunctionFix/basic.kt.after index 6847e86b07b2..e6e3c260e409 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/addInlineToReifiedFunctionFix/basic.kt.after +++ b/plugins/kotlin/idea/tests/testData/quickfix/addInlineToReifiedFunctionFix/basic.kt.after @@ -3,4 +3,5 @@ inline fun fn() { } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddInlineToFunctionWithReifiedFix \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddInlineToFunctionWithReifiedFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddModifierFix \ No newline at end of file diff --git a/plugins/kotlin/util/test-generator-fir/test/org/jetbrains/kotlin/fir/testGenerator/codeinsight/GenerateK2QuickFixTests.kt b/plugins/kotlin/util/test-generator-fir/test/org/jetbrains/kotlin/fir/testGenerator/codeinsight/GenerateK2QuickFixTests.kt index 988b2639147a..eb25fb55f86a 100644 --- a/plugins/kotlin/util/test-generator-fir/test/org/jetbrains/kotlin/fir/testGenerator/codeinsight/GenerateK2QuickFixTests.kt +++ b/plugins/kotlin/util/test-generator-fir/test/org/jetbrains/kotlin/fir/testGenerator/codeinsight/GenerateK2QuickFixTests.kt @@ -69,7 +69,7 @@ internal fun MutableTWorkspace.generateK2FixTests() { model("$idea/quickfix/addFunModifier", pattern = pattern) model("$idea/quickfix/addGenericUpperBound", pattern = pattern, isIgnored = true) model("$idea/quickfix/addInline", pattern = pattern) - model("$idea/quickfix/addInlineToReifiedFunctionFix", pattern = pattern, isIgnored = true) + model("$idea/quickfix/addInlineToReifiedFunctionFix", pattern = pattern) model("$idea/quickfix/addIsToWhenCondition", pattern = pattern, isIgnored = true) model("$idea/quickfix/addJvmInline", pattern = pattern, isIgnored = true) model("$idea/quickfix/addJvmStaticAnnotation", pattern = pattern, isIgnored = true)