remove some leftovers of old package facades in IDE code
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user