Introduce UsageCollector
This commit is contained in:
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.load.java.structure.impl.JavaPropertyInitializerEval
|
||||
import org.jetbrains.kotlin.load.kotlin.DeserializationComponentsForJava
|
||||
import org.jetbrains.kotlin.load.kotlin.JvmVirtualFileFinderFactory
|
||||
import org.jetbrains.kotlin.load.kotlin.KotlinJvmCheckerProvider
|
||||
import org.jetbrains.kotlin.incremental.components.UsageCollector
|
||||
import org.jetbrains.kotlin.resolve.BindingTrace
|
||||
import org.jetbrains.kotlin.resolve.BodyResolveCache
|
||||
import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer
|
||||
@@ -44,9 +45,9 @@ import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory
|
||||
import org.jetbrains.kotlin.synthetic.AdditionalScopesWithJavaSyntheticExtensions
|
||||
|
||||
public fun StorageComponentContainer.configureJavaTopDownAnalysis(moduleContentScope: GlobalSearchScope, project: Project) {
|
||||
public fun StorageComponentContainer.configureJavaTopDownAnalysis(moduleContentScope: GlobalSearchScope, project: Project, usageCollector: UsageCollector) {
|
||||
useInstance(moduleContentScope)
|
||||
|
||||
useInstance(usageCollector)
|
||||
useImpl<ResolveSession>()
|
||||
|
||||
useImpl<LazyTopDownAnalyzer>()
|
||||
@@ -74,7 +75,7 @@ public fun createContainerForLazyResolveWithJava(
|
||||
moduleContentScope: GlobalSearchScope, moduleClassResolver: ModuleClassResolver
|
||||
): Pair<ResolveSession, JavaDescriptorResolver> = createContainer("LazyResolveWithJava") {
|
||||
configureModule(moduleContext, KotlinJvmCheckerProvider(moduleContext.module), bindingTrace)
|
||||
configureJavaTopDownAnalysis(moduleContentScope, moduleContext.project)
|
||||
configureJavaTopDownAnalysis(moduleContentScope, moduleContext.project, UsageCollector.DO_NOTHING)
|
||||
|
||||
useInstance(moduleClassResolver)
|
||||
|
||||
@@ -90,12 +91,14 @@ public fun createContainerForLazyResolveWithJava(
|
||||
|
||||
|
||||
public fun createContainerForTopDownAnalyzerForJvm(
|
||||
moduleContext: ModuleContext, bindingTrace: BindingTrace,
|
||||
moduleContext: ModuleContext,
|
||||
bindingTrace: BindingTrace,
|
||||
declarationProviderFactory: DeclarationProviderFactory,
|
||||
moduleContentScope: GlobalSearchScope
|
||||
moduleContentScope: GlobalSearchScope,
|
||||
usageCollector: UsageCollector
|
||||
): ContainerForTopDownAnalyzerForJvm = createContainer("TopDownAnalyzerForJvm") {
|
||||
configureModule(moduleContext, KotlinJvmCheckerProvider(moduleContext.module), bindingTrace)
|
||||
configureJavaTopDownAnalysis(moduleContentScope, moduleContext.project)
|
||||
configureJavaTopDownAnalysis(moduleContentScope, moduleContext.project, usageCollector)
|
||||
|
||||
useInstance(declarationProviderFactory)
|
||||
useInstance(BodyResolveCache.ThrowException)
|
||||
@@ -117,4 +120,4 @@ public class ContainerForTopDownAnalyzerForJvm(container: StorageComponentContai
|
||||
val lazyTopDownAnalyzerForTopLevel: LazyTopDownAnalyzerForTopLevel by container
|
||||
val javaDescriptorResolver: JavaDescriptorResolver by container
|
||||
val deserializationComponentsForJava: DeserializationComponentsForJava by container
|
||||
}
|
||||
}
|
||||
|
||||
+3
@@ -16,6 +16,9 @@
|
||||
|
||||
package org.jetbrains.kotlin.load.kotlin.incremental.components
|
||||
|
||||
import org.jetbrains.kotlin.incremental.components.UsageCollector
|
||||
|
||||
public interface IncrementalCompilationComponents {
|
||||
public fun getIncrementalCache(moduleId: String): IncrementalCache
|
||||
public fun getUsageCollector(): UsageCollector
|
||||
}
|
||||
|
||||
+6
-1
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.descriptors.ModuleParameters;
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider;
|
||||
import org.jetbrains.kotlin.frontend.java.di.ContainerForTopDownAnalyzerForJvm;
|
||||
import org.jetbrains.kotlin.frontend.java.di.DiPackage;
|
||||
import org.jetbrains.kotlin.incremental.components.UsageCollector;
|
||||
import org.jetbrains.kotlin.load.kotlin.incremental.IncrementalPackageFragmentProvider;
|
||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache;
|
||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents;
|
||||
@@ -123,11 +124,15 @@ public enum TopDownAnalyzerFacadeForJVM {
|
||||
FileBasedDeclarationProviderFactory providerFactory =
|
||||
new FileBasedDeclarationProviderFactory(moduleContext.getStorageManager(), allFiles);
|
||||
|
||||
UsageCollector usageCollector =
|
||||
incrementalCompilationComponents != null ? incrementalCompilationComponents.getUsageCollector() : UsageCollector.DO_NOTHING;
|
||||
|
||||
ContainerForTopDownAnalyzerForJvm container = DiPackage.createContainerForTopDownAnalyzerForJvm(
|
||||
moduleContext,
|
||||
trace,
|
||||
providerFactory,
|
||||
GlobalSearchScope.allScope(project)
|
||||
GlobalSearchScope.allScope(project),
|
||||
usageCollector
|
||||
);
|
||||
|
||||
List<PackageFragmentProvider> additionalProviders = new ArrayList<PackageFragmentProvider>();
|
||||
|
||||
Reference in New Issue
Block a user