diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/codeInsight/ReferenceVariantsHelper.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/codeInsight/ReferenceVariantsHelper.kt index 9c58fc866c3..60adaef5ab9 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/codeInsight/ReferenceVariantsHelper.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/codeInsight/ReferenceVariantsHelper.kt @@ -206,7 +206,7 @@ class ReferenceVariantsHelper( // add non-instance members descriptors.addAll(resolutionScope.collectDescriptorsFiltered(filterWithoutExtensions, nameFilter)) descriptors.addAll(resolutionScope.collectAllFromMeAndParent { scope -> - scope.collectSyntheticStaticMembers(resolutionFacade, kindFilter, nameFilter) + scope.collectSyntheticStaticMembersAndConstructors(resolutionFacade, kindFilter, nameFilter) }) } @@ -405,14 +405,15 @@ private fun MemberScope.collectStaticMembers( kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean ): Collection { - return getDescriptorsFiltered(kindFilter, nameFilter) + collectSyntheticStaticMembers(resolutionFacade, kindFilter, nameFilter) + return getDescriptorsFiltered(kindFilter, nameFilter) + collectSyntheticStaticMembersAndConstructors(resolutionFacade, kindFilter, nameFilter) } -fun ResolutionScope.collectSyntheticStaticMembers( +fun ResolutionScope.collectSyntheticStaticMembersAndConstructors( resolutionFacade: ResolutionFacade, kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean ): List { val syntheticScopes = resolutionFacade.getFrontendService(SyntheticScopes::class.java) - return syntheticScopes.collectSyntheticStaticFunctions(this).filter { kindFilter.accepts(it) && nameFilter(it.name) } + return (syntheticScopes.collectSyntheticStaticFunctions(this) + syntheticScopes.collectSyntheticConstructors(this)) + .filter { kindFilter.accepts(it) && nameFilter(it.name) } } \ No newline at end of file diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/StaticMembersCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/StaticMembersCompletion.kt index 5c7194c5652..4e879cd24f7 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/StaticMembersCompletion.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/StaticMembersCompletion.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.DeclarationDescriptor -import org.jetbrains.kotlin.idea.codeInsight.collectSyntheticStaticMembers +import org.jetbrains.kotlin.idea.codeInsight.collectSyntheticStaticMembersAndConstructors import org.jetbrains.kotlin.idea.core.KotlinIndicesHelper import org.jetbrains.kotlin.idea.core.targetDescriptors import org.jetbrains.kotlin.idea.resolve.ResolutionFacade @@ -84,7 +84,7 @@ class StaticMembersCompletion( val memberScope = if (container.kind == ClassKind.OBJECT) container.unsubstitutedMemberScope else container.staticScope val members = memberScope.getDescriptorsFiltered(kindFilter, nameFilter) + - memberScope.collectSyntheticStaticMembers(resolutionFacade, kindFilter, nameFilter) + memberScope.collectSyntheticStaticMembersAndConstructors(resolutionFacade, kindFilter, nameFilter) members.filterTo(result) { it is CallableDescriptor && it !in alreadyAdded } } return result diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt index 49b9a9b096e..9629f08bd76 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt @@ -31,7 +31,7 @@ import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde -import org.jetbrains.kotlin.idea.codeInsight.collectSyntheticStaticMembers +import org.jetbrains.kotlin.idea.codeInsight.collectSyntheticStaticMembersAndConstructors import org.jetbrains.kotlin.idea.completion.* import org.jetbrains.kotlin.idea.completion.handlers.KotlinFunctionInsertHandler import org.jetbrains.kotlin.idea.core.ExpectedInfo @@ -312,7 +312,7 @@ class TypeInstantiationItems( is ClassDescriptor -> container.unsubstitutedMemberScope else -> return } - scope.collectSyntheticStaticMembers(resolutionFacade, DescriptorKindFilter.FUNCTIONS, { classifier.name == it }) + scope.collectSyntheticStaticMembersAndConstructors(resolutionFacade, DescriptorKindFilter.FUNCTIONS, { classifier.name == it }) .filterIsInstance() .singleOrNull() ?: return }