Compiler inline on/off flag

This commit is contained in:
Mikhael Bogdanov
2013-11-22 17:12:17 +04:00
parent 4079735bf2
commit 8533fd64ff
21 changed files with 167 additions and 12 deletions
@@ -33,7 +33,7 @@ import org.jetbrains.jet.cli.AbstractKotlincExecutableTest;
@InnerTestClasses({KotlincExecutableTestGenerated.Jvm.class, KotlincExecutableTestGenerated.Js.class})
public class KotlincExecutableTestGenerated extends AbstractKotlincExecutableTest {
@TestMetadata("compiler/testData/cli/jvm")
@InnerTestClasses({Jvm.WrongAbiVersionLib.class})
@InnerTestClasses({Jvm.Inline.class, Jvm.WrongAbiVersionLib.class})
public static class Jvm extends AbstractKotlincExecutableTest {
public void testAllFilesPresentInJvm() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/cli/jvm"), Pattern.compile("^(.+)\\.args$"), true);
@@ -104,6 +104,29 @@ public class KotlincExecutableTestGenerated extends AbstractKotlincExecutableTes
doJvmTest("compiler/testData/cli/jvm/wrongKotlinSignature.args");
}
@TestMetadata("compiler/testData/cli/jvm/inline")
public static class Inline extends AbstractKotlincExecutableTest {
public void testAllFilesPresentInInline() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/cli/jvm/inline"), Pattern.compile("^(.+)\\.args$"), true);
}
@TestMetadata("off.args")
public void testOff() throws Exception {
doJvmTest("compiler/testData/cli/jvm/inline/off.args");
}
@TestMetadata("on.args")
public void testOn() throws Exception {
doJvmTest("compiler/testData/cli/jvm/inline/on.args");
}
@TestMetadata("wrong.args")
public void testWrong() throws Exception {
doJvmTest("compiler/testData/cli/jvm/inline/wrong.args");
}
}
@TestMetadata("compiler/testData/cli/jvm/wrongAbiVersionLib")
@InnerTestClasses({})
public static class WrongAbiVersionLib extends AbstractKotlincExecutableTest {
@@ -121,6 +144,7 @@ public class KotlincExecutableTestGenerated extends AbstractKotlincExecutableTes
public static Test innerSuite() {
TestSuite suite = new TestSuite("Jvm");
suite.addTestSuite(Jvm.class);
suite.addTestSuite(Inline.class);
suite.addTest(WrongAbiVersionLib.innerSuite());
return suite;
}
@@ -31,6 +31,7 @@ import org.jetbrains.jet.codegen.state.Progress;
import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.lang.resolve.AnalyzingUtils;
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
import org.jetbrains.jet.lang.types.lang.InlineUtil;
import org.jetbrains.jet.utils.ExceptionUtils;
import java.io.File;
@@ -60,7 +61,8 @@ public class CodegenTestUtil {
environment.getProject(), ClassBuilderFactories.TEST, Progress.DEAF, analyzeExhaust.getBindingContext(), files.getPsiFiles(),
configuration.get(JVMConfigurationKeys.GENERATE_NOT_NULL_ASSERTIONS, true),
configuration.get(JVMConfigurationKeys.GENERATE_NOT_NULL_PARAMETER_ASSERTIONS, true),
/*generateDeclaredClasses = */true
/*generateDeclaredClasses = */true,
configuration.get(JVMConfigurationKeys.ENABLE_INLINE, InlineUtil.DEFAULT_INLINE_FLAG_FOR_TEST)
);
KotlinCodegenFacade.compileCorrectFiles(state, CompilationErrorHandler.THROW_EXCEPTION);
return state.getFactory();
@@ -25,6 +25,7 @@ import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
import org.jetbrains.jet.lang.types.lang.InlineUtil;
import java.util.Collections;
import java.util.List;
@@ -57,7 +58,8 @@ public class GenerationUtils {
@NotNull
public static GenerationState compileFilesGetGenerationState(@NotNull Project project, @NotNull AnalyzeExhaust analyzeExhaust, @NotNull List<JetFile> files) {
analyzeExhaust.throwIfError();
GenerationState state = new GenerationState(project, ClassBuilderFactories.TEST, analyzeExhaust.getBindingContext(), files);
GenerationState state = new GenerationState(project, ClassBuilderFactories.TEST, analyzeExhaust.getBindingContext(), files,
InlineUtil.DEFAULT_INLINE_FLAG_FOR_TEST);
KotlinCodegenFacade.compileCorrectFiles(state, CompilationErrorHandler.THROW_EXCEPTION);
return state;
}