@@ -305,7 +305,7 @@ private fun elementCompletions(file: CompiledFile, cursor: Int, surroundingEleme
305
305
val referenceTarget = file.referenceAtPoint(surroundingElement.qualifier!! .startOffset)?.second
306
306
if (referenceTarget is ClassDescriptor ) {
307
307
LOG .info(" Completing members of {}" , referenceTarget.fqNameSafe)
308
- return referenceTarget.unsubstitutedInnerClassesScope.getContributedDescriptors().asSequence ()
308
+ return referenceTarget.getDescriptors ()
309
309
} else {
310
310
LOG .warn(" No type reference in '{}'" , surroundingElement.text)
311
311
return emptySequence()
@@ -374,16 +374,24 @@ private fun completeMembers(file: CompiledFile, cursor: Int, receiverExpr: KtExp
374
374
// JavaClass.?
375
375
val referenceTarget = file.referenceAtPoint(receiverExpr.endOffset - 1 )?.second
376
376
if (referenceTarget is ClassDescriptor ) {
377
- LOG .debug(" Completing static members of '{}'" , referenceTarget.fqNameSafe)
378
- val statics = referenceTarget.staticScope.getContributedDescriptors().asSequence()
379
- val classes = referenceTarget.unsubstitutedInnerClassesScope.getContributedDescriptors().asSequence()
380
- return descriptors + statics + classes
377
+ LOG .debug(" Completing members of '{}'" , referenceTarget.fqNameSafe)
378
+ return descriptors + referenceTarget.getDescriptors()
381
379
}
382
380
383
381
LOG .debug(" Can't find member scope for {}" , receiverExpr.text)
384
382
return emptySequence()
385
383
}
386
384
385
+ private fun ClassDescriptor.getDescriptors (): Sequence <DeclarationDescriptor > {
386
+ val statics = staticScope.getContributedDescriptors().asSequence()
387
+ val classes = unsubstitutedInnerClassesScope.getContributedDescriptors().asSequence()
388
+ val types = unsubstitutedMemberScope.getContributedDescriptors().asSequence()
389
+ val companionDescriptors = if (hasCompanionObject && companionObjectDescriptor != null ) companionObjectDescriptor!! .getDescriptors() else emptySequence()
390
+
391
+ return (statics + classes + types + companionDescriptors).toSet().asSequence()
392
+
393
+ }
394
+
387
395
private fun isCompanionOfEnum (kotlinType : KotlinType ): Boolean {
388
396
val classDescriptor = TypeUtils .getClassDescriptor(kotlinType)
389
397
val isCompanion = DescriptorUtils .isCompanionObject(classDescriptor)
0 commit comments