Don't propose to generate Any methods in interface to avoid METHOD_OF_ANY_IMPLEMENTED_IN_INTERFACE error (KT-9796)
#KT-9796 Fixed
This commit is contained in:
+4
@@ -19,6 +19,8 @@ package org.jetbrains.kotlin.idea.core.overrideImplement
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.util.SmartList
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
|
||||
import java.util.*
|
||||
|
||||
public class OverrideMembersHandler : OverrideImplementMembersHandler() {
|
||||
@@ -30,6 +32,8 @@ public class OverrideMembersHandler : OverrideImplementMembersHandler() {
|
||||
val overridden = member.overriddenDescriptors
|
||||
if (overridden.any { it.modality == Modality.FINAL || Visibilities.isPrivate(it.visibility.normalize()) }) continue
|
||||
|
||||
if (DescriptorUtils.isInterface(descriptor) && overridden.any { descriptor.builtIns.isMemberOfAny(it) }) continue
|
||||
|
||||
class Data(
|
||||
val realSuper: CallableMemberDescriptor,
|
||||
val immediateSupers: MutableList<CallableMemberDescriptor> = SmartList()
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
interface I {
|
||||
<caret>
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
interface I {
|
||||
<caret>
|
||||
}
|
||||
@@ -184,6 +184,10 @@ public class OverrideImplementTest : AbstractOverrideImplementTest() {
|
||||
doMultiOverrideFileTest()
|
||||
}
|
||||
|
||||
public fun testNoAnyMembersInInterface() {
|
||||
doMultiOverrideFileTest()
|
||||
}
|
||||
|
||||
public fun testLocalClass() {
|
||||
doImplementFileTest()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user