Skip to content

Commit 965f844

Browse files
committed
Minor tweaks and indentation fix
1 parent 095ddaf commit 965f844

File tree

1 file changed

+35
-36
lines changed

1 file changed

+35
-36
lines changed

server/src/main/kotlin/org/javacs/kt/overridemembers/OverrideMembers.kt

Lines changed: 35 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import org.eclipse.lsp4j.TextEdit
77
import org.eclipse.lsp4j.WorkspaceEdit
88
import org.javacs.kt.CompiledFile
99
import org.javacs.kt.util.toPath
10-
import org.javacs.kt.LOG
1110
import org.javacs.kt.position.position
1211
import org.jetbrains.kotlin.psi.KtClass
1312
import org.jetbrains.kotlin.psi.KtTypeArgumentList
@@ -73,42 +72,42 @@ private fun createOverrideAlternatives(file: CompiledFile, kotlinClass: KtClass)
7372

7473
// TODO: any way can repeat less code between this and the getAbstractMembersStubs in the ImplementAbstractMembersQuickfix?
7574
private fun getUnimplementedMembersStubs(file: CompiledFile, kotlinClass: KtClass): List<String> =
76-
// For each of the super types used by this class
77-
kotlinClass
78-
.superTypeListEntries
79-
.mapNotNull {
80-
// Find the definition of this super type
81-
val referenceAtPoint = file.referenceExpressionAtPoint(it.startOffset)
82-
val descriptor = referenceAtPoint?.second
83-
val classDescriptor = getClassDescriptor(descriptor)
84-
85-
// If the super class is abstract, interface or just plain open
86-
if (null != classDescriptor && classDescriptor.canBeExtended()
87-
) {
88-
val superClassTypeArguments = getSuperClassTypeProjections(file, it)
89-
classDescriptor
90-
.getMemberScope(superClassTypeArguments)
91-
.getContributedDescriptors()
92-
.filter { classMember ->
93-
(classMember is FunctionDescriptor &&
94-
classMember.canBeOverriden() &&
95-
!overridesDeclaration(kotlinClass, classMember)) ||
96-
(classMember is PropertyDescriptor &&
97-
classMember.canBeOverriden() &&
98-
!overridesDeclaration(kotlinClass, classMember))
99-
}
100-
.mapNotNull { member ->
101-
when (member) {
102-
is FunctionDescriptor -> createFunctionStub(member)
103-
is PropertyDescriptor -> createVariableStub(member)
104-
else -> null
105-
}
106-
}
107-
} else {
108-
null
75+
// For each of the super types used by this class
76+
// TODO: does not seem to handle the implicit Any and Object super types that well. Need to find out if that is easily solvable. Finds the methods from them if any super class or interface is present
77+
kotlinClass
78+
.superTypeListEntries
79+
.mapNotNull {
80+
// Find the definition of this super type
81+
val referenceAtPoint = file.referenceExpressionAtPoint(it.startOffset)
82+
val descriptor = referenceAtPoint?.second
83+
val classDescriptor = getClassDescriptor(descriptor)
84+
85+
// If the super class is abstract, interface or just plain open
86+
if (null != classDescriptor && classDescriptor.canBeExtended()) {
87+
val superClassTypeArguments = getSuperClassTypeProjections(file, it)
88+
classDescriptor
89+
.getMemberScope(superClassTypeArguments)
90+
.getContributedDescriptors()
91+
.filter { classMember ->
92+
(classMember is FunctionDescriptor &&
93+
classMember.canBeOverriden() &&
94+
!overridesDeclaration(kotlinClass, classMember)) ||
95+
(classMember is PropertyDescriptor &&
96+
classMember.canBeOverriden() &&
97+
!overridesDeclaration(kotlinClass, classMember))
10998
}
110-
}
111-
.flatten()
99+
.mapNotNull { member ->
100+
when (member) {
101+
is FunctionDescriptor -> createFunctionStub(member)
102+
is PropertyDescriptor -> createVariableStub(member)
103+
else -> null
104+
}
105+
}
106+
} else {
107+
null
108+
}
109+
}
110+
.flatten()
112111

113112
private fun ClassDescriptor.canBeExtended() = this.kind.isInterface ||
114113
this.modality == Modality.ABSTRACT ||

0 commit comments

Comments
 (0)