Implement members: implement functions in the same order as within Java interface
#KT-31760 Fixed
This commit is contained in:
committed by
Yan Zhulanow
parent
741ebeb7b8
commit
098469eb85
+1
-1
@@ -75,7 +75,7 @@ class LazyJavaClassMemberScope(
|
||||
override fun computeMemberIndex() = ClassDeclaredMemberIndex(jClass) { !it.isStatic }
|
||||
|
||||
override fun computeFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?) =
|
||||
ownerDescriptor.typeConstructor.supertypes.flatMapTo(hashSetOf()) {
|
||||
ownerDescriptor.typeConstructor.supertypes.flatMapTo(linkedSetOf()) {
|
||||
it.memberScope.getFunctionNames()
|
||||
}.apply {
|
||||
addAll(declaredMemberIndex().getMethodNames())
|
||||
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package foo
|
||||
|
||||
class <caret>Impl : TestJavaInterface {
|
||||
}
|
||||
Vendored
+27
@@ -0,0 +1,27 @@
|
||||
package foo
|
||||
|
||||
class Impl : TestJavaInterface {
|
||||
override fun onTextEvent() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun onAttachmentEvent() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun onEventDeleted() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun onSeenReceipt() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun onDeliveredReceipt() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun onTypingEvent() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package foo;
|
||||
|
||||
public interface TestJavaInterface {
|
||||
void onTextEvent();
|
||||
|
||||
void onAttachmentEvent();
|
||||
|
||||
void onEventDeleted();
|
||||
|
||||
void onSeenReceipt();
|
||||
|
||||
void onDeliveredReceipt();
|
||||
|
||||
void onTypingEvent();
|
||||
}
|
||||
@@ -63,6 +63,10 @@ abstract class AbstractOverrideImplementTest : KotlinLightCodeInsightFixtureTest
|
||||
doDirectoryTest(OverrideMembersHandler(), memberToImplement)
|
||||
}
|
||||
|
||||
protected fun doMultiImplementDirectoryTest() {
|
||||
doMultiDirectoryTest(ImplementMembersHandler())
|
||||
}
|
||||
|
||||
protected fun doMultiOverrideDirectoryTest() {
|
||||
doMultiDirectoryTest(OverrideMembersHandler())
|
||||
}
|
||||
|
||||
@@ -45,6 +45,10 @@ class OverrideImplementTest : AbstractOverrideImplementTest() {
|
||||
doImplementDirectoryTest()
|
||||
}
|
||||
|
||||
fun testJavaInterfaceMethodInCorrectOrder() {
|
||||
doMultiImplementDirectoryTest()
|
||||
}
|
||||
|
||||
fun testJavaParameters() {
|
||||
doImplementDirectoryTest()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user