[lc] drop redundant PsiManager argument from KtLightClassForFacadeBase

^KT-53543
This commit is contained in:
Dmitry Gridin
2022-08-10 15:04:39 +02:00
committed by Space
parent 690322b203
commit acfbe30f7c
4 changed files with 7 additions and 21 deletions
@@ -27,10 +27,9 @@ import org.jetbrains.kotlin.psi.psiUtil.siblings
import javax.swing.Icon import javax.swing.Icon
abstract class KtLightClassForFacadeBase constructor( abstract class KtLightClassForFacadeBase constructor(
manager: PsiManager,
override val facadeClassFqName: FqName, override val facadeClassFqName: FqName,
override val files: Collection<KtFile> override val files: Collection<KtFile>
) : KtLightClassBase(manager), KtLightClassForFacade { ) : KtLightClassBase(files.first().manager), KtLightClassForFacade {
private val firstFileInFacade by lazyPub { files.iterator().next() } private val firstFileInFacade by lazyPub { files.iterator().next() }
private val modifierList: PsiModifierList = private val modifierList: PsiModifierList =
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.asJava
import com.intellij.openapi.components.ServiceManager import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.PsiManager
import org.jetbrains.kotlin.asJava.classes.* import org.jetbrains.kotlin.asJava.classes.*
import org.jetbrains.kotlin.config.AnalysisFlags import org.jetbrains.kotlin.config.AnalysisFlags
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
@@ -36,11 +35,7 @@ abstract class LightClassGenerationSupport {
internal fun canCreateUltraLightClassForFacade(files: Collection<KtFile>): Boolean = files.none { it.isScript() } internal fun canCreateUltraLightClassForFacade(files: Collection<KtFile>): Boolean = files.none { it.isScript() }
fun createUltraLightClassForFacade( fun createUltraLightClassForFacade(facadeClassFqName: FqName, files: Collection<KtFile>): KtUltraLightClassForFacade? {
manager: PsiManager,
facadeClassFqName: FqName,
files: Collection<KtFile>,
): KtUltraLightClassForFacade? {
if (!canCreateUltraLightClassForFacade(files)) return null if (!canCreateUltraLightClassForFacade(files)) return null
val filesToSupports: List<Pair<KtFile, KtUltraLightSupport>> = files.map { val filesToSupports: List<Pair<KtFile, KtUltraLightSupport>> = files.map {
@@ -48,7 +43,6 @@ abstract class LightClassGenerationSupport {
} }
return KtUltraLightClassForFacade( return KtUltraLightClassForFacade(
manager,
facadeClassFqName, facadeClassFqName,
files, files,
filesToSupports filesToSupports
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.asJava.classes package org.jetbrains.kotlin.asJava.classes
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.PsiManager
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.util.CachedValueProvider import com.intellij.psi.util.CachedValueProvider
import com.intellij.psi.util.CachedValuesManager import com.intellij.psi.util.CachedValuesManager
@@ -35,10 +34,8 @@ class KotlinK1LightClassFactory : KotlinLightClassFactory {
): KtLightClassForFacade? = FacadeCache.getInstance(project)[facadeClassFqName, searchScope] ): KtLightClassForFacade? = FacadeCache.getInstance(project)[facadeClassFqName, searchScope]
override fun createFacadeForSyntheticFile(facadeClassFqName: FqName, file: KtFile): KtLightClassForFacade { override fun createFacadeForSyntheticFile(facadeClassFqName: FqName, file: KtFile): KtLightClassForFacade {
val project = file.project return LightClassGenerationSupport.getInstance(file.project).run {
val manager = PsiManager.getInstance(project) createUltraLightClassForFacade(facadeClassFqName, listOf(file)) ?: error { "Unable to create UL class for facade" }
return LightClassGenerationSupport.getInstance(project).run {
createUltraLightClassForFacade(manager, facadeClassFqName, listOf(file)) ?: error { "Unable to create UL class for facade" }
} }
} }
@@ -84,10 +81,9 @@ class KotlinK1LightClassFactory : KotlinLightClassFactory {
.filterNot { it.isCompiled || it.isScript() } .filterNot { it.isCompiled || it.isScript() }
if (sources.isEmpty()) return null if (sources.isEmpty()) return null
val manager = PsiManager.getInstance(project)
return LightClassGenerationSupport.getInstance(project).run { return LightClassGenerationSupport.getInstance(project).run {
if (!canCreateUltraLightClassForFacade(sources)) return null if (!canCreateUltraLightClassForFacade(sources)) return null
createUltraLightClassForFacade(manager, fqName, sources) createUltraLightClassForFacade(fqName, sources)
?: error("Unable to create UL class for facade: $fqName for ${sources.joinToString { it.virtualFilePath }}") ?: error("Unable to create UL class for facade: $fqName for ${sources.joinToString { it.virtualFilePath }}")
} }
} }
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.asJava.classes package org.jetbrains.kotlin.asJava.classes
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.PsiManager
import com.intellij.psi.PsiModifier import com.intellij.psi.PsiModifier
import com.intellij.psi.PsiModifierList import com.intellij.psi.PsiModifierList
import com.intellij.psi.impl.light.LightModifierList import com.intellij.psi.impl.light.LightModifierList
@@ -23,11 +22,10 @@ import org.jetbrains.kotlin.psi.KtProperty
import org.jetbrains.kotlin.psi.psiUtil.isPrivate import org.jetbrains.kotlin.psi.psiUtil.isPrivate
class KtUltraLightClassForFacade( class KtUltraLightClassForFacade(
manager: PsiManager,
facadeClassFqName: FqName, facadeClassFqName: FqName,
files: Collection<KtFile>, files: Collection<KtFile>,
private val filesWithSupports: Collection<Pair<KtFile, KtUltraLightSupport>> private val filesWithSupports: Collection<Pair<KtFile, KtUltraLightSupport>>
) : KtLightClassForFacadeBase(manager, facadeClassFqName, files) { ) : KtLightClassForFacadeBase(facadeClassFqName, files) {
private val _modifierList: PsiModifierList by lazyPub { private val _modifierList: PsiModifierList by lazyPub {
if (isMultiFileClass) if (isMultiFileClass)
LightModifierList(manager, KotlinLanguage.INSTANCE, PsiModifier.PUBLIC, PsiModifier.FINAL) LightModifierList(manager, KotlinLanguage.INSTANCE, PsiModifier.PUBLIC, PsiModifier.FINAL)
@@ -135,6 +133,5 @@ class KtUltraLightClassForFacade(
override fun getOwnMethods() = _ownMethods override fun getOwnMethods() = _ownMethods
override fun copy(): KtLightClassForFacade = override fun copy(): KtLightClassForFacade = KtUltraLightClassForFacade(facadeClassFqName, files, filesWithSupports)
KtUltraLightClassForFacade(manager, facadeClassFqName, files, filesWithSupports)
} }