[lc] introduce KotlinAsJavaSupportBase with new common facade logic
^KT-53543
This commit is contained in:
+3
-9
@@ -10,14 +10,12 @@ import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.analysis.api.analyze
|
||||
import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider
|
||||
import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest
|
||||
import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider
|
||||
import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction
|
||||
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightElement
|
||||
import org.jetbrains.kotlin.light.classes.symbol.caches.SymbolLightClassFacadeCache
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -60,18 +58,14 @@ abstract class AbstractAnalysisApiPsiTypeProviderTest : AbstractAnalysisApiSingl
|
||||
private fun getFacadeLightClass(
|
||||
ktFile: KtFile,
|
||||
project: Project,
|
||||
): KtLightClass? {
|
||||
val mainKtFileFqName = ktFile.packageFqName.child(Name.identifier(ktFile.name))
|
||||
return project.getService(SymbolLightClassFacadeCache::class.java)
|
||||
.getOrCreateSymbolLightFacade(listOf(ktFile), mainKtFileFqName)
|
||||
}
|
||||
): KtLightClass? = project.getService(KotlinAsJavaSupport::class.java).getLightFacade(ktFile)
|
||||
|
||||
private fun createLightClassByContainingClass(
|
||||
declaration: KtDeclaration,
|
||||
project: Project
|
||||
): KtLightClass? {
|
||||
val containingClass = declaration.parents.firstIsInstanceOrNull<KtClassOrObject>() ?: return null
|
||||
return project.getService(KotlinAsJavaSupport::class.java).getLightClass(containingClass)
|
||||
return KotlinAsJavaSupport.getInstance(project).getLightClass(containingClass)
|
||||
}
|
||||
|
||||
private fun KtLightClass.findLightDeclarationContext(ktDeclaration: KtDeclaration): KtLightElement<*, *>? {
|
||||
|
||||
Reference in New Issue
Block a user