Only use script parameters from definition

Passing parameters of a _single_ script into TopDownAnalyser makes no sense
This commit is contained in:
Andrey Breslav
2014-03-28 23:36:40 +04:00
parent 086e16f67f
commit 77261330b9
35 changed files with 65 additions and 149 deletions
@@ -41,7 +41,10 @@ import org.jetbrains.jet.codegen.state.Progress;
import org.jetbrains.jet.config.CommonConfigurationKeys;
import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.parsing.JetScriptDefinition;
import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.ScriptNameUtil;
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
@@ -221,6 +224,12 @@ public class KotlinToJVMBytecodeCompiler {
@Nullable
public static Class<?> compileScript(@NotNull KotlinPaths paths, @NotNull JetCoreEnvironment environment) {
List<AnalyzerScriptParameter> scriptParameters = environment.getConfiguration().getList(JVMConfigurationKeys.SCRIPT_PARAMETERS);
if (!scriptParameters.isEmpty()) {
JetScriptDefinitionProvider.getInstance(environment.getProject()).addScriptDefinition(
new JetScriptDefinition(".kts", scriptParameters)
);
}
GenerationState state = analyzeAndGenerate(environment);
if (state == null) {
return null;
@@ -272,7 +281,6 @@ public class KotlinToJVMBytecodeCompiler {
environment.getProject(),
environment.getSourceFiles(),
sharedTrace,
environment.getConfiguration().getList(JVMConfigurationKeys.SCRIPT_PARAMETERS),
Predicates.<PsiFile>alwaysTrue(),
false,
sharedModule,
@@ -108,8 +108,8 @@ public class ReplInterpreter {
new ExceptionTracker(), // dummy
Predicates.<PsiFile>alwaysTrue(),
false,
true,
Collections.<AnalyzerScriptParameter>emptyList());
true
);
injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module, MemberFilter.ALWAYS_TRUE);
topDownAnalysisContext = new TopDownAnalysisContext(topDownAnalysisParameters);
module.addFragmentProvider(SOURCES, injector.getTopDownAnalyzer().getPackageFragmentProvider());