diff --git a/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/java/AbstractFirTypeEnhancementTest.kt b/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/java/AbstractFirTypeEnhancementTest.kt index edce5ce636d..a2774852786 100644 --- a/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/java/AbstractFirTypeEnhancementTest.kt +++ b/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/java/AbstractFirTypeEnhancementTest.kt @@ -146,16 +146,14 @@ abstract class AbstractFirTypeEnhancementTest : KtUsefulTestCase() { val symbolProvider = session.firSymbolProvider as FirCompositeSymbolProvider val javaProvider = symbolProvider.providers.filterIsInstance().first() + val topLevelJavaClasses = topPsiClasses.map { it.classId(FqName.ROOT) } + fun processClassWithChildren(psiClass: PsiClass, parentFqName: FqName) { - val psiFile = psiClass.containingFile - val packageStatement = psiFile.children.filterIsInstance().firstOrNull() - val packageName = packageStatement?.packageName - val fqName = parentFqName.child(Name.identifier(psiClass.name!!)) - val classId = ClassId(packageName?.let { FqName(it) } ?: FqName.ROOT, fqName, false) + val classId = psiClass.classId(parentFqName) javaProvider.getClassLikeSymbolByFqName(classId) ?: throw AssertionError(classId.asString()) psiClass.innerClasses.forEach { - processClassWithChildren(psiClass = it, parentFqName = fqName) + processClassWithChildren(psiClass = it, parentFqName = classId.relativeClassName) } } for (psiClass in topPsiClasses) { @@ -163,7 +161,8 @@ abstract class AbstractFirTypeEnhancementTest : KtUsefulTestCase() { } val processedJavaClasses = mutableSetOf() - for (javaClass in javaProvider.getJavaTopLevelClasses().sortedBy { it.name }) { + for (javaClassId in topLevelJavaClasses.sortedBy { it.shortClassName }) { + val javaClass = javaProvider.getClassLikeSymbolByFqName(javaClassId)?.fir ?: continue if (javaClass !is FirJavaClass || javaClass in processedJavaClasses) continue renderJavaClass(renderer, javaClass, session) processedJavaClasses += javaClass @@ -174,6 +173,14 @@ abstract class AbstractFirTypeEnhancementTest : KtUsefulTestCase() { KotlinTestUtils.assertEqualsToFile(expectedFile, javaFirDump) } + private fun PsiClass.classId(parentFqName: FqName): ClassId { + val psiFile = this.containingFile + val packageStatement = psiFile.children.filterIsInstance().firstOrNull() + val packageName = packageStatement?.packageName + val fqName = parentFqName.child(Name.identifier(this.name!!)) + return ClassId(packageName?.let { FqName(it) } ?: FqName.ROOT, fqName, false) + } + companion object { private const val FOREIGN_ANNOTATIONS_SOURCES_PATH = "third-party/annotations" } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt index 31db41adb7e..efa8fb3b6c7 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt @@ -413,14 +413,6 @@ class JavaSymbolProvider( } } - @TestOnly - fun getJavaTopLevelClasses(): List { - return classCache.values - .filterIsInstance() - .filter { it.classId.relativeClassName.parent().isRoot } - .map { it.fir } - } - private val knownClassNamesInPackage = mutableMapOf?>() private fun hasTopLevelClassOf(classId: ClassId): Boolean { diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirMultiModuleResolveTest.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirMultiModuleResolveTest.kt index 205db893a52..d63fde59d7b 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirMultiModuleResolveTest.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirMultiModuleResolveTest.kt @@ -19,11 +19,8 @@ import org.jetbrains.kotlin.fir.extensions.BunchOfRegisteredExtensions import org.jetbrains.kotlin.fir.extensions.extensionService import org.jetbrains.kotlin.fir.extensions.registerExtensions import org.jetbrains.kotlin.fir.java.* -import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass import org.jetbrains.kotlin.fir.psi import org.jetbrains.kotlin.fir.resolve.firProvider -import org.jetbrains.kotlin.fir.resolve.firSymbolProvider -import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCompositeSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.impl.FirProviderImpl import org.jetbrains.kotlin.fir.resolve.transformers.FirTransformerBasedResolveProcessor import org.jetbrains.kotlin.fir.resolve.transformers.createAllTransformerBasedResolveProcessors @@ -140,22 +137,27 @@ abstract class AbstractFirMultiModuleResolveTest : AbstractMultiModuleTest() { KotlinTestUtils.assertEqualsToFile(File(expectedPath), firFileDump) } - val processedJavaClasses = mutableSetOf() - val javaFirDump = StringBuilder().also { builder -> - val renderer = FirRenderer(builder) - for (session in sessions) { - val symbolProvider = session.firSymbolProvider as FirCompositeSymbolProvider - val javaProvider = symbolProvider.providers.filterIsInstance().first() - for (javaClass in javaProvider.getJavaTopLevelClasses().sortedBy { it.name }) { - if (javaClass !is FirJavaClass || javaClass in processedJavaClasses) continue - renderJavaClass(renderer, javaClass, session) - processedJavaClasses += javaClass - } - } - }.toString() - if (javaFirDump.isNotEmpty()) { - KotlinTestUtils.assertEqualsToFile(File("$dirPath/extraDump.java.txt"), javaFirDump) - } + /* + * This code is commented due to deleted JavaSymbolProvider.getJavaTopLevelClasses() method + * There is no replace for this code because of there are no tests for this test runner, so + * it is questionable, do we need java class check (or that test runner at all) + */ +// val processedJavaClasses = mutableSetOf() +// val javaFirDump = StringBuilder().also { builder -> +// val renderer = FirRenderer(builder) +// for (session in sessions) { +// val symbolProvider = session.firSymbolProvider as FirCompositeSymbolProvider +// val javaProvider = symbolProvider.providers.filterIsInstance().first() +// for (javaClass in javaProvider.getJavaTopLevelClasses().sortedBy { it.name }) { +// if (javaClass !is FirJavaClass || javaClass in processedJavaClasses) continue +// renderJavaClass(renderer, javaClass, session) +// processedJavaClasses += javaClass +// } +// } +// }.toString() +// if (javaFirDump.isNotEmpty()) { +// KotlinTestUtils.assertEqualsToFile(File("$dirPath/extraDump.java.txt"), javaFirDump) +// } } }