[analysis] introduce KtBuiltinsModule and remove hacks related to the stdlib module search
This commit is contained in:
-3
@@ -10,14 +10,11 @@ import com.intellij.psi.PsiFileSystemItem
|
||||
import com.intellij.psi.PsiJavaFile
|
||||
import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.StandaloneProjectFactory.findJvmRootsForJavaFiles
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtBinaryModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtLibraryModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
|
||||
data class KtModuleProjectStructure(
|
||||
val mainModules: List<KtModuleWithFiles>,
|
||||
val binaryModules: Iterable<KtBinaryModule>,
|
||||
val stdlibFor: (TargetPlatform) -> KtLibraryModule,
|
||||
) {
|
||||
fun allKtModules(): List<KtModule> = buildList {
|
||||
mainModules.mapTo(this) { it.ktModule }
|
||||
|
||||
-4
@@ -23,8 +23,4 @@ class KtStaticModuleProvider(
|
||||
override fun getKtBinaryModules(): Collection<KtBinaryModule> {
|
||||
return projectStructure.allKtModules().filterIsInstance<KtBinaryModule>()
|
||||
}
|
||||
|
||||
override fun getStdlibWithBuiltinsModule(platform: TargetPlatform): KtLibraryModule {
|
||||
return projectStructure.stdlibFor(platform)
|
||||
}
|
||||
}
|
||||
-2
@@ -16,7 +16,6 @@ import kotlin.contracts.contract
|
||||
public class KtLibraryModuleBuilder : KtBinaryModuleBuilder() {
|
||||
public lateinit var libraryName: String
|
||||
public var librarySources: KtLibrarySourceModule? = null
|
||||
public var isBuiltinsContainingStdlib: Boolean = false
|
||||
|
||||
override fun build(): KtLibraryModule {
|
||||
return KtLibraryModuleImpl(
|
||||
@@ -29,7 +28,6 @@ public class KtLibraryModuleBuilder : KtBinaryModuleBuilder() {
|
||||
binaryRoots,
|
||||
libraryName,
|
||||
librarySources,
|
||||
isBuiltinsContainingStdlib,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
-1
@@ -24,7 +24,6 @@ internal class KtLibraryModuleImpl(
|
||||
private val binaryRoots: Collection<Path>,
|
||||
override val libraryName: String,
|
||||
override val librarySources: KtLibrarySourceModule?,
|
||||
internal val isBuiltinsContainingStdlib: Boolean,
|
||||
) : KtLibraryModule, KtModuleWithPlatform {
|
||||
override val analyzerServices: PlatformDependentAnalyzerServices = super.analyzerServices
|
||||
|
||||
|
||||
-6
@@ -38,12 +38,6 @@ internal class KtModuleProviderImpl(
|
||||
return binaryModules
|
||||
}
|
||||
|
||||
override fun getStdlibWithBuiltinsModule(platform: TargetPlatform): KtLibraryModule? {
|
||||
return binaryModules
|
||||
.filterIsInstance<KtLibraryModuleImpl>()
|
||||
.firstOrNull { it.isBuiltinsContainingStdlib && it.platform == platform }
|
||||
}
|
||||
|
||||
internal fun allSourceFiles(): List<PsiFileSystemItem> = buildList {
|
||||
val files = mainModules.mapNotNull { (it as? KtSourceModuleImpl)?.sourceRoots }.flatten()
|
||||
addAll(files)
|
||||
|
||||
-3
@@ -130,9 +130,6 @@ internal fun buildKtModuleProviderByCompilerConfiguration(
|
||||
this.project = project
|
||||
binaryRoots = listOf(root)
|
||||
libraryName = getNameWithoutExtension(root.toString())
|
||||
isBuiltinsContainingStdlib =
|
||||
libraryName.startsWith("kotlin-stdlib") &&
|
||||
!libraryName.contains("common") && !libraryName.contains("jdk")
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user