From 939f28f2938fe3cd364084c0812e5295c365f128 Mon Sep 17 00:00:00 2001 From: Michael Bogdanov Date: Fri, 28 Aug 2015 19:00:11 +0300 Subject: [PATCH] Jps support --- .../org/jetbrains/kotlin/codegen/ClassFileFactory.java | 4 +--- .../src/org/jetbrains/kotlin/codegen/MemberCodegen.java | 2 +- .../jetbrains/kotlin/codegen/state/GenerationState.kt | 4 ++++ .../cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java | 9 ++++++--- .../jetbrains/kotlin/annotation/StubProducerExtension.kt | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ClassFileFactory.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ClassFileFactory.java index ab8c235196e..143031cea24 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ClassFileFactory.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ClassFileFactory.java @@ -21,7 +21,6 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; -import kotlin.KotlinPackage; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.TestOnly; @@ -87,8 +86,7 @@ public class ClassFileFactory implements OutputFileCollection { } private void writeModuleMappings(Collection values) { - String moduleName = KotlinPackage.removeSurrounding(state.getModule().getName().asString(), "<", ">"); - String outputFilePath = getMappingFileName(moduleName); + String outputFilePath = getMappingFileName(state.getModuleName()); final StringWriter moduleMapping = new StringWriter(1024); for (PackageCodegen codegen : values) { codegen.getFacades().serialize(moduleMapping); diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java index 638c13ca677..4b008b2f888 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java @@ -480,7 +480,7 @@ public abstract class MemberCodegen = emptySet(), // for PackageCodegen in incremental compilation mode public val moduleId: String? = null, + moduleName: String? = null, // TODO: temporary hack, see JetTypeMapperWithOutDirectory state for details public val outDirectory: File? = null, public val progress: Progress = Progress.DEAF ) { + + public val moduleName: String = moduleName ?: JvmCodegenUtil.getModuleName(module) + public interface GenerateClassFilter { public fun shouldAnnotateClass(classOrObject: JetClassOrObject): Boolean public fun shouldGenerateClass(classOrObject: JetClassOrObject): Boolean 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 32aed1e087d..eb63f653e12 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 @@ -148,7 +148,8 @@ public class KotlinToJVMBytecodeCompiler { } ); GenerationState generationState = - generate(environment, result, jetFiles, module.getModuleName(), new File(module.getOutputDirectory())); + generate(environment, result, jetFiles, module.getModuleName(), new File(module.getOutputDirectory()), + module.getModuleName()); outputFiles.put(module, generationState.getFactory()); } @@ -302,7 +303,7 @@ public class KotlinToJVMBytecodeCompiler { result.throwIfError(); - return generate(environment, result, environment.getSourceFiles(), null, null); + return generate(environment, result, environment.getSourceFiles(), null, null, null); } @Nullable @@ -357,7 +358,8 @@ public class KotlinToJVMBytecodeCompiler { @NotNull AnalysisResult result, @NotNull List sourceFiles, @Nullable String moduleId, - File outputDirectory + File outputDirectory, + String moduleName ) { CompilerConfiguration configuration = environment.getConfiguration(); IncrementalCompilationComponents incrementalCompilationComponents = configuration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS); @@ -388,6 +390,7 @@ public class KotlinToJVMBytecodeCompiler { diagnosticHolder, packagesWithObsoleteParts, moduleId, + moduleName, outputDirectory ); ProgressIndicatorAndCompilationCanceledStatus.checkCanceled(); diff --git a/plugins/annotation-collector/src/org/jetbrains/kotlin/annotation/StubProducerExtension.kt b/plugins/annotation-collector/src/org/jetbrains/kotlin/annotation/StubProducerExtension.kt index 6f0a9f8c43c..806ae549951 100644 --- a/plugins/annotation-collector/src/org/jetbrains/kotlin/annotation/StubProducerExtension.kt +++ b/plugins/annotation-collector/src/org/jetbrains/kotlin/annotation/StubProducerExtension.kt @@ -39,7 +39,7 @@ public class StubProducerExtension(val stubsOutputDir: File) : AnalysisCompleted files: Collection ): AnalysisResult? { val forExtraDiagnostics = BindingTraceContext() - + val generationState = GenerationState( project, StubClassBuilderFactory(),