Add jvm8 target key, added jvm 8 option to bytecode tool window
IsJava8 renamed to isJvm8
This commit is contained in:
committed by
Mikhael Bogdanov
parent
96f892d60c
commit
0ae2175a00
@@ -155,10 +155,11 @@ class GenerationState @JvmOverloads constructor(
|
|||||||
val isInlineDisabled: Boolean = configuration.getBoolean(CommonConfigurationKeys.DISABLE_INLINE)
|
val isInlineDisabled: Boolean = configuration.getBoolean(CommonConfigurationKeys.DISABLE_INLINE)
|
||||||
val useTypeTableInSerializer: Boolean = configuration.getBoolean(JVMConfigurationKeys.USE_TYPE_TABLE)
|
val useTypeTableInSerializer: Boolean = configuration.getBoolean(JVMConfigurationKeys.USE_TYPE_TABLE)
|
||||||
val inheritMultifileParts: Boolean = configuration.getBoolean(JVMConfigurationKeys.INHERIT_MULTIFILE_PARTS)
|
val inheritMultifileParts: Boolean = configuration.getBoolean(JVMConfigurationKeys.INHERIT_MULTIFILE_PARTS)
|
||||||
|
val isJvm8Target: Boolean = configuration.getBoolean(JVMConfigurationKeys.JVM_8_TARGET)
|
||||||
|
|
||||||
val rootContext: CodegenContext<*> = RootContext(this)
|
val rootContext: CodegenContext<*> = RootContext(this)
|
||||||
|
|
||||||
val classFileVersion: Int = Opcodes.V1_6
|
val classFileVersion: Int = if (isJvm8Target) Opcodes.V1_8 else Opcodes.V1_6
|
||||||
|
|
||||||
init {
|
init {
|
||||||
this.interceptedBuilderFactory = builderFactory
|
this.interceptedBuilderFactory = builderFactory
|
||||||
|
|||||||
@@ -57,6 +57,9 @@ public class JVMConfigurationKeys {
|
|||||||
public static final CompilerConfigurationKey<Boolean> USE_TYPE_TABLE =
|
public static final CompilerConfigurationKey<Boolean> USE_TYPE_TABLE =
|
||||||
CompilerConfigurationKey.create("use type table in serializer");
|
CompilerConfigurationKey.create("use type table in serializer");
|
||||||
|
|
||||||
|
public static final CompilerConfigurationKey<Boolean> JVM_8_TARGET =
|
||||||
|
CompilerConfigurationKey.create("compile to jvm 8");
|
||||||
|
|
||||||
public static final CompilerConfigurationKey<IncrementalCompilationComponents> INCREMENTAL_COMPILATION_COMPONENTS =
|
public static final CompilerConfigurationKey<IncrementalCompilationComponents> INCREMENTAL_COMPILATION_COMPONENTS =
|
||||||
CompilerConfigurationKey.create("incremental cache provider");
|
CompilerConfigurationKey.create("incremental cache provider");
|
||||||
|
|
||||||
|
|||||||
@@ -127,6 +127,10 @@ public class KotlinBytecodeToolWindow extends JPanel implements Disposable {
|
|||||||
configuration.put(JVMConfigurationKeys.DISABLE_OPTIMIZATION, true);
|
configuration.put(JVMConfigurationKeys.DISABLE_OPTIMIZATION, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (jvm8Target.isSelected()) {
|
||||||
|
configuration.put(JVMConfigurationKeys.JVM_8_TARGET, true);
|
||||||
|
}
|
||||||
|
|
||||||
return getBytecodeForFile(ktFile, configuration);
|
return getBytecodeForFile(ktFile, configuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,6 +179,7 @@ public class KotlinBytecodeToolWindow extends JPanel implements Disposable {
|
|||||||
private final JCheckBox enableOptimization;
|
private final JCheckBox enableOptimization;
|
||||||
private final JCheckBox enableAssertions;
|
private final JCheckBox enableAssertions;
|
||||||
private final JButton decompile;
|
private final JButton decompile;
|
||||||
|
private final JCheckBox jvm8Target;
|
||||||
|
|
||||||
public KotlinBytecodeToolWindow(Project project, ToolWindow toolWindow) {
|
public KotlinBytecodeToolWindow(Project project, ToolWindow toolWindow) {
|
||||||
super(new BorderLayout());
|
super(new BorderLayout());
|
||||||
@@ -213,9 +218,11 @@ public class KotlinBytecodeToolWindow extends JPanel implements Disposable {
|
|||||||
enableInline = new JCheckBox("Inline", true);
|
enableInline = new JCheckBox("Inline", true);
|
||||||
enableOptimization = new JCheckBox("Optimization", true);
|
enableOptimization = new JCheckBox("Optimization", true);
|
||||||
enableAssertions = new JCheckBox("Assertions", true);
|
enableAssertions = new JCheckBox("Assertions", true);
|
||||||
|
jvm8Target = new JCheckBox("JVM 8 target", false);
|
||||||
optionPanel.add(enableInline);
|
optionPanel.add(enableInline);
|
||||||
optionPanel.add(enableOptimization);
|
optionPanel.add(enableOptimization);
|
||||||
optionPanel.add(enableAssertions);
|
optionPanel.add(enableAssertions);
|
||||||
|
optionPanel.add(jvm8Target);
|
||||||
|
|
||||||
new InfinitePeriodicalTask(UPDATE_DELAY, Alarm.ThreadToUse.SWING_THREAD, this, new Computable<LongRunningReadTask>() {
|
new InfinitePeriodicalTask(UPDATE_DELAY, Alarm.ThreadToUse.SWING_THREAD, this, new Computable<LongRunningReadTask>() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user