LC: rename KtLightClassForFacade to ...Impl
before introducing a common interface for light class for facade This is a mechanical refactoring.
This commit is contained in:
committed by
Ilya Kirillov
parent
c14a890e7e
commit
efba90c6f1
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.name.FqName
|
||||
|
||||
private data class FacadeCacheKey(val fqName: FqName, val searchScope: GlobalSearchScope)
|
||||
|
||||
private data class ValueWrapper(val value: KtLightClassForFacade?) {
|
||||
private data class ValueWrapper(val value: KtLightClassForFacadeImpl?) {
|
||||
companion object {
|
||||
val Null = ValueWrapper(null)
|
||||
}
|
||||
@@ -27,7 +27,7 @@ class FacadeCache(private val project: Project) {
|
||||
private inner class FacadeCacheData {
|
||||
val cache = object : SLRUCache<FacadeCacheKey, ValueWrapper>(20, 30) {
|
||||
override fun createValue(key: FacadeCacheKey): ValueWrapper =
|
||||
KtLightClassForFacade.createForFacadeNoCache(key.fqName, key.searchScope, project)
|
||||
KtLightClassForFacadeImpl.createForFacadeNoCache(key.fqName, key.searchScope, project)
|
||||
?.let { ValueWrapper(it) }
|
||||
?: ValueWrapper.Null
|
||||
}
|
||||
@@ -42,7 +42,7 @@ class FacadeCache(private val project: Project) {
|
||||
}, false
|
||||
)
|
||||
|
||||
operator fun get(qualifiedName: FqName, searchScope: GlobalSearchScope): KtLightClassForFacade? {
|
||||
operator fun get(qualifiedName: FqName, searchScope: GlobalSearchScope): KtLightClassForFacadeImpl? {
|
||||
synchronized(cachedValue) {
|
||||
return cachedValue.value.cache.get(FacadeCacheKey(qualifiedName, searchScope)).value
|
||||
}
|
||||
@@ -53,4 +53,4 @@ class FacadeCache(private val project: Project) {
|
||||
return ServiceManager.getService(project, FacadeCache::class.java)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+10
-12
@@ -17,9 +17,7 @@
|
||||
package org.jetbrains.kotlin.asJava.classes
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.Comparing
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.openapi.util.registry.Registry
|
||||
import com.intellij.psi.*
|
||||
import com.intellij.psi.impl.PsiSuperMethodImplUtil
|
||||
import com.intellij.psi.impl.java.stubs.PsiJavaFileStub
|
||||
@@ -47,7 +45,7 @@ import org.jetbrains.kotlin.psi.KtStringTemplateExpression
|
||||
import org.jetbrains.kotlin.psi.psiUtil.siblings
|
||||
import javax.swing.Icon
|
||||
|
||||
open class KtLightClassForFacade constructor(
|
||||
open class KtLightClassForFacadeImpl constructor(
|
||||
manager: PsiManager,
|
||||
protected val facadeClassFqName: FqName,
|
||||
myLightClassDataCache: CachedValue<LightClassDataHolder.ForFacade>,
|
||||
@@ -186,13 +184,13 @@ open class KtLightClassForFacade constructor(
|
||||
|
||||
override fun isValid() = files.all { it.isValid && it.hasTopLevelCallables() && facadeClassFqName == it.javaFileFacadeFqName }
|
||||
|
||||
override fun copy() = KtLightClassForFacade(manager, facadeClassFqName, lightClassDataCache, files)
|
||||
override fun copy() = KtLightClassForFacadeImpl(manager, facadeClassFqName, lightClassDataCache, files)
|
||||
|
||||
override fun getNavigationElement() = firstFileInFacade
|
||||
|
||||
override fun isEquivalentTo(another: PsiElement?): Boolean =
|
||||
equals(another) ||
|
||||
(another is KtLightClassForFacade && another.facadeClassFqName == facadeClassFqName)
|
||||
(another is KtLightClassForFacadeImpl && another.facadeClassFqName == facadeClassFqName)
|
||||
|
||||
override fun getElementIcon(flags: Int): Icon? = throw UnsupportedOperationException("This should be done by JetIconProvider")
|
||||
|
||||
@@ -226,7 +224,7 @@ open class KtLightClassForFacade constructor(
|
||||
return false
|
||||
}
|
||||
|
||||
val lightClass = other as KtLightClassForFacade
|
||||
val lightClass = other as KtLightClassForFacadeImpl
|
||||
if (this === other) return true
|
||||
|
||||
if (this.hashCode != lightClass.hashCode) return false
|
||||
@@ -237,7 +235,7 @@ open class KtLightClassForFacade constructor(
|
||||
return true
|
||||
}
|
||||
|
||||
override fun toString() = "${KtLightClassForFacade::class.java.simpleName}:$facadeClassFqName"
|
||||
override fun toString() = "${KtLightClassForFacadeImpl::class.java.simpleName}:$facadeClassFqName"
|
||||
|
||||
override val originKind: LightClassOriginKind
|
||||
get() = LightClassOriginKind.SOURCE
|
||||
@@ -256,7 +254,7 @@ open class KtLightClassForFacade constructor(
|
||||
|
||||
companion object {
|
||||
|
||||
fun createForFacadeNoCache(fqName: FqName, searchScope: GlobalSearchScope, project: Project): KtLightClassForFacade? {
|
||||
fun createForFacadeNoCache(fqName: FqName, searchScope: GlobalSearchScope, project: Project): KtLightClassForFacadeImpl? {
|
||||
|
||||
val sources = KotlinAsJavaSupport.getInstance(project).findFilesForFacade(fqName, searchScope)
|
||||
.filterNot { it.isCompiled }
|
||||
@@ -272,7 +270,7 @@ open class KtLightClassForFacade constructor(
|
||||
return LightClassGenerationSupport.getInstance(project).run {
|
||||
if (useUltraLightClasses) createUltraLightClassForFacade(manager, fqName, stubValue, sources)
|
||||
?: error { "Unable to create UL class for facade" }
|
||||
else KtLightClassForFacade(manager, fqName, stubValue, sources)
|
||||
else KtLightClassForFacadeImpl(manager, fqName, stubValue, sources)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -280,7 +278,7 @@ open class KtLightClassForFacade constructor(
|
||||
manager: PsiManager,
|
||||
facadeClassFqName: FqName,
|
||||
searchScope: GlobalSearchScope
|
||||
): KtLightClassForFacade? {
|
||||
): KtLightClassForFacadeImpl? {
|
||||
return FacadeCache.getInstance(manager.project)[facadeClassFqName, searchScope]
|
||||
}
|
||||
|
||||
@@ -288,12 +286,12 @@ open class KtLightClassForFacade constructor(
|
||||
manager: PsiManager,
|
||||
facadeClassFqName: FqName,
|
||||
file: KtFile
|
||||
): KtLightClassForFacade {
|
||||
): KtLightClassForFacadeImpl {
|
||||
// TODO: refactor, using cached value doesn't make sense for this case
|
||||
val cachedValue = CachedValuesManager.getManager(manager.project).createCachedValue(
|
||||
LightClassDataProviderForFileFacade.ByFile(manager.project, facadeClassFqName, file), false
|
||||
)
|
||||
return KtLightClassForFacade(manager, facadeClassFqName, cachedValue, listOf(file))
|
||||
return KtLightClassForFacadeImpl(manager, facadeClassFqName, cachedValue, listOf(file))
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -41,8 +41,8 @@ open class KtLightClassForLocalDeclaration(
|
||||
|
||||
var createWrapper = forceMethodWrapping
|
||||
// Use PsiClass wrapper instead of package light class to avoid names like "FooPackage" in Type Hierarchy and related views
|
||||
if (containingClass is KtLightClassForFacade) {
|
||||
containingClass = object : LightClass(containingClass as KtLightClassForFacade, KotlinLanguage.INSTANCE) {
|
||||
if (containingClass is KtLightClassForFacadeImpl) {
|
||||
containingClass = object : LightClass(containingClass as KtLightClassForFacadeImpl, KotlinLanguage.INSTANCE) {
|
||||
override fun getName(): String? = currentFileName
|
||||
}
|
||||
createWrapper = true
|
||||
@@ -100,4 +100,4 @@ open class KtLightClassForLocalDeclaration(
|
||||
return if (declaration is KtClass) declaration.toLightClass() else null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -29,7 +29,7 @@ class KtUltraLightClassForFacade(
|
||||
lightClassDataCache: CachedValue<LightClassDataHolder.ForFacade>,
|
||||
files: Collection<KtFile>,
|
||||
private val filesWithSupports: Collection<Pair<KtFile, KtUltraLightSupport>>
|
||||
) : KtLightClassForFacade(manager, facadeClassFqName, lightClassDataCache, files) {
|
||||
) : KtLightClassForFacadeImpl(manager, facadeClassFqName, lightClassDataCache, files) {
|
||||
|
||||
override fun getDelegate(): PsiClass = invalidAccess()
|
||||
|
||||
@@ -147,6 +147,6 @@ class KtUltraLightClassForFacade(
|
||||
|
||||
override fun getOwnMethods() = _ownMethods
|
||||
|
||||
override fun copy(): KtLightClassForFacade =
|
||||
override fun copy(): KtLightClassForFacadeImpl =
|
||||
KtUltraLightClassForFacade(manager, facadeClassFqName, lightClassDataCache, files, filesWithSupports)
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -35,7 +35,7 @@ import com.intellij.psi.util.PsiUtil
|
||||
import com.intellij.reference.SoftReference
|
||||
import com.intellij.util.AstLoadingFilter
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacadeImpl
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -127,7 +127,7 @@ open class FakeFileForLightClass(
|
||||
override fun isEquivalentTo(another: PsiElement?) = this == another
|
||||
|
||||
override fun setPackageName(packageName: String) {
|
||||
if (lightClass() is KtLightClassForFacade) {
|
||||
if (lightClass() is KtLightClassForFacadeImpl) {
|
||||
ktFile.packageDirective?.fqName = FqName(packageName)
|
||||
} else {
|
||||
super.setPackageName(packageName)
|
||||
|
||||
@@ -56,7 +56,7 @@ fun KtClassOrObject.toFakeLightClass(): KtFakeLightClass = KotlinAsJavaSupport.g
|
||||
fun KtFile.findFacadeClass(): KtLightClass? {
|
||||
return KotlinAsJavaSupport.getInstance(project)
|
||||
.getFacadeClassesInPackage(packageFqName, this.useScope as? GlobalSearchScope ?: GlobalSearchScope.projectScope(project))
|
||||
.firstOrNull { it is KtLightClassForFacade && this in it.files } as? KtLightClass
|
||||
.firstOrNull { it is KtLightClassForFacadeImpl && this in it.files } as? KtLightClass
|
||||
}
|
||||
|
||||
fun KtScript.toLightClass(): KtLightClass? = KotlinAsJavaSupport.getInstance(project).getLightClassForScript(this)
|
||||
@@ -291,4 +291,4 @@ fun computeExpression(expression: PsiElement): Any? {
|
||||
|
||||
if (constant.isError) return null
|
||||
return evalConstantValue(constant.toConstantValue(TypeUtils.NO_EXPECTED_TYPE))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user