Use simple data class TargetId instead of Module to get incremental cache
This commit is contained in:
+5
-5
@@ -25,7 +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.modules.TargetId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.JetFile
|
||||
@@ -46,11 +46,11 @@ import java.util.*
|
||||
|
||||
public class IncrementalPackageFragmentProvider(
|
||||
sourceFiles: Collection<JetFile>,
|
||||
val module: ModuleDescriptor,
|
||||
val moduleDescriptor: ModuleDescriptor,
|
||||
val storageManager: StorageManager,
|
||||
val deserializationComponents: DeserializationComponents,
|
||||
val incrementalCache: IncrementalCache,
|
||||
val target: Module
|
||||
val target: TargetId
|
||||
) : PackageFragmentProvider {
|
||||
|
||||
companion object {
|
||||
@@ -93,8 +93,8 @@ public class IncrementalPackageFragmentProvider(
|
||||
}
|
||||
|
||||
|
||||
public inner class IncrementalPackageFragment(fqName: FqName) : PackageFragmentDescriptorImpl(module, fqName) {
|
||||
public val target: Module
|
||||
public inner class IncrementalPackageFragment(fqName: FqName) : PackageFragmentDescriptorImpl(moduleDescriptor, fqName) {
|
||||
public val target: TargetId
|
||||
get() = this@IncrementalPackageFragmentProvider.target
|
||||
|
||||
val memberScope: NotNullLazyValue<JetScope> = storageManager.createLazyValue {
|
||||
|
||||
+4
-4
@@ -20,7 +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.modules.TargetId
|
||||
import org.jetbrains.kotlin.psi.JetFile
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
|
||||
@@ -47,13 +47,13 @@ internal class IncrementalPackagePartProvider private constructor(
|
||||
public fun create(
|
||||
parent: PackagePartProvider,
|
||||
sourceFiles: Collection<JetFile>,
|
||||
modules: List<Module>?,
|
||||
targets: List<TargetId>?,
|
||||
incrementalCompilationComponents: IncrementalCompilationComponents?,
|
||||
storageManager: StorageManager
|
||||
): PackagePartProvider {
|
||||
if (modules == null || incrementalCompilationComponents == null) return parent
|
||||
if (targets == null || incrementalCompilationComponents == null) return parent
|
||||
|
||||
val incrementalCaches = modules.map { incrementalCompilationComponents.getIncrementalCache(it) }
|
||||
val incrementalCaches = targets.map { incrementalCompilationComponents.getIncrementalCache(it) }
|
||||
return IncrementalPackagePartProvider(parent, sourceFiles, incrementalCaches, storageManager)
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -17,9 +17,9 @@
|
||||
package org.jetbrains.kotlin.load.kotlin.incremental.components
|
||||
|
||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||
import org.jetbrains.kotlin.modules.Module
|
||||
import org.jetbrains.kotlin.modules.TargetId
|
||||
|
||||
public interface IncrementalCompilationComponents {
|
||||
public fun getIncrementalCache(target: Module): IncrementalCache
|
||||
public fun getIncrementalCache(target: TargetId): IncrementalCache
|
||||
public fun getLookupTracker(): LookupTracker
|
||||
}
|
||||
|
||||
+19
-8
@@ -33,6 +33,8 @@ import org.jetbrains.kotlin.load.kotlin.incremental.IncrementalPackagePartProvid
|
||||
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.modules.ModulesPackage;
|
||||
import org.jetbrains.kotlin.modules.TargetId;
|
||||
import org.jetbrains.kotlin.name.Name;
|
||||
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap;
|
||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
|
||||
@@ -101,12 +103,12 @@ public enum TopDownAnalyzerFacadeForJVM {
|
||||
@NotNull ModuleContext moduleContext,
|
||||
@NotNull Collection<JetFile> files,
|
||||
@NotNull BindingTrace trace,
|
||||
@Nullable List<Module> targets,
|
||||
@Nullable List<Module> modules,
|
||||
@Nullable IncrementalCompilationComponents incrementalCompilationComponents,
|
||||
@NotNull PackagePartProvider packagePartProvider
|
||||
) {
|
||||
return analyzeFilesWithJavaIntegration(
|
||||
moduleContext, files, trace, TopDownAnalysisMode.TopLevelDeclarations, targets, incrementalCompilationComponents,
|
||||
moduleContext, files, trace, TopDownAnalysisMode.TopLevelDeclarations, modules, incrementalCompilationComponents,
|
||||
packagePartProvider);
|
||||
}
|
||||
|
||||
@@ -116,7 +118,7 @@ public enum TopDownAnalyzerFacadeForJVM {
|
||||
@NotNull Collection<JetFile> files,
|
||||
@NotNull BindingTrace trace,
|
||||
@NotNull TopDownAnalysisMode topDownAnalysisMode,
|
||||
@Nullable List<Module> targets,
|
||||
@Nullable List<Module> modules,
|
||||
@Nullable IncrementalCompilationComponents incrementalCompilationComponents,
|
||||
@NotNull PackagePartProvider packagePartProvider
|
||||
) {
|
||||
@@ -129,7 +131,16 @@ public enum TopDownAnalyzerFacadeForJVM {
|
||||
LookupTracker lookupTracker =
|
||||
incrementalCompilationComponents != null ? incrementalCompilationComponents.getLookupTracker() : LookupTracker.DO_NOTHING;
|
||||
|
||||
packagePartProvider = IncrementalPackagePartProvider.create(packagePartProvider, files, targets, incrementalCompilationComponents, moduleContext.getStorageManager());
|
||||
List<TargetId> targetIds = null;
|
||||
if (modules != null) {
|
||||
targetIds = new ArrayList<TargetId>(modules.size());
|
||||
|
||||
for (Module module : modules) {
|
||||
targetIds.add(ModulesPackage.TargetId(module));
|
||||
}
|
||||
}
|
||||
|
||||
packagePartProvider = IncrementalPackagePartProvider.create(packagePartProvider, files, targetIds, incrementalCompilationComponents, moduleContext.getStorageManager());
|
||||
|
||||
ContainerForTopDownAnalyzerForJvm container = DiPackage.createContainerForTopDownAnalyzerForJvm(
|
||||
moduleContext,
|
||||
@@ -142,15 +153,15 @@ public enum TopDownAnalyzerFacadeForJVM {
|
||||
|
||||
List<PackageFragmentProvider> additionalProviders = new ArrayList<PackageFragmentProvider>();
|
||||
|
||||
if (targets != null && incrementalCompilationComponents != null) {
|
||||
for (Module target : targets) {
|
||||
IncrementalCache incrementalCache = incrementalCompilationComponents.getIncrementalCache(target);
|
||||
if (targetIds != null && incrementalCompilationComponents != null) {
|
||||
for (TargetId targetId : targetIds) {
|
||||
IncrementalCache incrementalCache = incrementalCompilationComponents.getIncrementalCache(targetId);
|
||||
|
||||
additionalProviders.add(
|
||||
new IncrementalPackageFragmentProvider(
|
||||
files, moduleContext.getModule(), moduleContext.getStorageManager(),
|
||||
container.getDeserializationComponentsForJava().getComponents(),
|
||||
incrementalCache, target
|
||||
incrementalCache, targetId
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user