[kotlin] k2: take care about java fake overrides

- don't suggest implementing already implemented method

^KTIJ-31225 fixed

GitOrigin-RevId: 5a7224e633f6767e4170a9519fcf89eb1ddf9823
This commit is contained in:
Anna Kozlova
2024-09-06 15:31:22 +00:00
committed by intellij-monorepo-bot
parent cab9819e62
commit 42cef6c89d
6 changed files with 56 additions and 1 deletions
@@ -8960,6 +8960,11 @@ public abstract class HighLevelQuickFixTestGenerated extends AbstractHighLevelQu
runTest("../../../idea/tests/testData/quickfix/implement/enum.kt");
}
@TestMetadata("fakeOverride.kt")
public void testFakeOverride() throws Exception {
runTest("../../../idea/tests/testData/quickfix/implement/fakeOverride.kt");
}
@TestMetadata("finalClass.kt")
public void testFinalClass() throws Exception {
runTest("../../../idea/tests/testData/quickfix/implement/finalClass.kt");
@@ -67,7 +67,7 @@ open class KtImplementMembersHandler : KtGenerateMembersHandler(true) {
}
if (abstractSymbols.isNotEmpty()) {
addAll(abstractSymbols)
} else {
} else if (intersectionOverriddenSymbols.size > 1) {
// This for the [MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED] and [MANY_IMPL_MEMBER_NOT_IMPLEMENTED] compiler errors.
addAll(intersectionOverriddenSymbols)
}
@@ -9747,6 +9747,11 @@ public abstract class K1QuickFixTestGenerated extends AbstractK1QuickFixTest {
runTest("testData/quickfix/implement/enum.kt");
}
@TestMetadata("fakeOverride.kt")
public void testFakeOverride() throws Exception {
runTest("testData/quickfix/implement/fakeOverride.kt");
}
@TestMetadata("finalClass.kt")
public void testFinalClass() throws Exception {
runTest("testData/quickfix/implement/finalClass.kt");
@@ -0,0 +1,19 @@
// "Implement members" "true"
// WITH_STDLIB
class C : java.io.Writer(), java.lang.Appendable {
override fun write(p0: CharArray, p1: Int, p2: Int) {
<selection><caret>TODO("Not yet implemented")</selection>
}
override fun flush() {
TODO("Not yet implemented")
}
override fun close() {
TODO("Not yet implemented")
}
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.core.overrideImplement.ImplementMembersHandler
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.core.overrideImplement.KtImplementMembersQuickfix
@@ -0,0 +1,7 @@
// "Implement members" "true"
// WITH_STDLIB
class<caret> C : java.io.Writer(), java.lang.Appendable
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.core.overrideImplement.ImplementMembersHandler
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.core.overrideImplement.KtImplementMembersQuickfix
@@ -0,0 +1,19 @@
// "Implement members" "true"
// WITH_STDLIB
class C : java.io.Writer(), java.lang.Appendable {
override fun close() {
<selection><caret>TODO("Not yet implemented")</selection>
}
override fun flush() {
TODO("Not yet implemented")
}
override fun write(p0: CharArray, p1: Int, p2: Int) {
TODO("Not yet implemented")
}
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.core.overrideImplement.ImplementMembersHandler
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.core.overrideImplement.KtImplementMembersQuickfix