Remove dependency of module 'frontend.java' on 'javac-wrapper'
This breaks the circular dependency between them
This commit is contained in:
@@ -11,6 +11,5 @@
|
||||
<orderEntry type="library" scope="PROVIDED" name="intellij-core" level="project" />
|
||||
<orderEntry type="module" module-name="descriptor.loader.java" exported="" />
|
||||
<orderEntry type="module" module-name="util" />
|
||||
<orderEntry type="module" module-name="javac-wrapper" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -28,9 +28,7 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PackagePartProvider
|
||||
import org.jetbrains.kotlin.frontend.di.configureModule
|
||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||
import org.jetbrains.kotlin.javac.components.JavacBasedClassFinder
|
||||
import org.jetbrains.kotlin.javac.components.JavacBasedSourceElementFactory
|
||||
import org.jetbrains.kotlin.javac.components.StubJavaResolverCache
|
||||
import org.jetbrains.kotlin.load.java.AbstractJavaClassFinder
|
||||
import org.jetbrains.kotlin.load.java.InternalFlexibleTypeTransformer
|
||||
import org.jetbrains.kotlin.load.java.JavaClassFinderImpl
|
||||
import org.jetbrains.kotlin.load.java.components.*
|
||||
@@ -50,8 +48,7 @@ import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory
|
||||
private fun StorageComponentContainer.configureJavaTopDownAnalysis(
|
||||
moduleContentScope: GlobalSearchScope,
|
||||
project: Project,
|
||||
lookupTracker: LookupTracker,
|
||||
useJavac: Boolean
|
||||
lookupTracker: LookupTracker
|
||||
) {
|
||||
useInstance(moduleContentScope)
|
||||
useInstance(lookupTracker)
|
||||
@@ -63,16 +60,6 @@ private fun StorageComponentContainer.configureJavaTopDownAnalysis(
|
||||
|
||||
useInstance(VirtualFileFinderFactory.getInstance(project).create(moduleContentScope))
|
||||
|
||||
if (useJavac) {
|
||||
useImpl<JavacBasedClassFinder>()
|
||||
useImpl<StubJavaResolverCache>()
|
||||
useImpl<JavacBasedSourceElementFactory>()
|
||||
} else {
|
||||
useImpl<JavaClassFinderImpl>()
|
||||
useImpl<LazyResolveBasedCache>()
|
||||
useImpl<JavaSourceElementFactoryImpl>()
|
||||
}
|
||||
|
||||
useImpl<JavaPropertyInitializerEvaluatorImpl>()
|
||||
useImpl<AnnotationResolverImpl>()
|
||||
useImpl<SignaturePropagatorImpl>()
|
||||
@@ -97,10 +84,19 @@ fun createContainerForLazyResolveWithJava(
|
||||
jvmTarget: JvmTarget,
|
||||
languageVersionSettings: LanguageVersionSettings,
|
||||
useBuiltInsProvider: Boolean,
|
||||
useJavac: Boolean = false
|
||||
configureJavaClassFinder: (StorageComponentContainer.() -> Unit)? = null
|
||||
): StorageComponentContainer = createContainer("LazyResolveWithJava", JvmPlatform) {
|
||||
configureModule(moduleContext, JvmPlatform, jvmTarget, bindingTrace)
|
||||
configureJavaTopDownAnalysis(moduleContentScope, moduleContext.project, lookupTracker, useJavac)
|
||||
configureJavaTopDownAnalysis(moduleContentScope, moduleContext.project, lookupTracker)
|
||||
|
||||
if (configureJavaClassFinder != null) {
|
||||
configureJavaClassFinder()
|
||||
}
|
||||
else {
|
||||
useImpl<JavaClassFinderImpl>()
|
||||
useImpl<LazyResolveBasedCache>()
|
||||
useImpl<JavaSourceElementFactoryImpl>()
|
||||
}
|
||||
|
||||
useInstance(packagePartProvider)
|
||||
useInstance(moduleClassResolver)
|
||||
@@ -115,10 +111,7 @@ fun createContainerForLazyResolveWithJava(
|
||||
|
||||
targetEnvironment.configure(this)
|
||||
}.apply {
|
||||
if (useJavac)
|
||||
get<JavacBasedClassFinder>().initialize(bindingTrace, get<KotlinCodeAnalyzer>())
|
||||
else
|
||||
get<JavaClassFinderImpl>().initialize(bindingTrace, get<KotlinCodeAnalyzer>())
|
||||
get<AbstractJavaClassFinder>().initialize(bindingTrace, get<KotlinCodeAnalyzer>())
|
||||
}
|
||||
|
||||
|
||||
@@ -132,11 +125,11 @@ fun createContainerForTopDownAnalyzerForJvm(
|
||||
moduleClassResolver: ModuleClassResolver,
|
||||
jvmTarget: JvmTarget,
|
||||
languageVersionSettings: LanguageVersionSettings,
|
||||
useJavac: Boolean = false
|
||||
configureJavaClassFinder: (StorageComponentContainer.() -> Unit)? = null
|
||||
): ComponentProvider = createContainerForLazyResolveWithJava(
|
||||
moduleContext, bindingTrace, declarationProviderFactory, moduleContentScope, moduleClassResolver,
|
||||
CompilerEnvironment, lookupTracker, packagePartProvider, jvmTarget, languageVersionSettings,
|
||||
useBuiltInsProvider = true, useJavac = useJavac
|
||||
useBuiltInsProvider = true, configureJavaClassFinder = configureJavaClassFinder
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user