Replaced passing compiler special mode to JetTypeMapper with special enum type. Enum type means if builtin types should be mapped to Java standard classes in generated bytecode.
This commit is contained in:
@@ -29,6 +29,7 @@ import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.K2JVMCompileEnvironmentConfiguration;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler;
|
||||
import org.jetbrains.jet.cli.jvm.repl.ReplFromTerminal;
|
||||
import org.jetbrains.jet.codegen.BuiltinToJavaTypesMapping;
|
||||
import org.jetbrains.jet.codegen.CompilationException;
|
||||
import org.jetbrains.jet.config.CompilerConfiguration;
|
||||
import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode;
|
||||
@@ -72,9 +73,10 @@ public class K2JVMCompiler extends CLICompiler<K2JVMCompilerArguments, K2JVMComp
|
||||
JetCoreEnvironment environment = JetCoreEnvironment.createCoreEnvironmentForJVM(rootDisposable, compilerConfiguration, mode);
|
||||
boolean builtins = mode == CompilerSpecialMode.BUILTINS;
|
||||
K2JVMCompileEnvironmentConfiguration configuration = new K2JVMCompileEnvironmentConfiguration(
|
||||
environment, messageCollector, arguments.script, builtins
|
||||
? BuiltinsScopeExtensionMode.ONLY_STANDARD_CLASSES
|
||||
: BuiltinsScopeExtensionMode.ALL, builtins);
|
||||
environment, messageCollector, arguments.script,
|
||||
builtins ? BuiltinsScopeExtensionMode.ONLY_STANDARD_CLASSES : BuiltinsScopeExtensionMode.ALL,
|
||||
builtins,
|
||||
builtins ? BuiltinToJavaTypesMapping.DISABLED : BuiltinToJavaTypesMapping.ENABLED);
|
||||
|
||||
messageCollector.report(CompilerMessageSeverity.LOGGING, "Configuring the compilation environment",
|
||||
CompilerMessageLocation.NO_LOCATION);
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.cli.common.messages.MessageCollector;
|
||||
import org.jetbrains.jet.cli.jvm.CompilerConfigurationUtl;
|
||||
import org.jetbrains.jet.codegen.BuiltinToJavaTypesMapping;
|
||||
import org.jetbrains.jet.codegen.ClassFileFactory;
|
||||
import org.jetbrains.jet.codegen.GeneratedClassLoader;
|
||||
import org.jetbrains.jet.codegen.GenerationState;
|
||||
@@ -148,7 +149,8 @@ public class CompileEnvironmentUtil {
|
||||
|
||||
GenerationState generationState = KotlinToJVMBytecodeCompiler
|
||||
.analyzeAndGenerate(new K2JVMCompileEnvironmentConfiguration(scriptEnvironment, messageCollector, false,
|
||||
BuiltinsScopeExtensionMode.ALL, false), false);
|
||||
BuiltinsScopeExtensionMode.ALL, false,
|
||||
BuiltinToJavaTypesMapping.ENABLED), false);
|
||||
if (generationState == null) {
|
||||
throw new CompileEnvironmentException("Module script " + moduleScriptFile + " analyze failed");
|
||||
}
|
||||
|
||||
+8
-1
@@ -20,6 +20,7 @@ import com.intellij.openapi.util.Disposer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.cli.common.CompileEnvironmentConfiguration;
|
||||
import org.jetbrains.jet.cli.common.messages.MessageCollector;
|
||||
import org.jetbrains.jet.codegen.BuiltinToJavaTypesMapping;
|
||||
import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode;
|
||||
|
||||
/**
|
||||
@@ -30,6 +31,7 @@ public class K2JVMCompileEnvironmentConfiguration extends CompileEnvironmentConf
|
||||
private final boolean script;
|
||||
private final BuiltinsScopeExtensionMode builtinsScopeExtensionMode;
|
||||
private final boolean stubs;
|
||||
private final BuiltinToJavaTypesMapping builtinToJavaTypesMapping;
|
||||
|
||||
/**
|
||||
* NOTE: It's very important to call dispose for every object of this class or there will be memory leaks.
|
||||
@@ -37,12 +39,13 @@ public class K2JVMCompileEnvironmentConfiguration extends CompileEnvironmentConf
|
||||
* @see Disposer
|
||||
*/
|
||||
public K2JVMCompileEnvironmentConfiguration(@NotNull JetCoreEnvironment environment, @NotNull MessageCollector messageCollector,
|
||||
boolean script, BuiltinsScopeExtensionMode builtinsScopeExtensionMode, boolean stubs) {
|
||||
boolean script, BuiltinsScopeExtensionMode builtinsScopeExtensionMode, boolean stubs, BuiltinToJavaTypesMapping builtinToJavaTypesMapping) {
|
||||
super(messageCollector);
|
||||
this.environment = environment;
|
||||
this.script = script;
|
||||
this.builtinsScopeExtensionMode = builtinsScopeExtensionMode;
|
||||
this.stubs = stubs;
|
||||
this.builtinToJavaTypesMapping = builtinToJavaTypesMapping;
|
||||
}
|
||||
|
||||
public JetCoreEnvironment getEnvironment() {
|
||||
@@ -61,4 +64,8 @@ public class K2JVMCompileEnvironmentConfiguration extends CompileEnvironmentConf
|
||||
public boolean isStubs() {
|
||||
return stubs;
|
||||
}
|
||||
|
||||
public BuiltinToJavaTypesMapping getBuiltinToJavaTypesMapping() {
|
||||
return builtinToJavaTypesMapping;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -320,7 +320,7 @@ public class KotlinToJVMBytecodeCompiler {
|
||||
};
|
||||
GenerationState generationState = new GenerationState(project, ClassBuilderFactories.binaries(stubs), backendProgress,
|
||||
exhaust, environment.getSourceFiles(),
|
||||
configuration.getEnvironment().getCompilerSpecialMode());
|
||||
configuration.getBuiltinToJavaTypesMapping());
|
||||
generationState.compileCorrectFiles(CompilationErrorHandler.THROW_EXCEPTION);
|
||||
|
||||
List<CompilerPlugin> plugins = configuration.getCompilerPlugins();
|
||||
|
||||
@@ -35,6 +35,7 @@ import org.jetbrains.jet.cli.common.messages.MessageCollector;
|
||||
import org.jetbrains.jet.cli.common.messages.MessageCollectorToString;
|
||||
import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.codegen.BuiltinToJavaTypesMapping;
|
||||
import org.jetbrains.jet.codegen.ClassBuilderFactories;
|
||||
import org.jetbrains.jet.codegen.CompilationErrorHandler;
|
||||
import org.jetbrains.jet.codegen.GenerationState;
|
||||
@@ -239,7 +240,7 @@ public class ReplInterpreter {
|
||||
|
||||
GenerationState generationState = new GenerationState(jetCoreEnvironment.getProject(), ClassBuilderFactories.binaries(false), backendProgress,
|
||||
AnalyzeExhaust.success(trace.getBindingContext()), Collections.singletonList(psiFile),
|
||||
jetCoreEnvironment.getCompilerSpecialMode());
|
||||
BuiltinToJavaTypesMapping.ENABLED);
|
||||
generationState.compileScript(psiFile.getScript(), scriptClassName, earierScripts, CompilationErrorHandler.THROW_EXCEPTION);
|
||||
|
||||
for (String file : generationState.getFactory().files()) {
|
||||
|
||||
Reference in New Issue
Block a user