[FIR] Get rid of JavaSymbolProvider.getJavaTopLevelClasses

This commit is contained in:
Dmitriy Novozhilov
2020-08-13 14:25:45 +03:00
parent d7cfb2fb13
commit 4b6193159c
3 changed files with 35 additions and 34 deletions
@@ -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<FirJavaClass>()
val javaFirDump = StringBuilder().also { builder ->
val renderer = FirRenderer(builder)
for (session in sessions) {
val symbolProvider = session.firSymbolProvider as FirCompositeSymbolProvider
val javaProvider = symbolProvider.providers.filterIsInstance<JavaSymbolProvider>().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<FirJavaClass>()
// val javaFirDump = StringBuilder().also { builder ->
// val renderer = FirRenderer(builder)
// for (session in sessions) {
// val symbolProvider = session.firSymbolProvider as FirCompositeSymbolProvider
// val javaProvider = symbolProvider.providers.filterIsInstance<JavaSymbolProvider>().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)
// }
}
}