From 8b8059acdd2ec323c0e053ee395e9d76e929593b Mon Sep 17 00:00:00 2001 From: Toshiaki Kameyama Date: Wed, 26 Feb 2020 12:33:47 +0900 Subject: [PATCH] Add quick fix for MANY_IMPL_MEMBER_NOT_IMPLEMENTED #KT-17121 Fixed --- .../kotlin/idea/quickfix/QuickFixRegistrar.kt | 1 + idea/testData/quickfix/abstract/manyImpl.kt | 1 + .../implement/menyImplMemberNotImplemented.kt | 14 +++++++++ .../menyImplMemberNotImplemented.kt.after | 30 +++++++++++++++++++ .../idea/quickfix/QuickFixTestGenerated.java | 5 ++++ 5 files changed, 51 insertions(+) create mode 100644 idea/testData/quickfix/implement/menyImplMemberNotImplemented.kt create mode 100644 idea/testData/quickfix/implement/menyImplMemberNotImplemented.kt.after diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt index fa4d3885c53..56521bc0064 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt @@ -214,6 +214,7 @@ class QuickFixRegistrar : QuickFixContributor { ABSTRACT_MEMBER_NOT_IMPLEMENTED.registerActions(implementMembersHandler, implementMembersAsParametersHandler) ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED.registerActions(implementMembersHandler, implementMembersAsParametersHandler) MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED.registerActions(implementMembersHandler, implementMembersAsParametersHandler) + MANY_IMPL_MEMBER_NOT_IMPLEMENTED.registerActions(implementMembersHandler) VAL_WITH_SETTER.registerFactory(ChangeVariableMutabilityFix.VAL_WITH_SETTER_FACTORY) VAL_REASSIGNMENT.registerFactory( diff --git a/idea/testData/quickfix/abstract/manyImpl.kt b/idea/testData/quickfix/abstract/manyImpl.kt index 651bb9ea469..ebc1d4c637b 100644 --- a/idea/testData/quickfix/abstract/manyImpl.kt +++ b/idea/testData/quickfix/abstract/manyImpl.kt @@ -4,6 +4,7 @@ // ACTION: Make internal // ACTION: Make private // ACTION: Extract 'X' from current file +// ACTION: Implement members interface D { fun foo() diff --git a/idea/testData/quickfix/implement/menyImplMemberNotImplemented.kt b/idea/testData/quickfix/implement/menyImplMemberNotImplemented.kt new file mode 100644 index 00000000000..ef7d9d4bff3 --- /dev/null +++ b/idea/testData/quickfix/implement/menyImplMemberNotImplemented.kt @@ -0,0 +1,14 @@ +// "Implement members" "true" +// WITH_RUNTIME +// DISABLE-ERRORS +interface A { + fun foo() {} + fun bar() {} +} + +open class B { + open fun foo() {} + open fun bar() {} +} + +class C : A, B() \ No newline at end of file diff --git a/idea/testData/quickfix/implement/menyImplMemberNotImplemented.kt.after b/idea/testData/quickfix/implement/menyImplMemberNotImplemented.kt.after new file mode 100644 index 00000000000..a8a3d4f353a --- /dev/null +++ b/idea/testData/quickfix/implement/menyImplMemberNotImplemented.kt.after @@ -0,0 +1,30 @@ +// "Implement members" "true" +// WITH_RUNTIME +// DISABLE-ERRORS +interface A { + fun foo() {} + fun bar() {} +} + +open class B { + open fun foo() {} + open fun bar() {} +} + +class C : A, B() { + override fun foo() { + TODO("Not yet implemented") + } + + override fun foo() { + TODO("Not yet implemented") + } + + override fun bar() { + TODO("Not yet implemented") + } + + override fun bar() { + TODO("Not yet implemented") + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 65f1907fa2b..a6a57a9be60 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -7950,6 +7950,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { runTest("idea/testData/quickfix/implement/local.kt"); } + @TestMetadata("menyImplMemberNotImplemented.kt") + public void testMenyImplMemberNotImplemented() throws Exception { + runTest("idea/testData/quickfix/implement/menyImplMemberNotImplemented.kt"); + } + @TestMetadata("nested.kt") public void testNested() throws Exception { runTest("idea/testData/quickfix/implement/nested.kt");