Use simple data class TargetId instead of Module to get incremental cache

This commit is contained in:
Alexey Tsvetkov
2015-09-07 16:46:04 +03:00
parent 45dae5e1a4
commit 7e515e3820
18 changed files with 118 additions and 96 deletions
@@ -143,7 +143,7 @@ public class PackageCodegen {
// TODO rewrite it to something more robust when module system is implemented
for (PackageFragmentDescriptor fragment : state.getModule().getPackage(fqName).getFragments()) {
if (fragment instanceof IncrementalPackageFragmentProvider.IncrementalPackageFragment &&
((IncrementalPackageFragmentProvider.IncrementalPackageFragment) fragment).getTarget().equals(state.getTarget())) {
((IncrementalPackageFragmentProvider.IncrementalPackageFragment) fragment).getTarget().equals(state.getTargetId())) {
return fragment;
}
}
@@ -33,9 +33,9 @@ fun List<PackageParts>.addCompiledPartsAndSort(state: GenerationState): List<Pac
addCompiledParts(state).sortedBy { it.packageFqName }
private fun List<PackageParts>.addCompiledParts(state: GenerationState): List<PackageParts> {
if (state.incrementalCompilationComponents == null || state.target == null) return this
if (state.incrementalCompilationComponents == null || state.targetId == null) return this
val incrementalCache = state.incrementalCompilationComponents.getIncrementalCache(state.target)
val incrementalCache = state.incrementalCompilationComponents.getIncrementalCache(state.targetId)
val moduleMappingData = incrementalCache.getModuleMappingData() ?: return this
val mapping = ModuleMapping.create(moduleMappingData)
@@ -30,11 +30,10 @@ import org.jetbrains.kotlin.codegen.context.PackageContext;
import org.jetbrains.kotlin.codegen.state.GenerationState;
import org.jetbrains.kotlin.codegen.state.JetTypeMapper;
import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils;
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache;
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents;
import org.jetbrains.kotlin.load.kotlin.incremental.components.InlineRegistering;
import org.jetbrains.kotlin.modules.Module;
import org.jetbrains.kotlin.modules.TargetId;
import org.jetbrains.kotlin.name.ClassId;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.*;
@@ -748,11 +747,11 @@ public class InlineCodegen extends CallGenerator {
@NotNull FunctionDescriptor targetDescriptor
) {
IncrementalCompilationComponents incrementalCompilationComponents = state.getIncrementalCompilationComponents();
Module target = state.getTarget();
TargetId targetId = state.getTargetId();
if (incrementalCompilationComponents == null || target == null) return;
if (incrementalCompilationComponents == null || targetId == null) return;
IncrementalCache incrementalCache = incrementalCompilationComponents.getIncrementalCache(target);
IncrementalCache incrementalCache = incrementalCompilationComponents.getIncrementalCache(targetId);
String sourceFile = getClassFilePath(sourceDescriptor, incrementalCache);
String targetFile = getSourceFilePath(targetDescriptor);
InlineRegistering inlineRegistering = incrementalCache.getInlineRegistering();
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.ScriptDescriptor
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
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.name.FqName
import org.jetbrains.kotlin.psi.JetClassOrObject
import org.jetbrains.kotlin.psi.JetFile
@@ -52,7 +52,7 @@ public class GenerationState jvmOverloads constructor(
public val diagnostics: DiagnosticSink = DiagnosticSink.DO_NOTHING,
public val packagesWithObsoleteParts: Collection<FqName> = emptySet(),
// for PackageCodegen in incremental compilation mode
public val target: Module? = null,
public val targetId: TargetId? = null,
moduleName: String? = null,
// TODO: temporary hack, see JetTypeMapperWithOutDirectory state for details
public val outDirectory: File? = null,