Use both target name and target type to get incremental cache from backend
This commit is contained in:
+4
-3
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.descriptors.impl.PackageFragmentDescriptorImpl
|
||||
import org.jetbrains.kotlin.load.kotlin.ModuleMapping
|
||||
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
|
||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
|
||||
import org.jetbrains.kotlin.modules.Module
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.JetFile
|
||||
@@ -49,7 +50,7 @@ public class IncrementalPackageFragmentProvider(
|
||||
val storageManager: StorageManager,
|
||||
val deserializationComponents: DeserializationComponents,
|
||||
val incrementalCache: IncrementalCache,
|
||||
val moduleId: String
|
||||
val target: Module
|
||||
) : PackageFragmentProvider {
|
||||
|
||||
companion object {
|
||||
@@ -93,8 +94,8 @@ public class IncrementalPackageFragmentProvider(
|
||||
|
||||
|
||||
public inner class IncrementalPackageFragment(fqName: FqName) : PackageFragmentDescriptorImpl(module, fqName) {
|
||||
public val moduleId: String
|
||||
get() = this@IncrementalPackageFragmentProvider.moduleId
|
||||
public val target: Module
|
||||
get() = this@IncrementalPackageFragmentProvider.target
|
||||
|
||||
val memberScope: NotNullLazyValue<JetScope> = storageManager.createLazyValue {
|
||||
if (fqName !in fqNamesToLoad) {
|
||||
|
||||
+4
-4
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.descriptors.PackagePartProvider
|
||||
import org.jetbrains.kotlin.load.kotlin.ModuleMapping
|
||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
|
||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
|
||||
import org.jetbrains.kotlin.modules.Module
|
||||
import org.jetbrains.kotlin.psi.JetFile
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
|
||||
@@ -46,14 +47,13 @@ internal class IncrementalPackagePartProvider private constructor(
|
||||
public fun create(
|
||||
parent: PackagePartProvider,
|
||||
sourceFiles: Collection<JetFile>,
|
||||
moduleIds: List<String>?,
|
||||
modules: List<Module>?,
|
||||
incrementalCompilationComponents: IncrementalCompilationComponents?,
|
||||
storageManager: StorageManager
|
||||
): PackagePartProvider {
|
||||
if (moduleIds == null || incrementalCompilationComponents == null) return parent
|
||||
|
||||
val incrementalCaches = moduleIds.map { incrementalCompilationComponents.getIncrementalCache(it) }
|
||||
if (modules == null || incrementalCompilationComponents == null) return parent
|
||||
|
||||
val incrementalCaches = modules.map { incrementalCompilationComponents.getIncrementalCache(it) }
|
||||
return IncrementalPackagePartProvider(parent, sourceFiles, incrementalCaches, storageManager)
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -17,8 +17,9 @@
|
||||
package org.jetbrains.kotlin.load.kotlin.incremental.components
|
||||
|
||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||
import org.jetbrains.kotlin.modules.Module
|
||||
|
||||
public interface IncrementalCompilationComponents {
|
||||
public fun getIncrementalCache(moduleId: String): IncrementalCache
|
||||
public fun getIncrementalCache(target: Module): IncrementalCache
|
||||
public fun getLookupTracker(): LookupTracker
|
||||
}
|
||||
|
||||
+9
-8
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.load.kotlin.incremental.IncrementalPackageFragmentPr
|
||||
import org.jetbrains.kotlin.load.kotlin.incremental.IncrementalPackagePartProvider;
|
||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache;
|
||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents;
|
||||
import org.jetbrains.kotlin.modules.Module;
|
||||
import org.jetbrains.kotlin.name.Name;
|
||||
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap;
|
||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
|
||||
@@ -100,12 +101,12 @@ public enum TopDownAnalyzerFacadeForJVM {
|
||||
@NotNull ModuleContext moduleContext,
|
||||
@NotNull Collection<JetFile> files,
|
||||
@NotNull BindingTrace trace,
|
||||
@Nullable List<String> moduleIds,
|
||||
@Nullable List<Module> targets,
|
||||
@Nullable IncrementalCompilationComponents incrementalCompilationComponents,
|
||||
@NotNull PackagePartProvider packagePartProvider
|
||||
) {
|
||||
return analyzeFilesWithJavaIntegration(
|
||||
moduleContext, files, trace, TopDownAnalysisMode.TopLevelDeclarations, moduleIds, incrementalCompilationComponents,
|
||||
moduleContext, files, trace, TopDownAnalysisMode.TopLevelDeclarations, targets, incrementalCompilationComponents,
|
||||
packagePartProvider);
|
||||
}
|
||||
|
||||
@@ -115,7 +116,7 @@ public enum TopDownAnalyzerFacadeForJVM {
|
||||
@NotNull Collection<JetFile> files,
|
||||
@NotNull BindingTrace trace,
|
||||
@NotNull TopDownAnalysisMode topDownAnalysisMode,
|
||||
@Nullable List<String> moduleIds,
|
||||
@Nullable List<Module> targets,
|
||||
@Nullable IncrementalCompilationComponents incrementalCompilationComponents,
|
||||
@NotNull PackagePartProvider packagePartProvider
|
||||
) {
|
||||
@@ -128,7 +129,7 @@ public enum TopDownAnalyzerFacadeForJVM {
|
||||
LookupTracker lookupTracker =
|
||||
incrementalCompilationComponents != null ? incrementalCompilationComponents.getLookupTracker() : LookupTracker.DO_NOTHING;
|
||||
|
||||
packagePartProvider = IncrementalPackagePartProvider.create(packagePartProvider, files, moduleIds, incrementalCompilationComponents, moduleContext.getStorageManager());
|
||||
packagePartProvider = IncrementalPackagePartProvider.create(packagePartProvider, files, targets, incrementalCompilationComponents, moduleContext.getStorageManager());
|
||||
|
||||
ContainerForTopDownAnalyzerForJvm container = DiPackage.createContainerForTopDownAnalyzerForJvm(
|
||||
moduleContext,
|
||||
@@ -141,15 +142,15 @@ public enum TopDownAnalyzerFacadeForJVM {
|
||||
|
||||
List<PackageFragmentProvider> additionalProviders = new ArrayList<PackageFragmentProvider>();
|
||||
|
||||
if (moduleIds != null && incrementalCompilationComponents != null) {
|
||||
for (String moduleId : moduleIds) {
|
||||
IncrementalCache incrementalCache = incrementalCompilationComponents.getIncrementalCache(moduleId);
|
||||
if (targets != null && incrementalCompilationComponents != null) {
|
||||
for (Module target : targets) {
|
||||
IncrementalCache incrementalCache = incrementalCompilationComponents.getIncrementalCache(target);
|
||||
|
||||
additionalProviders.add(
|
||||
new IncrementalPackageFragmentProvider(
|
||||
files, moduleContext.getModule(), moduleContext.getStorageManager(),
|
||||
container.getDeserializationComponentsForJava().getComponents(),
|
||||
incrementalCache, moduleId
|
||||
incrementalCache, target
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user