Jps support
This commit is contained in:
@@ -21,7 +21,6 @@ import com.intellij.openapi.vfs.VirtualFile;
|
|||||||
import com.intellij.psi.PsiFile;
|
import com.intellij.psi.PsiFile;
|
||||||
import com.intellij.util.Function;
|
import com.intellij.util.Function;
|
||||||
import com.intellij.util.containers.ContainerUtil;
|
import com.intellij.util.containers.ContainerUtil;
|
||||||
import kotlin.KotlinPackage;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.annotations.TestOnly;
|
import org.jetbrains.annotations.TestOnly;
|
||||||
@@ -87,8 +86,7 @@ public class ClassFileFactory implements OutputFileCollection {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void writeModuleMappings(Collection<PackageCodegen> values) {
|
private void writeModuleMappings(Collection<PackageCodegen> values) {
|
||||||
String moduleName = KotlinPackage.removeSurrounding(state.getModule().getName().asString(), "<", ">");
|
String outputFilePath = getMappingFileName(state.getModuleName());
|
||||||
String outputFilePath = getMappingFileName(moduleName);
|
|
||||||
final StringWriter moduleMapping = new StringWriter(1024);
|
final StringWriter moduleMapping = new StringWriter(1024);
|
||||||
for (PackageCodegen codegen : values) {
|
for (PackageCodegen codegen : values) {
|
||||||
codegen.getFacades().serialize(moduleMapping);
|
codegen.getFacades().serialize(moduleMapping);
|
||||||
|
|||||||
@@ -480,7 +480,7 @@ public abstract class MemberCodegen<T extends JetElement/* TODO: & JetDeclaratio
|
|||||||
@NotNull ClassBuilder classBuilder
|
@NotNull ClassBuilder classBuilder
|
||||||
) {
|
) {
|
||||||
classBuilder.newField(NO_ORIGIN, ACC_PUBLIC | ACC_STATIC | ACC_FINAL | ACC_SYNTHETIC, "$moduleName",
|
classBuilder.newField(NO_ORIGIN, ACC_PUBLIC | ACC_STATIC | ACC_FINAL | ACC_SYNTHETIC, "$moduleName",
|
||||||
AsmTypes.JAVA_STRING_TYPE.getDescriptor(), null, JvmCodegenUtil.getModuleName(state.getModule()));
|
AsmTypes.JAVA_STRING_TYPE.getDescriptor(), null, state.getModuleName());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void generatePropertyMetadataArrayFieldIfNeeded(@NotNull Type thisAsmType) {
|
protected void generatePropertyMetadataArrayFieldIfNeeded(@NotNull Type thisAsmType) {
|
||||||
|
|||||||
@@ -51,10 +51,14 @@ public class GenerationState jvmOverloads constructor(
|
|||||||
public val packagesWithObsoleteParts: Collection<FqName> = emptySet(),
|
public val packagesWithObsoleteParts: Collection<FqName> = emptySet(),
|
||||||
// for PackageCodegen in incremental compilation mode
|
// for PackageCodegen in incremental compilation mode
|
||||||
public val moduleId: String? = null,
|
public val moduleId: String? = null,
|
||||||
|
moduleName: String? = null,
|
||||||
// TODO: temporary hack, see JetTypeMapperWithOutDirectory state for details
|
// TODO: temporary hack, see JetTypeMapperWithOutDirectory state for details
|
||||||
public val outDirectory: File? = null,
|
public val outDirectory: File? = null,
|
||||||
public val progress: Progress = Progress.DEAF
|
public val progress: Progress = Progress.DEAF
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
public val moduleName: String = moduleName ?: JvmCodegenUtil.getModuleName(module)
|
||||||
|
|
||||||
public interface GenerateClassFilter {
|
public interface GenerateClassFilter {
|
||||||
public fun shouldAnnotateClass(classOrObject: JetClassOrObject): Boolean
|
public fun shouldAnnotateClass(classOrObject: JetClassOrObject): Boolean
|
||||||
public fun shouldGenerateClass(classOrObject: JetClassOrObject): Boolean
|
public fun shouldGenerateClass(classOrObject: JetClassOrObject): Boolean
|
||||||
|
|||||||
+6
-3
@@ -148,7 +148,8 @@ public class KotlinToJVMBytecodeCompiler {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
GenerationState generationState =
|
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());
|
outputFiles.put(module, generationState.getFactory());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -302,7 +303,7 @@ public class KotlinToJVMBytecodeCompiler {
|
|||||||
|
|
||||||
result.throwIfError();
|
result.throwIfError();
|
||||||
|
|
||||||
return generate(environment, result, environment.getSourceFiles(), null, null);
|
return generate(environment, result, environment.getSourceFiles(), null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -357,7 +358,8 @@ public class KotlinToJVMBytecodeCompiler {
|
|||||||
@NotNull AnalysisResult result,
|
@NotNull AnalysisResult result,
|
||||||
@NotNull List<JetFile> sourceFiles,
|
@NotNull List<JetFile> sourceFiles,
|
||||||
@Nullable String moduleId,
|
@Nullable String moduleId,
|
||||||
File outputDirectory
|
File outputDirectory,
|
||||||
|
String moduleName
|
||||||
) {
|
) {
|
||||||
CompilerConfiguration configuration = environment.getConfiguration();
|
CompilerConfiguration configuration = environment.getConfiguration();
|
||||||
IncrementalCompilationComponents incrementalCompilationComponents = configuration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS);
|
IncrementalCompilationComponents incrementalCompilationComponents = configuration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS);
|
||||||
@@ -388,6 +390,7 @@ public class KotlinToJVMBytecodeCompiler {
|
|||||||
diagnosticHolder,
|
diagnosticHolder,
|
||||||
packagesWithObsoleteParts,
|
packagesWithObsoleteParts,
|
||||||
moduleId,
|
moduleId,
|
||||||
|
moduleName,
|
||||||
outputDirectory
|
outputDirectory
|
||||||
);
|
);
|
||||||
ProgressIndicatorAndCompilationCanceledStatus.checkCanceled();
|
ProgressIndicatorAndCompilationCanceledStatus.checkCanceled();
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ public class StubProducerExtension(val stubsOutputDir: File) : AnalysisCompleted
|
|||||||
files: Collection<JetFile>
|
files: Collection<JetFile>
|
||||||
): AnalysisResult? {
|
): AnalysisResult? {
|
||||||
val forExtraDiagnostics = BindingTraceContext()
|
val forExtraDiagnostics = BindingTraceContext()
|
||||||
|
|
||||||
val generationState = GenerationState(
|
val generationState = GenerationState(
|
||||||
project,
|
project,
|
||||||
StubClassBuilderFactory(),
|
StubClassBuilderFactory(),
|
||||||
|
|||||||
Reference in New Issue
Block a user