[SLC] AbstractSymbolLightClassesLoadingTest: generate light class for all compiled classes
This commit is contained in:
+2
-4
@@ -23,7 +23,7 @@ abstract class AbstractSymbolLightClassesFacadeTest(
|
||||
override val currentExtension: String,
|
||||
override val stopIfCompilationErrorDirectivePresent: Boolean,
|
||||
) : AbstractSymbolLightClassesTestBase(configurator) {
|
||||
override fun getRenderResult(ktFile: KtFile, testDataFile: Path, module: TestModule, project: Project): String {
|
||||
override fun getRenderResult(ktFile: KtFile, ktFiles: List<KtFile>, testDataFile: Path, module: TestModule, project: Project): String {
|
||||
val lightClasses = getFacades(project)
|
||||
if (lightClasses.isEmpty()) return LightClassTestCommon.NOT_GENERATED_DIRECTIVE
|
||||
return withExtendedTypeRenderer((testDataFile)) {
|
||||
@@ -37,8 +37,6 @@ abstract class AbstractSymbolLightClassesFacadeTest(
|
||||
val kotlinAsJavaSupport = KotlinAsJavaSupport.getInstance(project)
|
||||
val scope = GlobalSearchScope.allScope(project)
|
||||
val facades = kotlinAsJavaSupport.getFacadeNames(FqName.ROOT, scope).sorted()
|
||||
return facades
|
||||
.flatMap { facadeName -> kotlinAsJavaSupport.getFacadeClasses(FqName(facadeName), scope) }
|
||||
.filterIsInstance<KtLightClass>()
|
||||
return facades.flatMap { facadeName -> kotlinAsJavaSupport.getFacadeClasses(FqName(facadeName), scope) }
|
||||
}
|
||||
}
|
||||
+2
-4
@@ -10,10 +10,8 @@ import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.SyntaxTraverser
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator
|
||||
import org.jetbrains.kotlin.asJava.*
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||
import org.jetbrains.kotlin.light.classes.symbol.base.service.withExtendedTypeRenderer
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import java.nio.file.Path
|
||||
@@ -24,8 +22,8 @@ abstract class AbstractSymbolLightClassesLoadingTest(
|
||||
override val stopIfCompilationErrorDirectivePresent: Boolean,
|
||||
) : AbstractSymbolLightClassesTestBase(configurator) {
|
||||
|
||||
override fun getRenderResult(ktFile: KtFile, testDataFile: Path, module: TestModule, project: Project): String {
|
||||
val lightClasses = getLightClassesFromFile(ktFile, project)
|
||||
override fun getRenderResult(ktFile: KtFile, ktFiles: List<KtFile>, testDataFile: Path, module: TestModule, project: Project): String {
|
||||
val lightClasses = ktFiles.flatMap { getLightClassesFromFile(it, project) }
|
||||
if (lightClasses.isEmpty()) return LightClassTestCommon.NOT_GENERATED_DIRECTIVE
|
||||
return withExtendedTypeRenderer(testDataFile) {
|
||||
lightClasses.joinToString("\n\n") { it.renderClass() }
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ abstract class AbstractSymbolLightClassesParentingTest(
|
||||
lightClass?.accept(createLightAnnotationVisitor(testServices.assertions))
|
||||
}
|
||||
|
||||
override fun getRenderResult(ktFile: KtFile, testDataFile: Path, module: TestModule, project: Project): String {
|
||||
override fun getRenderResult(ktFile: KtFile, ktFiles: List<KtFile>, testDataFile: Path, module: TestModule, project: Project): String {
|
||||
throw IllegalStateException("This test is not rendering light elements")
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -180,7 +180,7 @@ abstract class AbstractSymbolLightClassesStructureTest(
|
||||
appendLine()
|
||||
}
|
||||
|
||||
override fun getRenderResult(ktFile: KtFile, testDataFile: Path, module: TestModule, project: Project): String {
|
||||
override fun getRenderResult(ktFile: KtFile, ktFiles: List<KtFile>, testDataFile: Path, module: TestModule, project: Project): String {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ abstract class AbstractSymbolLightClassesTest(
|
||||
override val currentExtension: String,
|
||||
override val stopIfCompilationErrorDirectivePresent: Boolean,
|
||||
) : AbstractSymbolLightClassesTestBase(configurator) {
|
||||
override fun getRenderResult(ktFile: KtFile, testDataFile: Path, module: TestModule, project: Project): String {
|
||||
override fun getRenderResult(ktFile: KtFile, ktFiles: List<KtFile>, testDataFile: Path, module: TestModule, project: Project): String {
|
||||
return LightClassTestCommon.getActualLightClassText(
|
||||
testDataFile.toFile(),
|
||||
{ fqName -> findLightClass(fqName, project) },
|
||||
|
||||
+2
-1
@@ -65,7 +65,7 @@ abstract class AbstractSymbolLightClassesTestBase(
|
||||
val project = ktFile.project
|
||||
|
||||
ignoreExceptionIfIgnoreFirPresent(module) {
|
||||
val actual = getRenderResult(ktFile, testDataPath, module, project).cleanup()
|
||||
val actual = getRenderResult(ktFile, ktFiles, testDataPath, module, project).cleanup()
|
||||
compareResults(testServices, actual)
|
||||
removeIgnoreFir(module)
|
||||
removeDuplicatedFirJava(testServices)
|
||||
@@ -82,6 +82,7 @@ abstract class AbstractSymbolLightClassesTestBase(
|
||||
|
||||
protected abstract fun getRenderResult(
|
||||
ktFile: KtFile,
|
||||
ktFiles: List<KtFile>,
|
||||
testDataFile: Path,
|
||||
module: TestModule,
|
||||
project: Project
|
||||
|
||||
Reference in New Issue
Block a user