diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt index 93cbe7ce923..eab741fc3e1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt @@ -507,6 +507,7 @@ class QuickFixRegistrar : QuickFixContributor { OVERLOADS_LOCAL.registerFactory(RemoveAnnotationFix.JvmOverloads) OVERLOADS_WITHOUT_DEFAULT_ARGUMENTS.registerFactory(RemoveAnnotationFix.JvmOverloads) + ACTUAL_WITHOUT_EXPECT.registerFactory(RemoveModifierFix.createRemoveModifierFromListOwnerFactory(ACTUAL_KEYWORD)) NO_ACTUAL_FOR_EXPECT.registerFactory(CreateActualFix) NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS.registerFactory(AddActualFix) diff --git a/idea/testData/multiModuleQuickFix/actualWithoutExpect/common/common.kt b/idea/testData/multiModuleQuickFix/actualWithoutExpect/common/common.kt new file mode 100644 index 00000000000..eb8e7a5631d --- /dev/null +++ b/idea/testData/multiModuleQuickFix/actualWithoutExpect/common/common.kt @@ -0,0 +1,5 @@ +expect interface ExpInterface { + fun first() +} + +expect class ExpImpl : ExpInterface { } \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/actualWithoutExpect/common/common.kt.after b/idea/testData/multiModuleQuickFix/actualWithoutExpect/common/common.kt.after new file mode 100644 index 00000000000..eb8e7a5631d --- /dev/null +++ b/idea/testData/multiModuleQuickFix/actualWithoutExpect/common/common.kt.after @@ -0,0 +1,5 @@ +expect interface ExpInterface { + fun first() +} + +expect class ExpImpl : ExpInterface { } \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/actualWithoutExpect/jvm/jvm.kt b/idea/testData/multiModuleQuickFix/actualWithoutExpect/jvm/jvm.kt new file mode 100644 index 00000000000..a3bd59b02ac --- /dev/null +++ b/idea/testData/multiModuleQuickFix/actualWithoutExpect/jvm/jvm.kt @@ -0,0 +1,10 @@ +// "Remove 'actual' modifier" "true" +// ERROR: Actual function 'first' has no corresponding expected declaration + +actual interface ExpInterface { + actual fun first() +} + +actual class ExpImpl : ExpInterface { + actual override fun first() { } +} \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/actualWithoutExpect/jvm/jvm.kt.after b/idea/testData/multiModuleQuickFix/actualWithoutExpect/jvm/jvm.kt.after new file mode 100644 index 00000000000..765cae4dc74 --- /dev/null +++ b/idea/testData/multiModuleQuickFix/actualWithoutExpect/jvm/jvm.kt.after @@ -0,0 +1,10 @@ +// "Remove 'actual' modifier" "true" +// ERROR: Actual function 'first' has no corresponding expected declaration + +actual interface ExpInterface { + actual fun first() +} + +actual class ExpImpl : ExpInterface { + override fun first() { } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java index 13697f1ab55..e2ff8b0a0f6 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java @@ -30,6 +30,11 @@ public class QuickFixMultiModuleTestGenerated extends AbstractQuickFixMultiModul runTest("idea/testData/multiModuleQuickFix/abstract/"); } + @TestMetadata("actualWithoutExpect") + public void testActualWithoutExpect() throws Exception { + runTest("idea/testData/multiModuleQuickFix/actualWithoutExpect/"); + } + @TestMetadata("addActualToClass") public void testAddActualToClass() throws Exception { runTest("idea/testData/multiModuleQuickFix/addActualToClass/");