Merge remote-tracking branch 'origin/master'
Conflicts: build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentConfiguration.java compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java compiler/tests/org/jetbrains/jet/JetTestUtils.java compiler/tests/org/jetbrains/jet/codegen/CompileTextTest.java
This commit is contained in:
@@ -30,8 +30,10 @@ import com.intellij.testFramework.LightVirtualFile;
|
||||
import com.intellij.testFramework.TestDataFile;
|
||||
import com.intellij.testFramework.UsefulTestCase;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
import org.jetbrains.jet.plugin.JetLanguage;
|
||||
|
||||
import java.io.File;
|
||||
@@ -65,14 +67,26 @@ public abstract class JetLiteFixture extends UsefulTestCase {
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk();
|
||||
}
|
||||
|
||||
protected void createEnvironmentWithMockJdk() {
|
||||
if (myEnvironment != null) {
|
||||
throw new IllegalStateException("must not set up myEnvironemnt twice");
|
||||
}
|
||||
myEnvironment = JetTestUtils.createEnvironmentWithMockJdk(getTestRootDisposable());
|
||||
}
|
||||
|
||||
protected void createEnvironmentWithMockJdk(@NotNull CompilerSpecialMode compilerSpecialMode) {
|
||||
if (myEnvironment != null) {
|
||||
throw new IllegalStateException("must not set up myEnvironemnt twice");
|
||||
}
|
||||
myEnvironment = JetTestUtils.createEnvironmentWithMockJdk(getTestRootDisposable(), compilerSpecialMode);
|
||||
}
|
||||
|
||||
protected void createEnvironmentWithFullJdk() {
|
||||
if (myEnvironment != null) {
|
||||
throw new IllegalStateException("must not set up myEnvironemnt twice");
|
||||
}
|
||||
myEnvironment = JetTestUtils.createEnvironmentWithFullJdk(getTestRootDisposable());
|
||||
}
|
||||
|
||||
|
||||
@@ -26,9 +26,9 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
|
||||
import org.jetbrains.jet.lang.diagnostics.UnresolvedReferenceDiagnosticFactory;
|
||||
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
|
||||
import org.jetbrains.jet.lang.diagnostics.Severity;
|
||||
import org.jetbrains.jet.lang.diagnostics.UnresolvedReferenceDiagnosticFactory;
|
||||
import org.jetbrains.jet.lang.diagnostics.rendering.DefaultErrorMessages;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
@@ -163,9 +163,7 @@ public class JetTestUtils {
|
||||
|
||||
public static AnalyzeExhaust analyzeFile(@NotNull JetFile namespace, @NotNull JetControlFlowDataTraceFactory flowDataTraceFactory) {
|
||||
return AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegration(namespace, flowDataTraceFactory,
|
||||
CompileCompilerDependenciesTest
|
||||
.compilerDependenciesForTests(CompilerSpecialMode.REGULAR,
|
||||
true));
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.REGULAR, true));
|
||||
}
|
||||
|
||||
public static JetCoreEnvironment createEnvironmentWithMockJdk(Disposable disposable) {
|
||||
@@ -173,8 +171,10 @@ public class JetTestUtils {
|
||||
}
|
||||
|
||||
public static JetCoreEnvironment createEnvironmentWithMockJdk(Disposable disposable, @NotNull CompilerSpecialMode compilerSpecialMode) {
|
||||
return JetCoreEnvironment.getCoreEnvironmentForJVM(disposable, CompileCompilerDependenciesTest
|
||||
.compilerDependenciesForTests(compilerSpecialMode, true));
|
||||
JetCoreEnvironment environment =
|
||||
new JetCoreEnvironment(disposable, CompileCompilerDependenciesTest.compilerDependenciesForTests(compilerSpecialMode, true));
|
||||
environment.addToClasspath(getAnnotationsJar());
|
||||
return environment;
|
||||
}
|
||||
|
||||
public static File findMockJdkRtJar() {
|
||||
@@ -234,7 +234,7 @@ public class JetTestUtils {
|
||||
public static final Pattern FILE_PATTERN = Pattern.compile("//\\s*FILE:\\s*(.*)$", Pattern.MULTILINE);
|
||||
|
||||
public static JetCoreEnvironment createEnvironmentWithFullJdk(Disposable disposable) {
|
||||
return JetCoreEnvironment.getCoreEnvironmentForJVM(disposable,
|
||||
return new JetCoreEnvironment(disposable,
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.REGULAR, false));
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ import org.jetbrains.jet.JetTestUtils;
|
||||
import org.jetbrains.jet.lang.cfg.LoopInfo;
|
||||
import org.jetbrains.jet.lang.cfg.pseudocode.*;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
@@ -42,7 +43,7 @@ public class JetControlFlowTest extends JetLiteFixture {
|
||||
static {
|
||||
System.setProperty("idea.platform.prefix", "Idea");
|
||||
}
|
||||
|
||||
|
||||
private String myName;
|
||||
|
||||
public JetControlFlowTest(String dataPath, String name) {
|
||||
@@ -50,6 +51,13 @@ public class JetControlFlowTest extends JetLiteFixture {
|
||||
myName = name;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.STDLIB);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "test" + myName;
|
||||
|
||||
@@ -40,6 +40,13 @@ public class CheckerTestUtilTest extends JetLiteFixture {
|
||||
super("diagnostics/checkerTestUtil");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk();
|
||||
}
|
||||
|
||||
|
||||
protected void doTest(TheTest theTest) throws Exception {
|
||||
prepareForTest("test");
|
||||
theTest.test(myFile);
|
||||
|
||||
@@ -54,6 +54,12 @@ public class JetDiagnosticsTest extends JetLiteFixture {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.STDLIB);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "test" + name;
|
||||
@@ -169,7 +175,7 @@ public class JetDiagnosticsTest extends JetLiteFixture {
|
||||
|
||||
BindingContext bindingContext = AnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(
|
||||
getProject(), jetFiles, Predicates.<PsiFile>alwaysTrue(), JetControlFlowDataTraceFactory.EMPTY,
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.REGULAR, true))
|
||||
myEnvironment.getCompilerDependencies())
|
||||
.getBindingContext();
|
||||
|
||||
boolean ok = true;
|
||||
|
||||
@@ -54,7 +54,7 @@ public class JavaDescriptorResolverTest extends TestCaseWithTmpdir {
|
||||
jetCoreEnvironment.addToClasspath(tmpdir);
|
||||
|
||||
InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.JDK_HEADERS, true), jetCoreEnvironment.getProject());
|
||||
jetCoreEnvironment.getCompilerDependencies(), jetCoreEnvironment.getProject());
|
||||
JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver();
|
||||
ClassDescriptor classDescriptor = javaDescriptorResolver.resolveClass(fqName, DescriptorSearchRule.ERROR_IF_FOUND_IN_KOTLIN);
|
||||
Assert.assertNotNull(classDescriptor);
|
||||
|
||||
@@ -88,7 +88,7 @@ public class ReadJavaBinaryClassTest extends TestCaseWithTmpdir {
|
||||
|
||||
BindingContext bindingContext = AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegrationAndCheckForErrors(
|
||||
psiFile, JetControlFlowDataTraceFactory.EMPTY,
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.JDK_HEADERS, true))
|
||||
jetCoreEnvironment.getCompilerDependencies())
|
||||
.getBindingContext();
|
||||
return bindingContext.get(BindingContext.FQNAME_TO_NAMESPACE_DESCRIPTOR, FqName.topLevel("test"));
|
||||
}
|
||||
@@ -116,7 +116,7 @@ public class ReadJavaBinaryClassTest extends TestCaseWithTmpdir {
|
||||
jetCoreEnvironment.addToClasspath(new File("out/production/runtime"));
|
||||
|
||||
InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.JDK_HEADERS, true), jetCoreEnvironment.getProject());
|
||||
jetCoreEnvironment.getCompilerDependencies(), jetCoreEnvironment.getProject());
|
||||
JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver();
|
||||
return javaDescriptorResolver.resolveNamespace(FqName.topLevel("test"), DescriptorSearchRule.ERROR_IF_FOUND_IN_KOTLIN);
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ public class ReadKotlinBinaryClassTest extends TestCaseWithTmpdir {
|
||||
jetCoreEnvironment.addToClasspath(new File("out/production/runtime"));
|
||||
|
||||
InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.JDK_HEADERS, true), jetCoreEnvironment.getProject());
|
||||
jetCoreEnvironment.getCompilerDependencies(), jetCoreEnvironment.getProject());
|
||||
JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver();
|
||||
NamespaceDescriptor namespaceFromClass = javaDescriptorResolver.resolveNamespace(FqName.topLevel("test"), DescriptorSearchRule.ERROR_IF_FOUND_IN_KOTLIN);
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import jet.JetObject;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
import java.lang.reflect.Constructor;
|
||||
@@ -24,6 +25,13 @@ import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class AnnotationGenTest extends CodegenTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
public void testPropField() throws NoSuchFieldException, NoSuchMethodException {
|
||||
loadText("[Deprecated] var x = 0");
|
||||
Class aClass = generateNamespaceClass();
|
||||
|
||||
@@ -16,9 +16,18 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class ArrayGenTest extends CodegenTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
public void testKt238 () throws Exception {
|
||||
blackBoxFile("regressions/kt238.jet");
|
||||
}
|
||||
@@ -237,7 +246,7 @@ public class ArrayGenTest extends CodegenTestCase {
|
||||
public void testCollectionAssignGetMultiIndex () throws Exception {
|
||||
loadText("import java.util.ArrayList\n" +
|
||||
"fun box() : String { val s = ArrayList<String>(1); s.add(\"\"); s [1, -1] = \"5\"; s[2, -2] += \"7\"; return s[2,-2] }\n" +
|
||||
"fun ArrayList<String>.get(index1: Int, index2 : Int) = this[index1+index2]\n" +
|
||||
"fun ArrayList<String>.get(index1: Int, index2 : Int) = this[index1+index2]!!\n" +
|
||||
"fun ArrayList<String>.set(index1: Int, index2 : Int, elem: String) { this[index1+index2] = elem }\n");
|
||||
// System.out.println(generateToText());
|
||||
Method foo = generateFunction("box");
|
||||
@@ -257,7 +266,7 @@ public class ArrayGenTest extends CodegenTestCase {
|
||||
public void testCollectionGetMultiIndex () throws Exception {
|
||||
loadText("import java.util.ArrayList\n" +
|
||||
"fun box() : String { val s = ArrayList<String>(1); s.add(\"\"); s [1, -1] = \"5\"; return s[2, -2] }\n" +
|
||||
"fun ArrayList<String>.get(index1: Int, index2 : Int) = this[index1+index2]\n" +
|
||||
"fun ArrayList<String>.get(index1: Int, index2 : Int) = this[index1+index2]!!\n" +
|
||||
"fun ArrayList<String>.set(index1: Int, index2 : Int, elem: String) { this[index1+index2] = elem }\n");
|
||||
// System.out.println(generateToText());
|
||||
Method foo = generateFunction("box");
|
||||
|
||||
@@ -16,8 +16,11 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
public class BridgeMethodGenTest extends CodegenTestCase {
|
||||
public void testBridgeMethod () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("bridge.jet");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Modifier;
|
||||
@@ -26,7 +28,14 @@ import java.util.List;
|
||||
* @author alex.tkachman
|
||||
*/
|
||||
public class ClassGenTest extends CodegenTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
}
|
||||
|
||||
public void testPSVMClass() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile("classes/simpleClass.jet");
|
||||
|
||||
final Class aClass = loadClass("SimpleClass", generateClassesInFile());
|
||||
@@ -37,6 +46,7 @@ public class ClassGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testArrayListInheritance() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile("classes/inheritingFromArrayList.jet");
|
||||
// System.out.println(generateToText());
|
||||
final Class aClass = loadClass("Foo", generateClassesInFile());
|
||||
@@ -44,30 +54,37 @@ public class ClassGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testInheritanceAndDelegation_DelegatingDefaultConstructorProperties() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/inheritance.jet");
|
||||
}
|
||||
|
||||
public void testInheritanceAndDelegation2() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/delegation2.kt");
|
||||
}
|
||||
|
||||
public void testFunDelegation() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/funDelegation.jet");
|
||||
}
|
||||
|
||||
public void testPropertyDelegation() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/propertyDelegation.jet");
|
||||
}
|
||||
|
||||
public void testDiamondInheritance() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/diamondInheritance.jet");
|
||||
}
|
||||
|
||||
public void testRightHandOverride() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/rightHandOverride.jet");
|
||||
}
|
||||
|
||||
public void testNewInstanceExplicitConstructor() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile("classes/newInstanceDefaultConstructor.jet");
|
||||
// System.out.println(generateToText());
|
||||
final Method method = generateFunction("test");
|
||||
@@ -76,18 +93,22 @@ public class ClassGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testInnerClass() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/innerClass.jet");
|
||||
}
|
||||
|
||||
public void testInheritedInnerClass() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/inheritedInnerClass.jet");
|
||||
}
|
||||
|
||||
public void testInitializerBlock() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/initializerBlock.jet");
|
||||
}
|
||||
|
||||
public void testAbstractMethod() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("abstract class Foo { abstract fun x(): String; fun y(): Int = 0 }");
|
||||
|
||||
final ClassFileFactory codegens = generateClassesInFile();
|
||||
@@ -97,34 +118,42 @@ public class ClassGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testInheritedMethod() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/inheritedMethod.jet");
|
||||
}
|
||||
|
||||
public void testInitializerBlockDImpl() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/initializerBlockDImpl.jet");
|
||||
}
|
||||
|
||||
public void testPropertyInInitializer() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/propertyInInitializer.jet");
|
||||
}
|
||||
|
||||
public void testOuterThis() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/outerThis.jet");
|
||||
}
|
||||
|
||||
public void testSecondaryConstructors() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/secondaryConstructors.jet");
|
||||
}
|
||||
|
||||
public void testExceptionConstructor() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/exceptionConstructor.jet");
|
||||
}
|
||||
|
||||
public void testSimpleBox() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/simpleBox.jet");
|
||||
}
|
||||
|
||||
public void testAbstractClass() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("abstract class SimpleClass() { }");
|
||||
|
||||
final Class aClass = createClassLoader(generateClassesInFile()).loadClass("SimpleClass");
|
||||
@@ -132,15 +161,18 @@ public class ClassGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testClassObject() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/classObject.jet");
|
||||
}
|
||||
|
||||
public void testClassObjectMethod() throws Exception {
|
||||
// todo to be implemented after removal of type info
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
// todo to be implemented after removal of type info
|
||||
// blackBoxFile("classes/classObjectMethod.jet");
|
||||
}
|
||||
|
||||
public void testClassObjectInterface() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile("classes/classObjectInterface.jet");
|
||||
final Method method = generateFunction();
|
||||
Object result = method.invoke(null);
|
||||
@@ -148,26 +180,32 @@ public class ClassGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testOverloadBinaryOperator() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/overloadBinaryOperator.jet");
|
||||
}
|
||||
|
||||
public void testOverloadUnaryOperator() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/overloadUnaryOperator.jet");
|
||||
}
|
||||
|
||||
public void testOverloadPlusAssign() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/overloadPlusAssign.jet");
|
||||
}
|
||||
|
||||
public void testOverloadPlusAssignReturn() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/overloadPlusAssignReturn.jet");
|
||||
}
|
||||
|
||||
public void testOverloadPlusToPlusAssign() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/overloadPlusToPlusAssign.jet");
|
||||
}
|
||||
|
||||
public void testEnumClass() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("enum class Direction { NORTH; SOUTH; EAST; WEST }");
|
||||
final Class direction = createClassLoader(generateClassesInFile()).loadClass("Direction");
|
||||
// System.out.println(generateToText());
|
||||
@@ -177,6 +215,7 @@ public class ClassGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testEnumConstantConstructors() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("enum class Color(val rgb: Int) { RED: Color(0xFF0000); GREEN: Color(0x00FF00); }");
|
||||
final Class colorClass = createClassLoader(generateClassesInFile()).loadClass("Color");
|
||||
final Field redField = colorClass.getField("RED");
|
||||
@@ -186,21 +225,25 @@ public class ClassGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testClassObjFields() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("class A() { class object { val value = 10 } }\n" +
|
||||
"fun box() = if(A.value == 10) \"OK\" else \"fail\"");
|
||||
blackBox();
|
||||
}
|
||||
|
||||
public void testKt249() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt249.jet");
|
||||
}
|
||||
|
||||
public void testKt48 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt48.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testKt309 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun box() = null");
|
||||
final Method method = generateFunction("box");
|
||||
assertEquals(method.getReturnType().getName(), "java.lang.Object");
|
||||
@@ -208,65 +251,78 @@ public class ClassGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testKt343 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt343.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testKt508 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile("regressions/kt508.jet");
|
||||
// System.out.println(generateToText());
|
||||
blackBox();
|
||||
}
|
||||
|
||||
public void testKt504 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile("regressions/kt504.jet");
|
||||
// System.out.println(generateToText());
|
||||
blackBox();
|
||||
}
|
||||
|
||||
public void testKt501 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt501.jet");
|
||||
}
|
||||
|
||||
public void testKt496 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt496.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testKt500 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt500.jet");
|
||||
}
|
||||
|
||||
public void testKt694 () throws Exception {
|
||||
// blackBoxFile("regressions/kt694.jet");
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
// blackBoxFile("regressions/kt694.jet");
|
||||
}
|
||||
|
||||
public void testKt285 () throws Exception {
|
||||
// blackBoxFile("regressions/kt285.jet");
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
// blackBoxFile("regressions/kt285.jet");
|
||||
}
|
||||
|
||||
public void testKt707 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt707.jet");
|
||||
}
|
||||
|
||||
public void testKt857 () throws Exception {
|
||||
// blackBoxFile("regressions/kt857.jet");
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
// blackBoxFile("regressions/kt857.jet");
|
||||
}
|
||||
|
||||
public void testKt903 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt903.jet");
|
||||
}
|
||||
|
||||
public void testKt940 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt940.kt");
|
||||
}
|
||||
|
||||
public void testKt1018 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1018.kt");
|
||||
}
|
||||
|
||||
public void testKt1120 () throws Exception {
|
||||
// createEnvironmentWithFullJdk();
|
||||
createEnvironmentWithFullJdk();
|
||||
// blackBoxFile("regressions/kt1120.kt");
|
||||
}
|
||||
|
||||
@@ -276,47 +332,58 @@ public class ClassGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testKt1134() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1134.kt");
|
||||
}
|
||||
|
||||
public void testKt1157() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1157.kt");
|
||||
}
|
||||
|
||||
public void testKt471() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt471.kt");
|
||||
}
|
||||
|
||||
public void testKt1213() throws Exception {
|
||||
// blackBoxFile("regressions/kt1213.kt");
|
||||
createEnvironmentWithMockJdk();
|
||||
// blackBoxFile("regressions/kt1213.kt");
|
||||
}
|
||||
|
||||
public void testKt723() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt723.kt");
|
||||
}
|
||||
|
||||
public void testKt725() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt725.kt");
|
||||
}
|
||||
|
||||
public void testKt633() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt633.kt");
|
||||
}
|
||||
|
||||
|
||||
public void testKt1345() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1345.kt");
|
||||
}
|
||||
|
||||
public void testKt1538() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1538.kt");
|
||||
}
|
||||
|
||||
public void testKt1759() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1759.kt");
|
||||
}
|
||||
|
||||
public void testResolveOrder() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("classes/resolveOrder.jet");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,10 +16,19 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
/**
|
||||
* @author max
|
||||
*/
|
||||
public class ClosuresGenTest extends CodegenTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
public void testSimplestClosure() throws Exception {
|
||||
blackBoxFile("classes/simplestClosure.jet");
|
||||
// System.out.println(generateToText());
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.resolve.AnalyzingUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
import org.jetbrains.jet.parsing.JetParsingTest;
|
||||
@@ -127,8 +128,9 @@ public abstract class CodegenTestCase extends JetLiteFixture {
|
||||
private GenerationState generateCommon(ClassBuilderFactory classBuilderFactory) {
|
||||
final AnalyzeExhaust analyzeExhaust = AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegrationAndCheckForErrors(
|
||||
myFile, JetControlFlowDataTraceFactory.EMPTY,
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.REGULAR, false));
|
||||
myEnvironment.getCompilerDependencies());
|
||||
analyzeExhaust.throwIfError();
|
||||
AnalyzingUtils.throwExceptionOnErrors(analyzeExhaust.getBindingContext());
|
||||
GenerationState state = new GenerationState(getProject(), classBuilderFactory, analyzeExhaust, Collections.singletonList(myFile));
|
||||
state.compileCorrectFiles(CompilationErrorHandler.THROW_EXCEPTION);
|
||||
return state;
|
||||
@@ -194,8 +196,7 @@ public abstract class CodegenTestCase extends JetLiteFixture {
|
||||
|
||||
r = method;
|
||||
}
|
||||
if (r == null)
|
||||
throw new AssertionError();
|
||||
if (r == null) { throw new AssertionError(); }
|
||||
return r;
|
||||
} catch (Error e) {
|
||||
System.out.println(generateToText());
|
||||
|
||||
@@ -16,24 +16,19 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.CompileCompilerDependenciesTest;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentConfiguration;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentUtil;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler;
|
||||
import org.jetbrains.jet.cli.common.messages.MessageCollector;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerDependencies;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class CompileTextTest extends CodegenTestCase {
|
||||
public void testMe() throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
|
||||
createEnvironmentWithMockJdk();
|
||||
String text = "import org.jetbrains.jet.codegen.CompileTextTest; fun x() = CompileTextTest()";
|
||||
CompilerDependencies dependencies = CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.REGULAR, false);
|
||||
JetCoreEnvironment environment = JetCoreEnvironment.getCoreEnvironmentForJVM(CompileEnvironmentUtil.createMockDisposable(), dependencies);
|
||||
CompileEnvironmentConfiguration configuration = new CompileEnvironmentConfiguration(environment, dependencies, MessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR);
|
||||
CompileEnvironmentConfiguration configuration = new CompileEnvironmentConfiguration(
|
||||
myEnvironment, MessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR);
|
||||
configuration.getEnvironment().addToClasspathFromClassLoader(getClass().getClassLoader());
|
||||
ClassLoader classLoader = KotlinToJVMBytecodeCompiler.compileText(configuration, text);
|
||||
Class<?> namespace = classLoader.loadClass("namespace");
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Arrays;
|
||||
@@ -31,6 +33,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testIf() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
|
||||
// System.out.println(generateToText());
|
||||
@@ -40,6 +43,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testSingleBranchIf() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
|
||||
// System.out.println(generateToText());
|
||||
@@ -61,6 +65,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
private void factorialTest(final String name) throws IllegalAccessException, InvocationTargetException {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile(name);
|
||||
|
||||
// System.out.println(generateToText());
|
||||
@@ -70,6 +75,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testContinue() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction();
|
||||
@@ -78,6 +84,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testIfNoElse() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction();
|
||||
@@ -86,6 +93,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testCondJumpOnStack() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("import java.lang.Boolean as jlBoolean; fun foo(a: String): Int = if (jlBoolean.parseBoolean(a)) 5 else 10");
|
||||
final Method main = generateFunction();
|
||||
assertEquals(5, main.invoke(null, "true"));
|
||||
@@ -93,6 +101,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testFor() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction();
|
||||
@@ -101,6 +110,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testIfBlock() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction();
|
||||
@@ -111,6 +121,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testForInArray() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction();
|
||||
@@ -119,6 +130,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testForInRange() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun foo(sb: StringBuilder) { for(x in 1..4) sb.append(x) }");
|
||||
final Method main = generateFunction();
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
@@ -127,6 +139,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testThrowCheckedException() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun foo() { throw Exception(); }");
|
||||
final Method main = generateFunction();
|
||||
boolean caught = false;
|
||||
@@ -141,6 +154,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testTryCatch() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction();
|
||||
@@ -149,6 +163,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testTryFinally() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction();
|
||||
@@ -168,30 +183,37 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testForUserType() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("controlStructures/forUserType.jet");
|
||||
}
|
||||
|
||||
public void testForIntArray() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("controlStructures/forIntArray.jet");
|
||||
}
|
||||
|
||||
public void testForPrimitiveIntArray() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("controlStructures/forPrimitiveIntArray.jet");
|
||||
}
|
||||
|
||||
public void testForNullableIntArray() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("controlStructures/forNullableIntArray.jet");
|
||||
}
|
||||
|
||||
public void testForIntRange() {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("controlStructures/forIntRange.jet");
|
||||
}
|
||||
|
||||
public void testKt237() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt237.jet");
|
||||
}
|
||||
|
||||
public void testCompareToNull() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun foo(a: String?, b: String?): Boolean = a == null && b !== null && null == a && null !== b");
|
||||
String text = generateToText();
|
||||
assertTrue(!text.contains("java/lang/Object.equals"));
|
||||
@@ -202,6 +224,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testCompareToNonnullableEq() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun foo(a: String?, b: String): Boolean = a == b || b == a");
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction();
|
||||
@@ -210,6 +233,7 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testCompareToNonnullableNotEq() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun foo(a: String?, b: String): Boolean = a != b");
|
||||
String text = generateToText();
|
||||
// System.out.println(text);
|
||||
@@ -220,15 +244,18 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testKt299() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt299.jet");
|
||||
}
|
||||
|
||||
public void testKt416() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt416.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testKt513() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt513.jet");
|
||||
}
|
||||
|
||||
@@ -238,31 +265,37 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testKt769() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt769.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testKt773() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt773.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testKt772() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt772.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testKt870() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt870.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testKt958() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt958.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testQuicksort() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("controlStructures/quicksort.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
@@ -280,18 +313,22 @@ public class ControlStructuresTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testKt1076() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1076.kt");
|
||||
}
|
||||
|
||||
public void testKt998() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt998.kt");
|
||||
}
|
||||
|
||||
public void testKt628() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt628.kt");
|
||||
}
|
||||
|
||||
public void testKt1441() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1441.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
/**
|
||||
@@ -29,6 +31,7 @@ public class ExtensionFunctionsTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testSimple() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
final Method foo = generateFunction("foo");
|
||||
final Character c = (Character) foo.invoke(null);
|
||||
@@ -36,6 +39,7 @@ public class ExtensionFunctionsTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testWhenFail() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
// System.out.println(generateToText());
|
||||
Method foo = generateFunction("foo");
|
||||
@@ -43,15 +47,18 @@ public class ExtensionFunctionsTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testVirtual() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("extensionFunctions/virtual.jet");
|
||||
}
|
||||
|
||||
public void testShared() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("extensionFunctions/shared.kt");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testKt475() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt475.jet");
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
@@ -23,6 +25,12 @@ import java.lang.reflect.Method;
|
||||
* @author alex.tkachman
|
||||
*/
|
||||
public class FunctionGenTest extends CodegenTestCase {
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
public void testDefaultArgs() throws Exception {
|
||||
blackBoxFile("functions/defaultargs.jet");
|
||||
// System.out.println(generateToText());
|
||||
@@ -101,4 +109,8 @@ public class FunctionGenTest extends CodegenTestCase {
|
||||
public void testLocalFunction () throws InvocationTargetException, IllegalAccessException {
|
||||
blackBoxFile("functions/localFunction.kt");
|
||||
}
|
||||
|
||||
public void testInvoke() {
|
||||
blackBoxFile("functions/invoke.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright 2010-2012 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
/**
|
||||
* Test correct code is generated for descriptors loaded as alt jdk headers
|
||||
*
|
||||
* @author Stepan Koltsov
|
||||
*/
|
||||
public class JdkHeadersTest extends CodegenTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.STDLIB);
|
||||
}
|
||||
|
||||
public void testArrayList() {
|
||||
blackBoxFile("jdk-headers/arrayList.kt");
|
||||
}
|
||||
|
||||
public void testHashMap() {
|
||||
blackBoxFile("jdk-headers/hashMap.kt");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,6 +19,7 @@ package org.jetbrains.jet.codegen;
|
||||
import jet.IntRange;
|
||||
import jet.Tuple2;
|
||||
import jet.Tuple4;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.awt.*;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
@@ -30,6 +31,13 @@ import java.util.Arrays;
|
||||
* @author yole
|
||||
*/
|
||||
public class NamespaceGenTest extends CodegenTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
public void testPSVM() throws Exception {
|
||||
loadFile("PSVM.jet");
|
||||
// System.out.println(generateToText());
|
||||
|
||||
@@ -16,11 +16,19 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
* @author alex.tkachman
|
||||
*/
|
||||
public class ObjectGenTest extends CodegenTestCase {
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
public void testSimpleObject() throws Exception {
|
||||
blackBoxFile("objects/simpleObject.jet");
|
||||
// System.out.println(generateToText());
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import jet.Tuple2;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
@@ -24,6 +25,13 @@ import java.lang.reflect.Method;
|
||||
* @author yole
|
||||
*/
|
||||
public class PatternMatchingTest extends CodegenTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getPrefix() {
|
||||
return "patternMatching";
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
/**
|
||||
@@ -23,6 +25,13 @@ import java.lang.reflect.Method;
|
||||
* @author alex.tkachman
|
||||
*/
|
||||
public class PrimitiveTypesTest extends CodegenTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
public void testPlus() throws Exception {
|
||||
loadText("fun f(a: Int, b: Int): Int { return a + b }");
|
||||
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
@@ -31,6 +33,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testPrivateVal() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
final Class aClass = loadImplementationClass(generateClassesInFile(), "PrivateVal");
|
||||
final Field[] fields = aClass.getDeclaredFields();
|
||||
@@ -40,6 +43,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testPrivateVar() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
final Class aClass = loadImplementationClass(generateClassesInFile(), "PrivateVar");
|
||||
final Object instance = aClass.newInstance();
|
||||
@@ -50,6 +54,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testPublicVar() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("class PublicVar() { public var foo : Int = 0; }");
|
||||
final Class aClass = loadImplementationClass(generateClassesInFile(), "PublicVar");
|
||||
final Object instance = aClass.newInstance();
|
||||
@@ -60,6 +65,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testAccessorsInInterface() {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("class AccessorsInInterface() { public var foo : Int = 0; }");
|
||||
final Class aClass = loadClass("AccessorsInInterface", generateClassesInFile());
|
||||
assertNotNull(findMethodByName(aClass, "getFoo"));
|
||||
@@ -67,6 +73,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testPrivatePropertyInNamespace() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("private val x = 239");
|
||||
final Class nsClass = generateNamespaceClass();
|
||||
final Field[] fields = nsClass.getDeclaredFields();
|
||||
@@ -79,6 +86,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testFieldPropertyAccess() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile("properties/fieldPropertyAccess.jet");
|
||||
// System.out.println(generateToText());
|
||||
final Method method = generateFunction();
|
||||
@@ -87,12 +95,14 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testFieldGetter() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("val now: Long get() = System.currentTimeMillis(); fun foo() = now");
|
||||
final Method method = generateFunction("foo");
|
||||
assertIsCurrentTime((Long) method.invoke(null));
|
||||
}
|
||||
|
||||
public void testFieldSetter() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
final Method method = generateFunction("append");
|
||||
method.invoke(null, "IntelliJ ");
|
||||
@@ -104,6 +114,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testFieldSetterPlusEq() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
final Method method = generateFunction("append");
|
||||
method.invoke(null, "IntelliJ ");
|
||||
@@ -112,6 +123,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testAccessorsWithoutBody() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("class AccessorsWithoutBody() { protected var foo: Int = 349\n get\n private set\n fun setter() { foo = 610; } } ");
|
||||
// System.out.println(generateToText());
|
||||
final Class aClass = loadImplementationClass(generateClassesInFile(), "AccessorsWithoutBody");
|
||||
@@ -129,6 +141,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testInitializersForNamespaceProperties() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("val x = System.currentTimeMillis()");
|
||||
final Method method = generateFunction("getX");
|
||||
method.setAccessible(true);
|
||||
@@ -136,6 +149,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testPropertyReceiverOnStack() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
final Class aClass = loadImplementationClass(generateClassesInFile(), "Evaluator");
|
||||
final Constructor constructor = aClass.getConstructor(StringBuilder.class);
|
||||
@@ -147,6 +161,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testAbstractVal() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("abstract class Foo { public abstract val x: String }");
|
||||
final ClassFileFactory codegens = generateClassesInFile();
|
||||
final Class aClass = loadClass("Foo", codegens);
|
||||
@@ -154,6 +169,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testVolatileProperty() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("abstract class Foo { public volatile var x: String = \"\"; }");
|
||||
// System.out.println(generateToText());
|
||||
final ClassFileFactory codegens = generateClassesInFile();
|
||||
@@ -163,15 +179,18 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testKt257 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt257.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testKt613 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt613.jet");
|
||||
}
|
||||
|
||||
public void testKt160() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("internal val s = java.lang.Double.toString(1.0)");
|
||||
final Method method = generateFunction("getS");
|
||||
method.setAccessible(true);
|
||||
@@ -179,10 +198,12 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testKt1165() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1165.kt");
|
||||
}
|
||||
|
||||
public void testKt1168() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1168.kt");
|
||||
}
|
||||
|
||||
@@ -192,14 +213,17 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testKt1159() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1159.kt");
|
||||
}
|
||||
|
||||
public void testKt1417() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1417.kt");
|
||||
}
|
||||
|
||||
public void testKt1398() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1398.kt");
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,15 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
public class SafeRefTest extends CodegenTestCase {
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
public void test247 () throws Exception {
|
||||
blackBoxFile("regressions/kt247.jet");
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
@@ -25,6 +27,12 @@ import java.lang.reflect.Method;
|
||||
*/
|
||||
public class StringsTest extends CodegenTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
public void testAnyToString () throws InvocationTargetException, IllegalAccessException {
|
||||
loadText("fun foo(x: Any) = x.toString()");
|
||||
// System.out.println(generateToText());
|
||||
|
||||
@@ -16,7 +16,16 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
public class SuperGenTest extends CodegenTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
public void testBasicProperty () {
|
||||
blackBoxFile("/super/basicproperty.jet");
|
||||
// System.out.println(generateToText());
|
||||
|
||||
@@ -21,7 +21,6 @@ import gnu.trove.THashSet;
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestCase;
|
||||
import junit.framework.TestSuite;
|
||||
import org.jetbrains.jet.CompileCompilerDependenciesTest;
|
||||
import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentConfiguration;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler;
|
||||
@@ -32,8 +31,6 @@ import org.jetbrains.jet.lang.psi.JetDeclaration;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerDependencies;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
import org.jetbrains.jet.parsing.JetParsingTest;
|
||||
|
||||
@@ -75,7 +72,6 @@ public class TestlibTest extends CodegenTestCase {
|
||||
|
||||
private TestSuite doBuildSuite() {
|
||||
try {
|
||||
CompilerDependencies compilerDependencies = CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.REGULAR, false);
|
||||
File junitJar = new File("libraries/lib/junit-4.9.jar");
|
||||
|
||||
if (!junitJar.exists()) {
|
||||
@@ -84,14 +80,14 @@ public class TestlibTest extends CodegenTestCase {
|
||||
|
||||
myEnvironment.addToClasspath(junitJar);
|
||||
|
||||
myEnvironment.addToClasspath(compilerDependencies.getRuntimeJar());
|
||||
myEnvironment.addToClasspath(myEnvironment.getCompilerDependencies().getRuntimeJar());
|
||||
|
||||
CoreLocalFileSystem localFileSystem = myEnvironment.getLocalFileSystem();
|
||||
myEnvironment.addSources(localFileSystem.findFileByPath(JetParsingTest.getTestDataDir() + "/../../libraries/stdlib/test"));
|
||||
myEnvironment.addSources(localFileSystem.findFileByPath(JetParsingTest.getTestDataDir() + "/../../libraries/kunit/src"));
|
||||
|
||||
GenerationState generationState = KotlinToJVMBytecodeCompiler
|
||||
.analyzeAndGenerate(new CompileEnvironmentConfiguration(myEnvironment, compilerDependencies, MessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR), false);
|
||||
.analyzeAndGenerate(new CompileEnvironmentConfiguration(myEnvironment, MessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR), false);
|
||||
|
||||
if (generationState == null) {
|
||||
throw new RuntimeException("There were compilation errors");
|
||||
|
||||
@@ -16,7 +16,16 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
public class TraitsTest extends CodegenTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getPrefix() {
|
||||
return "traits";
|
||||
|
||||
@@ -16,8 +16,11 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
public class TupleGenTest extends CodegenTestCase {
|
||||
public void testBasic() {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("/tuples/basic.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import jet.TypeCastException;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
@@ -25,6 +26,13 @@ import java.lang.reflect.Method;
|
||||
* @author alex.tkachman
|
||||
*/
|
||||
public class TypeInfoTest extends CodegenTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getPrefix() {
|
||||
return "typeInfo";
|
||||
|
||||
@@ -16,16 +16,18 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author alex.tkachman
|
||||
*/
|
||||
public class VarArgTest extends CodegenTestCase {
|
||||
public void testStringArray () throws InvocationTargetException, IllegalAccessException {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun test(vararg ts: String) = ts");
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction();
|
||||
@@ -34,6 +36,7 @@ public class VarArgTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testIntArray () throws InvocationTargetException, IllegalAccessException {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun test(vararg ts: Int) = ts");
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction();
|
||||
@@ -42,6 +45,7 @@ public class VarArgTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testIntArrayKotlinNoArgs () throws InvocationTargetException, IllegalAccessException {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun test() = testf(); fun testf(vararg ts: Int) = ts");
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction("test");
|
||||
@@ -50,6 +54,7 @@ public class VarArgTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testIntArrayKotlin () throws InvocationTargetException, IllegalAccessException {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun test() = testf(239, 7); fun testf(vararg ts: Int) = ts");
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction("test");
|
||||
@@ -60,6 +65,7 @@ public class VarArgTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testNullableIntArrayKotlin () throws InvocationTargetException, IllegalAccessException {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun test() = testf(239.toByte(), 7.toByte()); fun testf(vararg ts: Byte?) = ts");
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction("test");
|
||||
@@ -70,6 +76,7 @@ public class VarArgTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testIntArrayKotlinObj () throws InvocationTargetException, IllegalAccessException {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun test() = testf(\"239\"); fun testf(vararg ts: String) = ts");
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction("test");
|
||||
@@ -79,6 +86,7 @@ public class VarArgTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testArrayT () throws InvocationTargetException, IllegalAccessException {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("fun test() = _array(2, 4); fun <T> _array(vararg elements : T) = elements");
|
||||
// System.out.println(generateToText());
|
||||
final Method main = generateFunction("test");
|
||||
@@ -94,10 +102,12 @@ public class VarArgTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testKt797() {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt796_797.jet");
|
||||
}
|
||||
|
||||
public void testArrayAsVararg () throws InvocationTargetException, IllegalAccessException {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("private fun asList(vararg elems: String) = elems; fun test(ts: Array<String>) = asList(*ts); ");
|
||||
//System.out.println(generateToText());
|
||||
final Method main = generateFunction("test");
|
||||
@@ -106,6 +116,7 @@ public class VarArgTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testArrayAsVararg2 () throws InvocationTargetException, IllegalAccessException {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("private fun asList(vararg elems: String) = elems; fun test(ts1: Array<String>, ts2: String) = asList(*ts1, ts2); ");
|
||||
System.out.println(generateToText());
|
||||
final Method main = generateFunction("test");
|
||||
|
||||
@@ -41,6 +41,14 @@ import java.util.List;
|
||||
* @since 4/6/12
|
||||
*/
|
||||
public class DescriptorRendererTest extends JetLiteFixture {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk();
|
||||
}
|
||||
|
||||
|
||||
public void testGlobalProperties() throws IOException {
|
||||
doTest();
|
||||
}
|
||||
@@ -72,7 +80,7 @@ public class DescriptorRendererTest extends JetLiteFixture {
|
||||
AnalyzeExhaust analyzeExhaust =
|
||||
AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegration(
|
||||
(JetFile) psiFile, JetControlFlowDataTraceFactory.EMPTY,
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.REGULAR, true));
|
||||
myEnvironment.getCompilerDependencies());
|
||||
final BindingContext bindingContext = analyzeExhaust.getBindingContext();
|
||||
final List<DeclarationDescriptor> descriptors = new ArrayList<DeclarationDescriptor>();
|
||||
psiFile.acceptChildren(new JetVisitorVoid() {
|
||||
|
||||
@@ -27,6 +27,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.CompileCompilerDependenciesTest;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
|
||||
import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
|
||||
@@ -78,9 +79,13 @@ public abstract class ExpectedResolveData {
|
||||
private final Map<String, DeclarationDescriptor> nameToDescriptor;
|
||||
private final Map<String, PsiElement> nameToPsiElement;
|
||||
|
||||
public ExpectedResolveData(Map<String, DeclarationDescriptor> nameToDescriptor, Map<String, PsiElement> nameToPsiElement) {
|
||||
@NotNull
|
||||
private final JetCoreEnvironment jetCoreEnvironment;
|
||||
|
||||
public ExpectedResolveData(Map<String, DeclarationDescriptor> nameToDescriptor, Map<String, PsiElement> nameToPsiElement, @NotNull JetCoreEnvironment environment) {
|
||||
this.nameToDescriptor = nameToDescriptor;
|
||||
this.nameToPsiElement = nameToPsiElement;
|
||||
jetCoreEnvironment = environment;
|
||||
}
|
||||
|
||||
public final JetFile createFileFromMarkedUpText(String fileName, String text) {
|
||||
@@ -143,7 +148,7 @@ public abstract class ExpectedResolveData {
|
||||
|
||||
AnalyzeExhaust analyzeExhaust = AnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(project, files,
|
||||
Predicates.<PsiFile>alwaysTrue(), JetControlFlowDataTraceFactory.EMPTY,
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.REGULAR, true));
|
||||
jetCoreEnvironment.getCompilerDependencies());
|
||||
BindingContext bindingContext = analyzeExhaust.getBindingContext();
|
||||
for (Diagnostic diagnostic : bindingContext.getDiagnostics()) {
|
||||
if (diagnostic.getFactory() instanceof UnresolvedReferenceDiagnosticFactory) {
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.jet.JetLiteFixture;
|
||||
import org.jetbrains.jet.JetTestUtils;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,6 +33,9 @@ public abstract class ExtensibleResolveTestCase extends JetLiteFixture {
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.STDLIB);
|
||||
|
||||
expectedResolveData = getExpectedResolveData();
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import junit.framework.Test;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.CompileCompilerDependenciesTest;
|
||||
import org.jetbrains.jet.JetTestCaseBuilder;
|
||||
import org.jetbrains.jet.di.InjectorForJavaSemanticServices;
|
||||
import org.jetbrains.jet.di.InjectorForTests;
|
||||
@@ -37,8 +36,6 @@ import org.jetbrains.jet.lang.resolve.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.OverloadResolutionResults;
|
||||
import org.jetbrains.jet.lang.resolve.calls.ResolvedCall;
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.PsiClassFinder;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
@@ -103,7 +100,7 @@ public class JetResolveTest extends ExtensibleResolveTestCase {
|
||||
nameToDeclaration.put("java::java.lang.Number", java_lang_Number);
|
||||
nameToDeclaration.put("java::java.lang.Number.intValue()", java_lang_Number.findMethodsByName("intValue", true)[0]);
|
||||
|
||||
return new ExpectedResolveData(nameToDescriptor, nameToDeclaration) {
|
||||
return new ExpectedResolveData(nameToDescriptor, nameToDeclaration, myEnvironment) {
|
||||
@Override
|
||||
protected JetFile createJetFile(String fileName, String text) {
|
||||
return createCheckAndReturnPsiFile(fileName, text);
|
||||
@@ -127,7 +124,7 @@ public class JetResolveTest extends ExtensibleResolveTestCase {
|
||||
private PsiClass findClass(String qualifiedName) {
|
||||
Project project = getProject();
|
||||
InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.REGULAR, true), project);
|
||||
myEnvironment.getCompilerDependencies(), project);
|
||||
return injector.getPsiClassFinderForJvm().findPsiClass(new FqName(qualifiedName), PsiClassFinder.RuntimeClassesHandleMode.THROW);
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,14 @@ import org.jetbrains.jet.codegen.CodegenTestCase;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class JetNpeTest extends CodegenTestCase {
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void testStackTrace () {
|
||||
try {
|
||||
Intrinsics.throwNpe();
|
||||
|
||||
@@ -45,6 +45,7 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
|
||||
@Override
|
||||
public void setUp() throws Exception {
|
||||
super.setUp();
|
||||
super.createEnvironmentWithMockJdk();
|
||||
tc.setUp();
|
||||
}
|
||||
|
||||
@@ -67,7 +68,7 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
|
||||
assert aClass instanceof JetClass;
|
||||
AnalyzeExhaust bindingContext = AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegration(file,
|
||||
JetControlFlowDataTraceFactory.EMPTY,
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.REGULAR, true));
|
||||
myEnvironment.getCompilerDependencies());
|
||||
DeclarationDescriptor classDescriptor = bindingContext.getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, aClass);
|
||||
WritableScopeImpl scope = new WritableScopeImpl(libraryScope, root, RedeclarationHandler.DO_NOTHING);
|
||||
assert classDescriptor instanceof ClassifierDescriptor;
|
||||
|
||||
@@ -40,6 +40,7 @@ public class JetOverloadTest extends JetLiteFixture {
|
||||
@Override
|
||||
public void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk();
|
||||
InjectorForTests injector = new InjectorForTests(getProject());
|
||||
library = injector.getJetStandardLibrary();
|
||||
descriptorResolver = injector.getDescriptorResolver();
|
||||
|
||||
@@ -40,6 +40,7 @@ public class JetOverridingTest extends JetLiteFixture {
|
||||
@Override
|
||||
public void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createEnvironmentWithMockJdk();
|
||||
InjectorForTests injector = new InjectorForTests(getProject());
|
||||
library = injector.getJetStandardLibrary();
|
||||
descriptorResolver = injector.getDescriptorResolver();
|
||||
|
||||
@@ -66,6 +66,9 @@ public class JetTypeCheckerTest extends JetLiteFixture {
|
||||
@Override
|
||||
public void setUp() throws Exception {
|
||||
super.setUp();
|
||||
|
||||
super.createEnvironmentWithMockJdk();
|
||||
|
||||
library = JetStandardLibrary.getInstance();
|
||||
classDefinitions = new ClassDefinitions();
|
||||
|
||||
@@ -587,7 +590,7 @@ public class JetTypeCheckerTest extends JetLiteFixture {
|
||||
WritableScopeImpl writableScope = new WritableScopeImpl(scope, scope.getContainingDeclaration(), RedeclarationHandler.DO_NOTHING);
|
||||
writableScope.importScope(library.getLibraryScope());
|
||||
InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(
|
||||
CompileCompilerDependenciesTest.compilerDependenciesForTests(CompilerSpecialMode.REGULAR, true), getProject());
|
||||
myEnvironment.getCompilerDependencies(), getProject());
|
||||
JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver();
|
||||
writableScope.importScope(javaDescriptorResolver.resolveNamespace(FqName.ROOT,
|
||||
DescriptorSearchRule.INCLUDE_KOTLIN).getMemberScope());
|
||||
|
||||
Reference in New Issue
Block a user