diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/PackageCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/PackageCodegen.java index 5627a57eeb1..05be3ed7879 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/PackageCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/PackageCodegen.java @@ -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).getModuleId().equals(state.getModuleId())) { + ((IncrementalPackageFragmentProvider.IncrementalPackageFragment) fragment).getTarget().equals(state.getTarget())) { return fragment; } } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/classFileUtils.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/classFileUtils.kt index 1553f76fe11..77d5d50ae8c 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/classFileUtils.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/classFileUtils.kt @@ -33,9 +33,9 @@ fun List.addCompiledPartsAndSort(state: GenerationState): List.addCompiledParts(state: GenerationState): List { - if (state.incrementalCompilationComponents == null || state.moduleId == null) return this + if (state.incrementalCompilationComponents == null || state.target == null) return this - val incrementalCache = state.incrementalCompilationComponents.getIncrementalCache(state.moduleId) + val incrementalCache = state.incrementalCompilationComponents.getIncrementalCache(state.target) val moduleMappingData = incrementalCache.getModuleMappingData() ?: return this val mapping = ModuleMapping.create(moduleMappingData) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegen.java index 04bd259028d..ccbbd0baf3a 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegen.java @@ -30,10 +30,14 @@ 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.*; +import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinaryClass; +import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinarySourceElement; +import org.jetbrains.kotlin.load.kotlin.PackageClassUtils; +import org.jetbrains.kotlin.load.kotlin.VirtualFileKotlinClass; 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.name.ClassId; import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.psi.*; @@ -746,9 +750,9 @@ public class InlineCodegen extends CallGenerator { @NotNull FunctionDescriptor targetDescriptor ) { IncrementalCompilationComponents incrementalCompilationComponents = state.getIncrementalCompilationComponents(); - String moduleId = state.getModuleId(); + Module target = state.getTarget(); - if (incrementalCompilationComponents == null || moduleId == null) return; + if (incrementalCompilationComponents == null || target == null) return; String sourceFile = getFilePath(sourceDescriptor); String targetFile = getFilePath(targetDescriptor); @@ -765,7 +769,7 @@ public class InlineCodegen extends CallGenerator { assert sourceFile != null: "No source file for inline fun: " + jvmSignature; assert targetFile != null: "No target file for inline fun: " + jvmSignature; - IncrementalCache incrementalCache = incrementalCompilationComponents.getIncrementalCache(moduleId); + IncrementalCache incrementalCache = incrementalCompilationComponents.getIncrementalCache(target); InlineRegistering inlineRegistering = incrementalCache.getInlineRegistering(); inlineRegistering.registerInline(sourceFile, jvmSignature.toString(), targetFile); } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt index 8a304b57cd6..4cfa71f16c3 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt @@ -28,6 +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.name.FqName import org.jetbrains.kotlin.psi.JetClassOrObject import org.jetbrains.kotlin.psi.JetFile @@ -51,7 +52,7 @@ public class GenerationState jvmOverloads constructor( public val diagnostics: DiagnosticSink = DiagnosticSink.DO_NOTHING, public val packagesWithObsoleteParts: Collection = emptySet(), // for PackageCodegen in incremental compilation mode - public val moduleId: String? = null, + public val target: Module? = null, moduleName: String? = null, // TODO: temporary hack, see JetTypeMapperWithOutDirectory state for details public val outDirectory: File? = null, diff --git a/compiler/cli/cli-common/cli-common.iml b/compiler/cli/cli-common/cli-common.iml index 84094636cf5..117ec0eb530 100644 --- a/compiler/cli/cli-common/cli-common.iml +++ b/compiler/cli/cli-common/cli-common.iml @@ -11,5 +11,6 @@ + \ No newline at end of file diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleBuilder.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleBuilder.kt index fcfafe57930..dac8638d8d1 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleBuilder.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleBuilder.kt @@ -16,13 +16,14 @@ package org.jetbrains.kotlin.cli.common.modules +import org.jetbrains.kotlin.modules.Module import java.util.ArrayList public class ModuleBuilder( private val name: String, private val outputDir: String, private val type: String -) : org.jetbrains.kotlin.modules.Module { +) : Module { private val sourceFiles = ArrayList() private val classpathRoots = ArrayList() private val javaSourceRoots = ArrayList() diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleScriptData.java b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleScriptData.java index b88755d6bde..f35eed41e46 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleScriptData.java +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleScriptData.java @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.cli.common.modules; import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.modules.Module; import java.util.Collections; import java.util.List; diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleXmlParser.java b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleXmlParser.java index 78f9adc12ad..7450d5e7964 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleXmlParser.java +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/modules/ModuleXmlParser.java @@ -23,6 +23,7 @@ import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType; import org.jetbrains.kotlin.cli.common.messages.MessageCollector; import org.jetbrains.kotlin.cli.common.messages.MessageCollectorUtil; import org.jetbrains.kotlin.cli.common.messages.OutputMessageUtil; +import org.jetbrains.kotlin.modules.Module; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java index 5be89bda675..f42ab4f6944 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java @@ -122,10 +122,10 @@ public class KotlinToJVMBytecodeCompiler { ProgressIndicatorAndCompilationCanceledStatus.checkCanceled(); - String targetDescription = "in modules [" + Joiner.on(", ").join(Collections2.transform(chunk, new Function() { + String targetDescription = "in targets [" + Joiner.on(", ").join(Collections2.transform(chunk, new Function() { @Override public String apply(@Nullable Module input) { - return input != null ? input.getModuleName() : ""; + return input != null ? input.getModuleName() + "-" + input.getModuleType() : ""; } })) + "] "; AnalysisResult result = analyze(environment, targetDescription); @@ -148,7 +148,7 @@ public class KotlinToJVMBytecodeCompiler { } ); GenerationState generationState = - generate(environment, result, jetFiles, module.getModuleName(), new File(module.getOutputDirectory()), + generate(environment, result, jetFiles, module, new File(module.getOutputDirectory()), module.getModuleName()); outputFiles.put(module, generationState.getFactory()); } @@ -189,7 +189,7 @@ public class KotlinToJVMBytecodeCompiler { configuration.add(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, new File(annotationsRoot)); } - configuration.add(JVMConfigurationKeys.MODULE_IDS, module.getModuleName()); + configuration.add(JVMConfigurationKeys.MODULES, module); } return configuration; @@ -326,7 +326,7 @@ public class KotlinToJVMBytecodeCompiler { moduleContext, environment.getSourceFiles(), sharedTrace, - environment.getConfiguration().get(JVMConfigurationKeys.MODULE_IDS), + environment.getConfiguration().get(JVMConfigurationKeys.MODULES), environment.getConfiguration().get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS), new JvmPackagePartProvider(environment) ); @@ -357,7 +357,7 @@ public class KotlinToJVMBytecodeCompiler { @NotNull KotlinCoreEnvironment environment, @NotNull AnalysisResult result, @NotNull List sourceFiles, - @Nullable String moduleId, + @Nullable Module target, File outputDirectory, String moduleName ) { @@ -365,11 +365,11 @@ public class KotlinToJVMBytecodeCompiler { IncrementalCompilationComponents incrementalCompilationComponents = configuration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS); Collection packagesWithObsoleteParts; - if (moduleId == null || incrementalCompilationComponents == null) { + if (target == null || incrementalCompilationComponents == null) { packagesWithObsoleteParts = Collections.emptySet(); } else { - IncrementalCache incrementalCache = incrementalCompilationComponents.getIncrementalCache(moduleId); + IncrementalCache incrementalCache = incrementalCompilationComponents.getIncrementalCache(target); packagesWithObsoleteParts = new HashSet(); for (String internalName : incrementalCache.getObsoletePackageParts()) { packagesWithObsoleteParts.add(JvmClassName.byInternalName(internalName).getPackageFqName()); @@ -389,7 +389,7 @@ public class KotlinToJVMBytecodeCompiler { configuration.get(JVMConfigurationKeys.DISABLE_OPTIMIZATION, false), diagnosticHolder, packagesWithObsoleteParts, - moduleId, + target, moduleName, outputDirectory, incrementalCompilationComponents @@ -401,7 +401,7 @@ public class KotlinToJVMBytecodeCompiler { KotlinCodegenFacade.compileCorrectFiles(generationState, CompilationErrorHandler.THROW_EXCEPTION); long generationNanos = PerformanceCounter.Companion.currentTime() - generationStart; - String desc = moduleId != null ? "module " + moduleId + " " : ""; + String desc = target != null ? "target " + target.getModuleName() + "-" + target.getModuleType() + " " : ""; String message = "GENERATE: " + sourceFiles.size() + " files (" + environment.countLinesOfCode(sourceFiles) + " lines) " + desc + "in " + TimeUnit.NANOSECONDS.toMillis(generationNanos) + " ms"; K2JVMCompiler.Companion.reportPerf(environment.getConfiguration(), message); diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JVMConfigurationKeys.java b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JVMConfigurationKeys.java index 75dba22ca09..9ebdce170b7 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JVMConfigurationKeys.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/config/JVMConfigurationKeys.java @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.cli.jvm.config; +import org.jetbrains.kotlin.modules.Module; import org.jetbrains.kotlin.cli.jvm.compiler.CompilerJarLocator; import org.jetbrains.kotlin.config.CompilerConfigurationKey; import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents; @@ -48,8 +49,8 @@ public class JVMConfigurationKeys { public static final CompilerConfigurationKey COMPILER_JAR_LOCATOR = CompilerConfigurationKey.create("Compiler jar locator"); - public static final CompilerConfigurationKey> MODULE_IDS = - CompilerConfigurationKey.create("module id strings"); + public static final CompilerConfigurationKey> MODULES = + CompilerConfigurationKey.create("module data"); public static final CompilerConfigurationKey MODULE_NAME = CompilerConfigurationKey.create("module name"); diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackageFragmentProvider.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackageFragmentProvider.kt index e8fb04d3dd2..65433dc2c38 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackageFragmentProvider.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackageFragmentProvider.kt @@ -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 = storageManager.createLazyValue { if (fqName !in fqNamesToLoad) { diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackagePartProvider.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackagePartProvider.kt index aa2b2fc9c0e..9f96f2410d5 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackagePartProvider.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackagePartProvider.kt @@ -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, - moduleIds: List?, + modules: List?, 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) } } diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/components/IncrementalCompilationComponents.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/components/IncrementalCompilationComponents.kt index 396efcd86eb..b7abea713f0 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/components/IncrementalCompilationComponents.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/components/IncrementalCompilationComponents.kt @@ -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 } diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/TopDownAnalyzerFacadeForJVM.java b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/TopDownAnalyzerFacadeForJVM.java index 5dda520fea7..39d96ab4fc8 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/TopDownAnalyzerFacadeForJVM.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/TopDownAnalyzerFacadeForJVM.java @@ -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 files, @NotNull BindingTrace trace, - @Nullable List moduleIds, + @Nullable List 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 files, @NotNull BindingTrace trace, @NotNull TopDownAnalysisMode topDownAnalysisMode, - @Nullable List moduleIds, + @Nullable List 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 additionalProviders = new ArrayList(); - 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 ) ); } diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt index 84706d4e7da..3aad308f5f2 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt @@ -321,6 +321,7 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR || className.startsWith("org.apache.log4j.") // For logging from compiler || className == "org.jetbrains.kotlin.progress.CompilationCanceledStatus" || className == "org.jetbrains.kotlin.progress.CompilationCanceledException" + || className == "org.jetbrains.kotlin.modules.Module" }, compilerServices ) diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCompilationComponentsImpl.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCompilationComponentsImpl.kt index 9e423f5a262..e4ff9a9da86 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCompilationComponentsImpl.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCompilationComponentsImpl.kt @@ -20,14 +20,42 @@ import org.jetbrains.jps.incremental.ModuleBuildTarget import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents +import org.jetbrains.kotlin.modules.Module public class IncrementalCompilationComponentsImpl( caches: Map, private val lookupTracker: LookupTracker ): IncrementalCompilationComponents { - private val idToCache = caches.mapKeys { it.key.id!! } + private val caches = caches.mapKeys { ModuleToModuleBuildTargetAdapter(it.key) } - override fun getIncrementalCache(moduleId: String): IncrementalCache = idToCache[moduleId]!! + override fun getIncrementalCache(target: Module): IncrementalCache = + caches[target]!! override fun getLookupTracker(): LookupTracker = lookupTracker } + +private class ModuleToModuleBuildTargetAdapter( + private val moduleBuildTarget: ModuleBuildTarget +) : Module { + + override fun getModuleName(): String = + moduleBuildTarget.id + + override fun getModuleType(): String = + moduleBuildTarget.targetType.typeId + + override fun getAnnotationsRoots(): List = + throw UnsupportedOperationException() + + override fun getClasspathRoots(): List = + throw UnsupportedOperationException() + + override fun getJavaSourceRoots(): List = + throw UnsupportedOperationException() + + override fun getOutputDirectory(): String = + throw UnsupportedOperationException() + + override fun getSourceFiles(): List = + throw UnsupportedOperationException() +}