remove some leftovers of old package facades in IDE code

This commit is contained in:
Dmitry Jemerov
2015-11-11 14:38:21 +01:00
parent 5b59fc74bc
commit 45ef9b02c4
4 changed files with 7 additions and 52 deletions
@@ -33,7 +33,6 @@ import com.intellij.util.SmartList
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
@@ -141,7 +140,7 @@ public object LightClassUtil {
} }
public fun getLightFieldForCompanionObject(companionObject: KtClassOrObject): PsiField? { public fun getLightFieldForCompanionObject(companionObject: KtClassOrObject): PsiField? {
val outerPsiClass = getWrappingClass(companionObject, true) val outerPsiClass = getWrappingClass(companionObject)
if (outerPsiClass != null) { if (outerPsiClass != null) {
for (fieldOfParent in outerPsiClass.fields) { for (fieldOfParent in outerPsiClass.fields) {
if ((fieldOfParent is KtLightElement<*, *>) && fieldOfParent.getOrigin() === companionObject) { if ((fieldOfParent is KtLightElement<*, *>) && fieldOfParent.getOrigin() === companionObject) {
@@ -163,7 +162,7 @@ public object LightClassUtil {
} }
private fun getLightClassBackingField(declaration: KtDeclaration): PsiField? { private fun getLightClassBackingField(declaration: KtDeclaration): PsiField? {
var psiClass: PsiClass = getWrappingClass(declaration, true) ?: return null var psiClass: PsiClass = getWrappingClass(declaration) ?: return null
if (psiClass is KtLightClass) { if (psiClass is KtLightClass) {
val origin = psiClass.getOrigin() val origin = psiClass.getOrigin()
@@ -203,10 +202,10 @@ public object LightClassUtil {
} }
private fun getPsiMethodWrappers(declaration: KtDeclaration, collectAll: Boolean): List<PsiMethod> { private fun getPsiMethodWrappers(declaration: KtDeclaration, collectAll: Boolean): List<PsiMethod> {
val psiClasses = getWrappingClasses(declaration, collectAll) val psiClass = getWrappingClass(declaration) ?: return emptyList()
val methods = SmartList<PsiMethod>() val methods = SmartList<PsiMethod>()
for (method in psiClasses.flatMap { it.methods.asList() }) { for (method in psiClass.methods.asList()) {
try { try {
if (method is KtLightMethod && method.getOrigin() === declaration) { if (method is KtLightMethod && method.getOrigin() === declaration) {
methods.add(method) methods.add(method)
@@ -227,17 +226,7 @@ public object LightClassUtil {
return methods return methods
} }
private fun getWrappingClasses(declaration: KtDeclaration, collectAll: Boolean): Collection<PsiClass> { private fun getWrappingClass(declaration: KtDeclaration): PsiClass? {
val wrappingClass = getWrappingClass(declaration, true)
val oldPackagePartWrappingClass = if (declaration.parent is KtFile && collectAll)
getWrappingClass(declaration, false)
else
null
return setOf(wrappingClass, oldPackagePartWrappingClass).filterNotNull()
}
private fun getWrappingClass(declaration: KtDeclaration, useNewPackageParts: Boolean): PsiClass? {
var declaration = declaration var declaration = declaration
if (declaration is KtParameter) { if (declaration is KtParameter) {
val constructorClass = KtPsiUtil.getClassIfParameterIsProperty(declaration) val constructorClass = KtPsiUtil.getClassIfParameterIsProperty(declaration)
@@ -267,11 +256,7 @@ public object LightClassUtil {
if (parent is KtFile) { if (parent is KtFile) {
// top-level declaration // top-level declaration
val fqName = if (useNewPackageParts) val fqName = parent.javaFileFacadeFqName
parent.javaFileFacadeFqName
else
PackageClassUtils.getPackageClassFqName(parent.packageFqName)
val project = declaration.project val project = declaration.project
return JavaElementFinder.getInstance(project).findClass(fqName.asString(), GlobalSearchScope.allScope(project)) return JavaElementFinder.getInstance(project).findClass(fqName.asString(), GlobalSearchScope.allScope(project))
} }
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.asJava.defaultImplsChild
import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
import org.jetbrains.kotlin.idea.stubindex.KotlinClassShortNameIndex import org.jetbrains.kotlin.idea.stubindex.KotlinClassShortNameIndex
import org.jetbrains.kotlin.idea.stubindex.KotlinFileFacadeShortNameIndex import org.jetbrains.kotlin.idea.stubindex.KotlinFileFacadeShortNameIndex
import org.jetbrains.kotlin.idea.stubindex.PackageIndexUtil
import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import java.util.* import java.util.*
@@ -43,8 +42,6 @@ public class KotlinShortNamesCache(private val project: Project) : PsiShortNames
val classNames = KotlinClassShortNameIndex.getInstance().getAllKeys(project) val classNames = KotlinClassShortNameIndex.getInstance().getAllKeys(project)
// package classes can not be indexed, since they have no explicit declarations // package classes can not be indexed, since they have no explicit declarations
val packageClassShortNames = PackageIndexUtil.getAllPossiblePackageClasses(project).keySet()
classNames.addAll(packageClassShortNames)
classNames.addAll(KotlinFileFacadeShortNameIndex.INSTANCE.getAllKeys(project)) classNames.addAll(KotlinFileFacadeShortNameIndex.INSTANCE.getAllKeys(project))
return classNames.toTypedArray() return classNames.toTypedArray()
@@ -56,9 +53,6 @@ public class KotlinShortNamesCache(private val project: Project) : PsiShortNames
override fun getClassesByName(name: String, scope: GlobalSearchScope): Array<PsiClass> { override fun getClassesByName(name: String, scope: GlobalSearchScope): Array<PsiClass> {
val allFqNames = HashSet<FqName?>() val allFqNames = HashSet<FqName?>()
val packageClassNames = PackageIndexUtil.getAllPossiblePackageClasses(project).get(name)
allFqNames.addAll(packageClassNames)
KotlinClassShortNameIndex.getInstance().get(name, project, scope) KotlinClassShortNameIndex.getInstance().get(name, project, scope)
.mapTo(allFqNames) { it.fqName } .mapTo(allFqNames) { it.fqName }
@@ -19,14 +19,9 @@ package org.jetbrains.kotlin.idea.stubindex
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.stubs.StubIndex import com.intellij.psi.stubs.StubIndex
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import com.intellij.util.containers.MultiMap
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
import com.intellij.psi.util.CachedValuesManager
import com.intellij.psi.util.CachedValueProvider.Result
import com.intellij.psi.util.PsiModificationTracker
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtFile
public object PackageIndexUtil { public object PackageIndexUtil {
@JvmStatic @JvmStatic
@@ -73,22 +68,4 @@ public object PackageIndexUtil {
} }
return result return result
} }
@JvmStatic
public fun getAllPossiblePackageClasses(project: Project): MultiMap<String, FqName> {
return CachedValuesManager.getManager(project).getCachedValue(project) {
Result(computeAllPossiblePackageClasses(project), PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT)
}!!
}
private fun computeAllPossiblePackageClasses(project: Project): MultiMap<String, FqName> {
val packageFqNames = KotlinExactPackagesIndex.getInstance().getAllKeys(project)
val result = MultiMap<String, FqName>()
for (packageFqName in packageFqNames) {
val packageClassFqName = PackageClassUtils.getPackageClassFqName(FqName(packageFqName))
result.putValue(packageClassFqName.shortName().asString(), packageClassFqName)
}
return result
}
} }
@@ -32,7 +32,6 @@ import com.intellij.testFramework.PlatformTestCase
import com.intellij.testFramework.PsiTestUtil import com.intellij.testFramework.PsiTestUtil
import junit.framework.TestCase import junit.framework.TestCase
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils.getPackageClassFqName
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.test.MockLibraryUtil import org.jetbrains.kotlin.test.MockLibraryUtil