@@ -305,7 +305,7 @@ private fun elementCompletions(file: CompiledFile, cursor: Int, surroundingEleme
305305 val referenceTarget = file.referenceAtPoint(surroundingElement.qualifier!! .startOffset)?.second
306306 if (referenceTarget is ClassDescriptor ) {
307307 LOG .info(" Completing members of {}" , referenceTarget.fqNameSafe)
308- return referenceTarget.unsubstitutedInnerClassesScope.getContributedDescriptors().asSequence ()
308+ return referenceTarget.getDescriptors ()
309309 } else {
310310 LOG .warn(" No type reference in '{}'" , surroundingElement.text)
311311 return emptySequence()
@@ -374,16 +374,24 @@ private fun completeMembers(file: CompiledFile, cursor: Int, receiverExpr: KtExp
374374 // JavaClass.?
375375 val referenceTarget = file.referenceAtPoint(receiverExpr.endOffset - 1 )?.second
376376 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()
381379 }
382380
383381 LOG .debug(" Can't find member scope for {}" , receiverExpr.text)
384382 return emptySequence()
385383}
386384
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+
387395private fun isCompanionOfEnum (kotlinType : KotlinType ): Boolean {
388396 val classDescriptor = TypeUtils .getClassDescriptor(kotlinType)
389397 val isCompanion = DescriptorUtils .isCompanionObject(classDescriptor)
0 commit comments