Refactored
This commit is contained in:
+6
-6
@@ -66,17 +66,17 @@ fun PsiMember.getJavaMemberDescriptor(resolutionFacade: ResolutionFacade? = null
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun ResolutionFacade.psiClassToDescriptor(
|
fun PsiClass.resolveToDescriptor(
|
||||||
psiClass: PsiClass,
|
resolutionFacade: ResolutionFacade,
|
||||||
declarationTranslator: (KtClassOrObject) -> KtClassOrObject? = { it }
|
declarationTranslator: (KtClassOrObject) -> KtClassOrObject? = { it }
|
||||||
): ClassDescriptor? {
|
): ClassDescriptor? {
|
||||||
return if (psiClass is KtLightClass && psiClass !is KtLightClassForDecompiledDeclaration) {
|
return if (this is KtLightClass && this !is KtLightClassForDecompiledDeclaration) {
|
||||||
val origin = psiClass.getOrigin() ?: return null
|
val origin = this.getOrigin() ?: return null
|
||||||
val declaration = declarationTranslator(origin) ?: return null
|
val declaration = declarationTranslator(origin) ?: return null
|
||||||
resolveToDescriptor(declaration)
|
resolutionFacade.resolveToDescriptor(declaration)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
psiClass.getJavaClassDescriptor(this)
|
getJavaClassDescriptor(resolutionFacade)
|
||||||
} as? ClassDescriptor
|
} as? ClassDescriptor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-4
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.asJava.LightClassUtil
|
|||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.psiClassToDescriptor
|
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
||||||
import org.jetbrains.kotlin.idea.completion.*
|
import org.jetbrains.kotlin.idea.completion.*
|
||||||
import org.jetbrains.kotlin.idea.completion.handlers.KotlinFunctionInsertHandler
|
import org.jetbrains.kotlin.idea.completion.handlers.KotlinFunctionInsertHandler
|
||||||
@@ -302,9 +302,10 @@ class TypeInstantiationItems(
|
|||||||
override fun search(nameFilter: (String) -> Boolean, consumer: (LookupElement) -> Unit) {
|
override fun search(nameFilter: (String) -> Boolean, consumer: (LookupElement) -> Unit) {
|
||||||
val parameters = ClassInheritorsSearch.SearchParameters(psiClass, inheritorSearchScope, true, true, false, nameFilter)
|
val parameters = ClassInheritorsSearch.SearchParameters(psiClass, inheritorSearchScope, true, true, false, nameFilter)
|
||||||
for (inheritor in ClassInheritorsSearch.search(parameters)) {
|
for (inheritor in ClassInheritorsSearch.search(parameters)) {
|
||||||
val descriptor = resolutionFacade.psiClassToDescriptor(
|
val descriptor = inheritor.resolveToDescriptor(
|
||||||
inheritor,
|
resolutionFacade,
|
||||||
{ toFromOriginalFileMapper.toSyntheticFile(it) as KtClassOrObject? }) as? ClassDescriptor ?: continue
|
{ toFromOriginalFileMapper.toSyntheticFile(it) as KtClassOrObject? }
|
||||||
|
) ?: continue
|
||||||
if (!visibilityFilter(descriptor)) continue
|
if (!visibilityFilter(descriptor)) continue
|
||||||
|
|
||||||
var inheritorFuzzyType = FuzzyType(descriptor.defaultType, descriptor.typeConstructor.parameters)
|
var inheritorFuzzyType = FuzzyType(descriptor.defaultType, descriptor.typeConstructor.parameters)
|
||||||
|
|||||||
@@ -24,11 +24,14 @@ import com.intellij.psi.search.PsiShortNamesCache
|
|||||||
import com.intellij.psi.stubs.StringStubIndexExtension
|
import com.intellij.psi.stubs.StringStubIndexExtension
|
||||||
import com.intellij.util.Processor
|
import com.intellij.util.Processor
|
||||||
import com.intellij.util.indexing.IdFilter
|
import com.intellij.util.indexing.IdFilter
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
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.caches.resolve.getJavaFieldDescriptor
|
import org.jetbrains.kotlin.idea.caches.resolve.getJavaFieldDescriptor
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.getJavaMethodDescriptor
|
import org.jetbrains.kotlin.idea.caches.resolve.getJavaMethodDescriptor
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.psiClassToDescriptor
|
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
|
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
|
||||||
import org.jetbrains.kotlin.idea.imports.importableFqName
|
import org.jetbrains.kotlin.idea.imports.importableFqName
|
||||||
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
|
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
|
||||||
import org.jetbrains.kotlin.idea.stubindex.*
|
import org.jetbrains.kotlin.idea.stubindex.*
|
||||||
@@ -161,12 +164,13 @@ public class KotlinIndicesHelper(
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun getJvmClassesByName(name: String): Collection<ClassifierDescriptor>
|
public fun getJvmClassesByName(name: String): Collection<ClassDescriptor> {
|
||||||
= PsiShortNamesCache.getInstance(project).getClassesByName(name, scope)
|
return PsiShortNamesCache.getInstance(project).getClassesByName(name, scope)
|
||||||
.map { resolutionFacade.psiClassToDescriptor(it) }
|
.map { it.resolveToDescriptor(resolutionFacade) }
|
||||||
.filterNotNull()
|
.filterNotNull()
|
||||||
.filter(descriptorFilter)
|
.filter(descriptorFilter)
|
||||||
.toSet()
|
.toSet()
|
||||||
|
}
|
||||||
|
|
||||||
public fun getKotlinClasses(nameFilter: (String) -> Boolean, kindFilter: (ClassKind) -> Boolean): Collection<ClassDescriptor> {
|
public fun getKotlinClasses(nameFilter: (String) -> Boolean, kindFilter: (ClassKind) -> Boolean): Collection<ClassDescriptor> {
|
||||||
return KotlinFullClassNameIndex.getInstance().getAllKeys(project).asSequence()
|
return KotlinFullClassNameIndex.getInstance().getAllKeys(project).asSequence()
|
||||||
|
|||||||
Reference in New Issue
Block a user