make most codegen tests are indenendent from jdk-headers/stdlib now

This commit is contained in:
Stepan Koltsov
2012-05-01 23:49:22 +04:00
parent 518f50692f
commit 5e77ca553c
33 changed files with 232 additions and 176 deletions
@@ -12,7 +12,7 @@ class ArrayWrapper<T>() {
} }
fun get(index: Int): T { fun get(index: Int): T {
return contents.get(index) return contents.get(index)!!
} }
} }
@@ -15,7 +15,7 @@ class ArrayWrapper<T>() {
} }
fun get(index: Int): T { fun get(index: Int): T {
return contents.get(index) return contents.get(index)!!
} }
} }
@@ -15,7 +15,7 @@ class ArrayWrapper<T>() {
} }
fun get(index: Int): T { fun get(index: Int): T {
return contents.get(index) return contents.get(index)!!
} }
} }
@@ -15,7 +15,7 @@ class ArrayWrapper<T>() {
} }
fun get(index: Int): T { fun get(index: Int): T {
return contents.get(index) return contents.get(index)!!
} }
} }
@@ -19,28 +19,28 @@ fun box() : String {
val c1: java.lang.Iterable<Int> = MyCollection1() val c1: java.lang.Iterable<Int> = MyCollection1()
sum = 0 sum = 0
for (el in c1) { for (el in c1) {
sum = sum + el sum = sum + el!!
} }
if(sum != 15) return "c1 failed" if(sum != 15) return "c1 failed"
val c2 = MyCollection1() val c2 = MyCollection1()
sum = 0 sum = 0
for (el in c2) { for (el in c2) {
sum = sum + el sum = sum + el!!
} }
if(sum != 15) return "c2 failed" if(sum != 15) return "c2 failed"
val c3: Iterable<Int> = MyCollection2() val c3: Iterable<Int> = MyCollection2()
sum = 0 sum = 0
for (el in c3) { for (el in c3) {
sum = sum + el sum = sum + el!!
} }
if(sum != 15) return "c3 failed" if(sum != 15) return "c3 failed"
val c4 = MyCollection2() val c4 = MyCollection2()
sum = 0 sum = 0
for (el in c4) { for (el in c4) {
sum = sum + el sum = sum + el!!
} }
if(sum != 15) return "c4 failed" if(sum != 15) return "c4 failed"
@@ -50,7 +50,7 @@ fun box() : String {
} }
sum = 0 sum = 0
for (el in a) { for (el in a) {
sum = sum + el sum = sum + el!!
} }
if(sum != 10) return "a failed" if(sum != 10) return "a failed"
@@ -69,7 +69,7 @@ fun box() : String {
val c7 = MyCollection5() val c7 = MyCollection5()
sum = 0 sum = 0
for (el in c7) { for (el in c7) {
sum = sum + el sum = sum + el!!
} }
if(sum != 0) return "c7 failed" if(sum != 0) return "c7 failed"
+21 -12
View File
@@ -1,5 +1,3 @@
import java.util.ArrayList
class MyNumber(val i: Int) { class MyNumber(val i: Int) {
fun inc(): MyNumber = MyNumber(i+1) fun inc(): MyNumber = MyNumber(i+1)
} }
@@ -52,21 +50,32 @@ fun test6() : Boolean {
return true return true
} }
// ArrayList without jdk-headers cannot be used in these tests
class MyArrayList<T>(var value: T) {
fun get(index: Int): T {
if (index != 17)
throw Exception()
return value
}
fun set(index: Int, value: T): Unit {
if (index != 17)
throw Exception()
this.value = value
}
}
fun test7() : Boolean { fun test7() : Boolean {
var mnr = ArrayList<MyNumber>() var mnr = MyArrayList<MyNumber>(MyNumber(42))
mnr.add(MyNumber(42)) mnr[17]++
mnr[0]++ if (mnr[17].i != 43) return false
if (mnr[0].i != 43) return false
return true return true
} }
fun test8() : Boolean { fun test8() : Boolean {
var mnr = ArrayList<MyNumber>() var mnr = MyArrayList<MyNumber>(MyNumber(42))
mnr.add(MyNumber(42)) val old = mnr[17]++
mnr.add(MyNumber(41)) if (old.i != 42) return false
mnr[1] = mnr[0]++ if (mnr[17].i != 43) return false
if (mnr[0].i != 43) return false
if (mnr[1].i != 42) return false
return true return true
} }
@@ -14,5 +14,5 @@ var <T> ArrayList<T>.length : Int
set(value: Int) = throw java.lang.Error() set(value: Int) = throw java.lang.Error()
var <T> ArrayList<T>.last : T var <T> ArrayList<T>.last : T
get() = get(size()-1) get() = get(size()-1).sure()
set(el : T) { set(size()-1, el) } set(el : T) { set(size()-1, el) }
@@ -1,7 +1,7 @@
import java.util.ArrayList import java.util.ArrayList
class N() : ArrayList<Any>() { class N() : ArrayList<Any>() {
override fun add(el: Any) : Boolean { override fun add(el: Any?) : Boolean {
if (!super<ArrayList>.add(el)) { if (!super<ArrayList>.add(el)) {
throw Exception() throw Exception()
} }
@@ -76,6 +76,13 @@ public abstract class JetLiteFixture extends UsefulTestCase {
myEnvironment = JetTestUtils.createEnvironmentWithMockJdk(getTestRootDisposable()); 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() { protected void createEnvironmentWithFullJdk() {
if (myEnvironment != null) { if (myEnvironment != null) {
throw new IllegalStateException("must not set up myEnvironemnt twice"); throw new IllegalStateException("must not set up myEnvironemnt twice");
@@ -31,6 +31,7 @@ import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.lang.cfg.LoopInfo; import org.jetbrains.jet.lang.cfg.LoopInfo;
import org.jetbrains.jet.lang.cfg.pseudocode.*; import org.jetbrains.jet.lang.cfg.pseudocode.*;
import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
@@ -54,7 +55,7 @@ public class JetControlFlowTest extends JetLiteFixture {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.STDLIB);
} }
@Override @Override
@@ -57,7 +57,7 @@ public class JetDiagnosticsTest extends JetLiteFixture {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.STDLIB);
} }
@Override @Override
@@ -17,6 +17,7 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import jet.JetObject; import jet.JetObject;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.lang.annotation.*; import java.lang.annotation.*;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
@@ -28,7 +29,7 @@ public class AnnotationGenTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
public void testPropField() throws NoSuchFieldException, NoSuchMethodException { public void testPropField() throws NoSuchFieldException, NoSuchMethodException {
@@ -16,6 +16,8 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.lang.reflect.Method; import java.lang.reflect.Method;
public class ArrayGenTest extends CodegenTestCase { public class ArrayGenTest extends CodegenTestCase {
@@ -23,7 +25,7 @@ public class ArrayGenTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
public void testKt238 () throws Exception { public void testKt238 () throws Exception {
@@ -244,7 +246,7 @@ public class ArrayGenTest extends CodegenTestCase {
public void testCollectionAssignGetMultiIndex () throws Exception { public void testCollectionAssignGetMultiIndex () throws Exception {
loadText("import java.util.ArrayList\n" + 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 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].sure()\n" +
"fun ArrayList<String>.set(index1: Int, index2 : Int, elem: String) { this[index1+index2] = elem }\n"); "fun ArrayList<String>.set(index1: Int, index2 : Int, elem: String) { this[index1+index2] = elem }\n");
// System.out.println(generateToText()); // System.out.println(generateToText());
Method foo = generateFunction("box"); Method foo = generateFunction("box");
@@ -264,7 +266,7 @@ public class ArrayGenTest extends CodegenTestCase {
public void testCollectionGetMultiIndex () throws Exception { public void testCollectionGetMultiIndex () throws Exception {
loadText("import java.util.ArrayList\n" + 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 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].sure()\n" +
"fun ArrayList<String>.set(index1: Int, index2 : Int, elem: String) { this[index1+index2] = elem }\n"); "fun ArrayList<String>.set(index1: Int, index2 : Int, elem: String) { this[index1+index2] = elem }\n");
// System.out.println(generateToText()); // System.out.println(generateToText());
Method foo = generateFunction("box"); Method foo = generateFunction("box");
@@ -16,9 +16,11 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
public class BridgeMethodGenTest extends CodegenTestCase { public class BridgeMethodGenTest extends CodegenTestCase {
public void testBridgeMethod () throws Exception { public void testBridgeMethod () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("bridge.jet"); blackBoxFile("bridge.jet");
} }
} }
@@ -16,6 +16,8 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
@@ -33,7 +35,7 @@ public class ClassGenTest extends CodegenTestCase {
} }
public void testPSVMClass() throws Exception { public void testPSVMClass() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile("classes/simpleClass.jet"); loadFile("classes/simpleClass.jet");
final Class aClass = loadClass("SimpleClass", generateClassesInFile()); final Class aClass = loadClass("SimpleClass", generateClassesInFile());
@@ -44,7 +46,7 @@ public class ClassGenTest extends CodegenTestCase {
} }
public void testArrayListInheritance() throws Exception { public void testArrayListInheritance() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile("classes/inheritingFromArrayList.jet"); loadFile("classes/inheritingFromArrayList.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
final Class aClass = loadClass("Foo", generateClassesInFile()); final Class aClass = loadClass("Foo", generateClassesInFile());
@@ -52,37 +54,37 @@ public class ClassGenTest extends CodegenTestCase {
} }
public void testInheritanceAndDelegation_DelegatingDefaultConstructorProperties() throws Exception { public void testInheritanceAndDelegation_DelegatingDefaultConstructorProperties() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/inheritance.jet"); blackBoxFile("classes/inheritance.jet");
} }
public void testInheritanceAndDelegation2() throws Exception { public void testInheritanceAndDelegation2() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/delegation2.kt"); blackBoxFile("classes/delegation2.kt");
} }
public void testFunDelegation() throws Exception { public void testFunDelegation() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/funDelegation.jet"); blackBoxFile("classes/funDelegation.jet");
} }
public void testPropertyDelegation() throws Exception { public void testPropertyDelegation() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/propertyDelegation.jet"); blackBoxFile("classes/propertyDelegation.jet");
} }
public void testDiamondInheritance() throws Exception { public void testDiamondInheritance() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/diamondInheritance.jet"); blackBoxFile("classes/diamondInheritance.jet");
} }
public void testRightHandOverride() throws Exception { public void testRightHandOverride() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/rightHandOverride.jet"); blackBoxFile("classes/rightHandOverride.jet");
} }
public void testNewInstanceExplicitConstructor() throws Exception { public void testNewInstanceExplicitConstructor() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile("classes/newInstanceDefaultConstructor.jet"); loadFile("classes/newInstanceDefaultConstructor.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method method = generateFunction("test"); final Method method = generateFunction("test");
@@ -91,22 +93,22 @@ public class ClassGenTest extends CodegenTestCase {
} }
public void testInnerClass() throws Exception { public void testInnerClass() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/innerClass.jet"); blackBoxFile("classes/innerClass.jet");
} }
public void testInheritedInnerClass() throws Exception { public void testInheritedInnerClass() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/inheritedInnerClass.jet"); blackBoxFile("classes/inheritedInnerClass.jet");
} }
public void testInitializerBlock() throws Exception { public void testInitializerBlock() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/initializerBlock.jet"); blackBoxFile("classes/initializerBlock.jet");
} }
public void testAbstractMethod() throws Exception { public void testAbstractMethod() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("abstract class Foo { abstract fun x(): String; fun y(): Int = 0 }"); loadText("abstract class Foo { abstract fun x(): String; fun y(): Int = 0 }");
final ClassFileFactory codegens = generateClassesInFile(); final ClassFileFactory codegens = generateClassesInFile();
@@ -116,42 +118,42 @@ public class ClassGenTest extends CodegenTestCase {
} }
public void testInheritedMethod() throws Exception { public void testInheritedMethod() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/inheritedMethod.jet"); blackBoxFile("classes/inheritedMethod.jet");
} }
public void testInitializerBlockDImpl() throws Exception { public void testInitializerBlockDImpl() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/initializerBlockDImpl.jet"); blackBoxFile("classes/initializerBlockDImpl.jet");
} }
public void testPropertyInInitializer() throws Exception { public void testPropertyInInitializer() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/propertyInInitializer.jet"); blackBoxFile("classes/propertyInInitializer.jet");
} }
public void testOuterThis() throws Exception { public void testOuterThis() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/outerThis.jet"); blackBoxFile("classes/outerThis.jet");
} }
public void testSecondaryConstructors() throws Exception { public void testSecondaryConstructors() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/secondaryConstructors.jet"); blackBoxFile("classes/secondaryConstructors.jet");
} }
public void testExceptionConstructor() throws Exception { public void testExceptionConstructor() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/exceptionConstructor.jet"); blackBoxFile("classes/exceptionConstructor.jet");
} }
public void testSimpleBox() throws Exception { public void testSimpleBox() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/simpleBox.jet"); blackBoxFile("classes/simpleBox.jet");
} }
public void testAbstractClass() throws Exception { public void testAbstractClass() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("abstract class SimpleClass() { }"); loadText("abstract class SimpleClass() { }");
final Class aClass = createClassLoader(generateClassesInFile()).loadClass("SimpleClass"); final Class aClass = createClassLoader(generateClassesInFile()).loadClass("SimpleClass");
@@ -159,18 +161,18 @@ public class ClassGenTest extends CodegenTestCase {
} }
public void testClassObject() throws Exception { public void testClassObject() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/classObject.jet"); blackBoxFile("classes/classObject.jet");
} }
public void testClassObjectMethod() throws Exception { public void testClassObjectMethod() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
// todo to be implemented after removal of type info // todo to be implemented after removal of type info
// blackBoxFile("classes/classObjectMethod.jet"); // blackBoxFile("classes/classObjectMethod.jet");
} }
public void testClassObjectInterface() throws Exception { public void testClassObjectInterface() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile("classes/classObjectInterface.jet"); loadFile("classes/classObjectInterface.jet");
final Method method = generateFunction(); final Method method = generateFunction();
Object result = method.invoke(null); Object result = method.invoke(null);
@@ -178,32 +180,32 @@ public class ClassGenTest extends CodegenTestCase {
} }
public void testOverloadBinaryOperator() throws Exception { public void testOverloadBinaryOperator() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/overloadBinaryOperator.jet"); blackBoxFile("classes/overloadBinaryOperator.jet");
} }
public void testOverloadUnaryOperator() throws Exception { public void testOverloadUnaryOperator() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/overloadUnaryOperator.jet"); blackBoxFile("classes/overloadUnaryOperator.jet");
} }
public void testOverloadPlusAssign() throws Exception { public void testOverloadPlusAssign() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/overloadPlusAssign.jet"); blackBoxFile("classes/overloadPlusAssign.jet");
} }
public void testOverloadPlusAssignReturn() throws Exception { public void testOverloadPlusAssignReturn() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/overloadPlusAssignReturn.jet"); blackBoxFile("classes/overloadPlusAssignReturn.jet");
} }
public void testOverloadPlusToPlusAssign() throws Exception { public void testOverloadPlusToPlusAssign() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/overloadPlusToPlusAssign.jet"); blackBoxFile("classes/overloadPlusToPlusAssign.jet");
} }
public void testEnumClass() throws Exception { public void testEnumClass() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("enum class Direction { NORTH; SOUTH; EAST; WEST }"); loadText("enum class Direction { NORTH; SOUTH; EAST; WEST }");
final Class direction = createClassLoader(generateClassesInFile()).loadClass("Direction"); final Class direction = createClassLoader(generateClassesInFile()).loadClass("Direction");
// System.out.println(generateToText()); // System.out.println(generateToText());
@@ -213,7 +215,7 @@ public class ClassGenTest extends CodegenTestCase {
} }
public void testEnumConstantConstructors() throws Exception { public void testEnumConstantConstructors() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("enum class Color(val rgb: Int) { RED: Color(0xFF0000); GREEN: Color(0x00FF00); }"); loadText("enum class Color(val rgb: Int) { RED: Color(0xFF0000); GREEN: Color(0x00FF00); }");
final Class colorClass = createClassLoader(generateClassesInFile()).loadClass("Color"); final Class colorClass = createClassLoader(generateClassesInFile()).loadClass("Color");
final Field redField = colorClass.getField("RED"); final Field redField = colorClass.getField("RED");
@@ -223,25 +225,25 @@ public class ClassGenTest extends CodegenTestCase {
} }
public void testClassObjFields() throws Exception { public void testClassObjFields() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("class A() { class object { val value = 10 } }\n" + loadText("class A() { class object { val value = 10 } }\n" +
"fun box() = if(A.value == 10) \"OK\" else \"fail\""); "fun box() = if(A.value == 10) \"OK\" else \"fail\"");
blackBox(); blackBox();
} }
public void testKt249() throws Exception { public void testKt249() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt249.jet"); blackBoxFile("regressions/kt249.jet");
} }
public void testKt48 () throws Exception { public void testKt48 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt48.jet"); blackBoxFile("regressions/kt48.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
public void testKt309 () throws Exception { public void testKt309 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun box() = null"); loadText("fun box() = null");
final Method method = generateFunction("box"); final Method method = generateFunction("box");
assertEquals(method.getReturnType().getName(), "java.lang.Object"); assertEquals(method.getReturnType().getName(), "java.lang.Object");
@@ -249,73 +251,73 @@ public class ClassGenTest extends CodegenTestCase {
} }
public void testKt343 () throws Exception { public void testKt343 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt343.jet"); blackBoxFile("regressions/kt343.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
public void testKt508 () throws Exception { public void testKt508 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile("regressions/kt508.jet"); loadFile("regressions/kt508.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
blackBox(); blackBox();
} }
public void testKt504 () throws Exception { public void testKt504 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile("regressions/kt504.jet"); loadFile("regressions/kt504.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
blackBox(); blackBox();
} }
public void testKt501 () throws Exception { public void testKt501 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt501.jet"); blackBoxFile("regressions/kt501.jet");
} }
public void testKt496 () throws Exception { public void testKt496 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt496.jet"); blackBoxFile("regressions/kt496.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
public void testKt500 () throws Exception { public void testKt500 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt500.jet"); blackBoxFile("regressions/kt500.jet");
} }
public void testKt694 () throws Exception { public void testKt694 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
// blackBoxFile("regressions/kt694.jet"); // blackBoxFile("regressions/kt694.jet");
} }
public void testKt285 () throws Exception { public void testKt285 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
// blackBoxFile("regressions/kt285.jet"); // blackBoxFile("regressions/kt285.jet");
} }
public void testKt707 () throws Exception { public void testKt707 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt707.jet"); blackBoxFile("regressions/kt707.jet");
} }
public void testKt857 () throws Exception { public void testKt857 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
// blackBoxFile("regressions/kt857.jet"); // blackBoxFile("regressions/kt857.jet");
} }
public void testKt903 () throws Exception { public void testKt903 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt903.jet"); blackBoxFile("regressions/kt903.jet");
} }
public void testKt940 () throws Exception { public void testKt940 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt940.kt"); blackBoxFile("regressions/kt940.kt");
} }
public void testKt1018 () throws Exception { public void testKt1018 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1018.kt"); blackBoxFile("regressions/kt1018.kt");
} }
@@ -330,17 +332,17 @@ public class ClassGenTest extends CodegenTestCase {
} }
public void testKt1134() throws Exception { public void testKt1134() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1134.kt"); blackBoxFile("regressions/kt1134.kt");
} }
public void testKt1157() throws Exception { public void testKt1157() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1157.kt"); blackBoxFile("regressions/kt1157.kt");
} }
public void testKt471() throws Exception { public void testKt471() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt471.kt"); blackBoxFile("regressions/kt471.kt");
} }
@@ -350,38 +352,38 @@ public class ClassGenTest extends CodegenTestCase {
} }
public void testKt723() throws Exception { public void testKt723() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt723.kt"); blackBoxFile("regressions/kt723.kt");
} }
public void testKt725() throws Exception { public void testKt725() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt725.kt"); blackBoxFile("regressions/kt725.kt");
} }
public void testKt633() throws Exception { public void testKt633() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt633.kt"); blackBoxFile("regressions/kt633.kt");
} }
public void testKt1345() throws Exception { public void testKt1345() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1345.kt"); blackBoxFile("regressions/kt1345.kt");
} }
public void testKt1538() throws Exception { public void testKt1538() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1538.kt"); blackBoxFile("regressions/kt1538.kt");
} }
public void testKt1759() throws Exception { public void testKt1759() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1759.kt"); blackBoxFile("regressions/kt1759.kt");
} }
public void testResolveOrder() throws Exception { public void testResolveOrder() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("classes/resolveOrder.jet"); blackBoxFile("classes/resolveOrder.jet");
} }
} }
@@ -16,6 +16,8 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
/** /**
* @author max * @author max
*/ */
@@ -24,7 +26,7 @@ public class ClosuresGenTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
public void testSimplestClosure() throws Exception { public void testSimplestClosure() throws Exception {
@@ -130,6 +130,7 @@ public abstract class CodegenTestCase extends JetLiteFixture {
myFile, JetControlFlowDataTraceFactory.EMPTY, myFile, JetControlFlowDataTraceFactory.EMPTY,
myEnvironment.getCompilerDependencies()); myEnvironment.getCompilerDependencies());
analyzeExhaust.throwIfError(); analyzeExhaust.throwIfError();
AnalyzingUtils.throwExceptionOnErrors(analyzeExhaust.getBindingContext());
GenerationState state = new GenerationState(getProject(), classBuilderFactory, analyzeExhaust, Collections.singletonList(myFile)); GenerationState state = new GenerationState(getProject(), classBuilderFactory, analyzeExhaust, Collections.singletonList(myFile));
state.compileCorrectFiles(CompilationErrorHandler.THROW_EXCEPTION); state.compileCorrectFiles(CompilationErrorHandler.THROW_EXCEPTION);
return state; return state;
@@ -195,8 +196,7 @@ public abstract class CodegenTestCase extends JetLiteFixture {
r = method; r = method;
} }
if (r == null) if (r == null) { throw new AssertionError(); }
throw new AssertionError();
return r; return r;
} catch (Error e) { } catch (Error e) {
System.out.println(generateToText()); System.out.println(generateToText());
@@ -16,6 +16,8 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Arrays; import java.util.Arrays;
@@ -31,7 +33,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testIf() throws Exception { public void testIf() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
// System.out.println(generateToText()); // System.out.println(generateToText());
@@ -41,7 +43,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testSingleBranchIf() throws Exception { public void testSingleBranchIf() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
// System.out.println(generateToText()); // System.out.println(generateToText());
@@ -63,7 +65,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
private void factorialTest(final String name) throws IllegalAccessException, InvocationTargetException { private void factorialTest(final String name) throws IllegalAccessException, InvocationTargetException {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(name); loadFile(name);
// System.out.println(generateToText()); // System.out.println(generateToText());
@@ -73,7 +75,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testContinue() throws Exception { public void testContinue() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction(); final Method main = generateFunction();
@@ -82,7 +84,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testIfNoElse() throws Exception { public void testIfNoElse() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction(); final Method main = generateFunction();
@@ -91,7 +93,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testCondJumpOnStack() throws Exception { public void testCondJumpOnStack() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("import java.lang.Boolean as jlBoolean; fun foo(a: String): Int = if (jlBoolean.parseBoolean(a)) 5 else 10"); loadText("import java.lang.Boolean as jlBoolean; fun foo(a: String): Int = if (jlBoolean.parseBoolean(a)) 5 else 10");
final Method main = generateFunction(); final Method main = generateFunction();
assertEquals(5, main.invoke(null, "true")); assertEquals(5, main.invoke(null, "true"));
@@ -99,7 +101,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testFor() throws Exception { public void testFor() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction(); final Method main = generateFunction();
@@ -108,7 +110,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testIfBlock() throws Exception { public void testIfBlock() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction(); final Method main = generateFunction();
@@ -119,7 +121,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testForInArray() throws Exception { public void testForInArray() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction(); final Method main = generateFunction();
@@ -128,7 +130,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testForInRange() throws Exception { public void testForInRange() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun foo(sb: StringBuilder) { for(x in 1..4) sb.append(x) }"); loadText("fun foo(sb: StringBuilder) { for(x in 1..4) sb.append(x) }");
final Method main = generateFunction(); final Method main = generateFunction();
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
@@ -137,7 +139,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testThrowCheckedException() throws Exception { public void testThrowCheckedException() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun foo() { throw Exception(); }"); loadText("fun foo() { throw Exception(); }");
final Method main = generateFunction(); final Method main = generateFunction();
boolean caught = false; boolean caught = false;
@@ -152,7 +154,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testTryCatch() throws Exception { public void testTryCatch() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction(); final Method main = generateFunction();
@@ -161,7 +163,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testTryFinally() throws Exception { public void testTryFinally() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction(); final Method main = generateFunction();
@@ -181,37 +183,37 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testForUserType() throws Exception { public void testForUserType() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("controlStructures/forUserType.jet"); blackBoxFile("controlStructures/forUserType.jet");
} }
public void testForIntArray() throws Exception { public void testForIntArray() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("controlStructures/forIntArray.jet"); blackBoxFile("controlStructures/forIntArray.jet");
} }
public void testForPrimitiveIntArray() throws Exception { public void testForPrimitiveIntArray() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("controlStructures/forPrimitiveIntArray.jet"); blackBoxFile("controlStructures/forPrimitiveIntArray.jet");
} }
public void testForNullableIntArray() throws Exception { public void testForNullableIntArray() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("controlStructures/forNullableIntArray.jet"); blackBoxFile("controlStructures/forNullableIntArray.jet");
} }
public void testForIntRange() { public void testForIntRange() {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("controlStructures/forIntRange.jet"); blackBoxFile("controlStructures/forIntRange.jet");
} }
public void testKt237() throws Exception { public void testKt237() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt237.jet"); blackBoxFile("regressions/kt237.jet");
} }
public void testCompareToNull() throws Exception { public void testCompareToNull() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun foo(a: String?, b: String?): Boolean = a == null && b !== null && null == a && null !== b"); loadText("fun foo(a: String?, b: String?): Boolean = a == null && b !== null && null == a && null !== b");
String text = generateToText(); String text = generateToText();
assertTrue(!text.contains("java/lang/Object.equals")); assertTrue(!text.contains("java/lang/Object.equals"));
@@ -222,7 +224,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testCompareToNonnullableEq() throws Exception { public void testCompareToNonnullableEq() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun foo(a: String?, b: String): Boolean = a == b || b == a"); loadText("fun foo(a: String?, b: String): Boolean = a == b || b == a");
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction(); final Method main = generateFunction();
@@ -231,7 +233,7 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testCompareToNonnullableNotEq() throws Exception { public void testCompareToNonnullableNotEq() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun foo(a: String?, b: String): Boolean = a != b"); loadText("fun foo(a: String?, b: String): Boolean = a != b");
String text = generateToText(); String text = generateToText();
// System.out.println(text); // System.out.println(text);
@@ -242,18 +244,18 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testKt299() throws Exception { public void testKt299() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt299.jet"); blackBoxFile("regressions/kt299.jet");
} }
public void testKt416() throws Exception { public void testKt416() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt416.jet"); blackBoxFile("regressions/kt416.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
public void testKt513() throws Exception { public void testKt513() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt513.jet"); blackBoxFile("regressions/kt513.jet");
} }
@@ -263,37 +265,37 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testKt769() throws Exception { public void testKt769() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt769.jet"); blackBoxFile("regressions/kt769.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
public void testKt773() throws Exception { public void testKt773() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt773.jet"); blackBoxFile("regressions/kt773.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
public void testKt772() throws Exception { public void testKt772() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt772.jet"); blackBoxFile("regressions/kt772.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
public void testKt870() throws Exception { public void testKt870() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt870.jet"); blackBoxFile("regressions/kt870.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
public void testKt958() throws Exception { public void testKt958() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt958.jet"); blackBoxFile("regressions/kt958.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
public void testQuicksort() throws Exception { public void testQuicksort() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("controlStructures/quicksort.jet"); blackBoxFile("controlStructures/quicksort.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
@@ -311,22 +313,22 @@ public class ControlStructuresTest extends CodegenTestCase {
} }
public void testKt1076() throws Exception { public void testKt1076() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1076.kt"); blackBoxFile("regressions/kt1076.kt");
} }
public void testKt998() throws Exception { public void testKt998() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt998.kt"); blackBoxFile("regressions/kt998.kt");
} }
public void testKt628() throws Exception { public void testKt628() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt628.kt"); blackBoxFile("regressions/kt628.kt");
} }
public void testKt1441() throws Exception { public void testKt1441() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1441.kt"); blackBoxFile("regressions/kt1441.kt");
} }
} }
@@ -16,6 +16,8 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.lang.reflect.Method; import java.lang.reflect.Method;
/** /**
@@ -29,7 +31,7 @@ public class ExtensionFunctionsTest extends CodegenTestCase {
} }
public void testSimple() throws Exception { public void testSimple() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
final Method foo = generateFunction("foo"); final Method foo = generateFunction("foo");
final Character c = (Character) foo.invoke(null); final Character c = (Character) foo.invoke(null);
@@ -37,7 +39,7 @@ public class ExtensionFunctionsTest extends CodegenTestCase {
} }
public void testWhenFail() throws Exception { public void testWhenFail() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
// System.out.println(generateToText()); // System.out.println(generateToText());
Method foo = generateFunction("foo"); Method foo = generateFunction("foo");
@@ -45,18 +47,18 @@ public class ExtensionFunctionsTest extends CodegenTestCase {
} }
public void testVirtual() throws Exception { public void testVirtual() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("extensionFunctions/virtual.jet"); blackBoxFile("extensionFunctions/virtual.jet");
} }
public void testShared() throws Exception { public void testShared() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("extensionFunctions/shared.kt"); blackBoxFile("extensionFunctions/shared.kt");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
public void testKt475() throws Exception { public void testKt475() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt475.jet"); blackBoxFile("regressions/kt475.jet");
} }
@@ -16,6 +16,8 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@@ -26,7 +28,7 @@ public class FunctionGenTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
public void testDefaultArgs() throws Exception { public void testDefaultArgs() throws Exception {
@@ -19,6 +19,7 @@ package org.jetbrains.jet.codegen;
import jet.IntRange; import jet.IntRange;
import jet.Tuple2; import jet.Tuple2;
import jet.Tuple4; import jet.Tuple4;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.awt.*; import java.awt.*;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
@@ -34,7 +35,7 @@ public class NamespaceGenTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
public void testPSVM() throws Exception { public void testPSVM() throws Exception {
@@ -16,6 +16,8 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
/** /**
* @author yole * @author yole
* @author alex.tkachman * @author alex.tkachman
@@ -24,7 +26,7 @@ public class ObjectGenTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
public void testSimpleObject() throws Exception { public void testSimpleObject() throws Exception {
@@ -17,6 +17,7 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import jet.Tuple2; import jet.Tuple2;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@@ -28,7 +29,7 @@ public class PatternMatchingTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
@Override @Override
@@ -16,6 +16,8 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.lang.reflect.Method; import java.lang.reflect.Method;
/** /**
@@ -27,7 +29,7 @@ public class PrimitiveTypesTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
public void testPlus() throws Exception { public void testPlus() throws Exception {
@@ -16,6 +16,8 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@@ -31,7 +33,7 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testPrivateVal() throws Exception { public void testPrivateVal() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
final Class aClass = loadImplementationClass(generateClassesInFile(), "PrivateVal"); final Class aClass = loadImplementationClass(generateClassesInFile(), "PrivateVal");
final Field[] fields = aClass.getDeclaredFields(); final Field[] fields = aClass.getDeclaredFields();
@@ -41,7 +43,7 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testPrivateVar() throws Exception { public void testPrivateVar() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
final Class aClass = loadImplementationClass(generateClassesInFile(), "PrivateVar"); final Class aClass = loadImplementationClass(generateClassesInFile(), "PrivateVar");
final Object instance = aClass.newInstance(); final Object instance = aClass.newInstance();
@@ -52,7 +54,7 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testPublicVar() throws Exception { public void testPublicVar() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("class PublicVar() { public var foo : Int = 0; }"); loadText("class PublicVar() { public var foo : Int = 0; }");
final Class aClass = loadImplementationClass(generateClassesInFile(), "PublicVar"); final Class aClass = loadImplementationClass(generateClassesInFile(), "PublicVar");
final Object instance = aClass.newInstance(); final Object instance = aClass.newInstance();
@@ -63,7 +65,7 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testAccessorsInInterface() { public void testAccessorsInInterface() {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("class AccessorsInInterface() { public var foo : Int = 0; }"); loadText("class AccessorsInInterface() { public var foo : Int = 0; }");
final Class aClass = loadClass("AccessorsInInterface", generateClassesInFile()); final Class aClass = loadClass("AccessorsInInterface", generateClassesInFile());
assertNotNull(findMethodByName(aClass, "getFoo")); assertNotNull(findMethodByName(aClass, "getFoo"));
@@ -71,7 +73,7 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testPrivatePropertyInNamespace() throws Exception { public void testPrivatePropertyInNamespace() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("private val x = 239"); loadText("private val x = 239");
final Class nsClass = generateNamespaceClass(); final Class nsClass = generateNamespaceClass();
final Field[] fields = nsClass.getDeclaredFields(); final Field[] fields = nsClass.getDeclaredFields();
@@ -84,7 +86,7 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testFieldPropertyAccess() throws Exception { public void testFieldPropertyAccess() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile("properties/fieldPropertyAccess.jet"); loadFile("properties/fieldPropertyAccess.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method method = generateFunction(); final Method method = generateFunction();
@@ -93,14 +95,14 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testFieldGetter() throws Exception { public void testFieldGetter() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("val now: Long get() = System.currentTimeMillis(); fun foo() = now"); loadText("val now: Long get() = System.currentTimeMillis(); fun foo() = now");
final Method method = generateFunction("foo"); final Method method = generateFunction("foo");
assertIsCurrentTime((Long) method.invoke(null)); assertIsCurrentTime((Long) method.invoke(null));
} }
public void testFieldSetter() throws Exception { public void testFieldSetter() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
final Method method = generateFunction("append"); final Method method = generateFunction("append");
method.invoke(null, "IntelliJ "); method.invoke(null, "IntelliJ ");
@@ -112,7 +114,7 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testFieldSetterPlusEq() throws Exception { public void testFieldSetterPlusEq() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
final Method method = generateFunction("append"); final Method method = generateFunction("append");
method.invoke(null, "IntelliJ "); method.invoke(null, "IntelliJ ");
@@ -121,7 +123,7 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testAccessorsWithoutBody() throws Exception { public void testAccessorsWithoutBody() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("class AccessorsWithoutBody() { protected var foo: Int = 349\n get\n private set\n fun setter() { foo = 610; } } "); loadText("class AccessorsWithoutBody() { protected var foo: Int = 349\n get\n private set\n fun setter() { foo = 610; } } ");
// System.out.println(generateToText()); // System.out.println(generateToText());
final Class aClass = loadImplementationClass(generateClassesInFile(), "AccessorsWithoutBody"); final Class aClass = loadImplementationClass(generateClassesInFile(), "AccessorsWithoutBody");
@@ -139,7 +141,7 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testInitializersForNamespaceProperties() throws Exception { public void testInitializersForNamespaceProperties() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("val x = System.currentTimeMillis()"); loadText("val x = System.currentTimeMillis()");
final Method method = generateFunction("getX"); final Method method = generateFunction("getX");
method.setAccessible(true); method.setAccessible(true);
@@ -147,7 +149,7 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testPropertyReceiverOnStack() throws Exception { public void testPropertyReceiverOnStack() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadFile(); loadFile();
final Class aClass = loadImplementationClass(generateClassesInFile(), "Evaluator"); final Class aClass = loadImplementationClass(generateClassesInFile(), "Evaluator");
final Constructor constructor = aClass.getConstructor(StringBuilder.class); final Constructor constructor = aClass.getConstructor(StringBuilder.class);
@@ -159,7 +161,7 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testAbstractVal() throws Exception { public void testAbstractVal() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("abstract class Foo { public abstract val x: String }"); loadText("abstract class Foo { public abstract val x: String }");
final ClassFileFactory codegens = generateClassesInFile(); final ClassFileFactory codegens = generateClassesInFile();
final Class aClass = loadClass("Foo", codegens); final Class aClass = loadClass("Foo", codegens);
@@ -167,7 +169,7 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testVolatileProperty() throws Exception { public void testVolatileProperty() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("abstract class Foo { public volatile var x: String = \"\"; }"); loadText("abstract class Foo { public volatile var x: String = \"\"; }");
// System.out.println(generateToText()); // System.out.println(generateToText());
final ClassFileFactory codegens = generateClassesInFile(); final ClassFileFactory codegens = generateClassesInFile();
@@ -177,18 +179,18 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testKt257 () throws Exception { public void testKt257 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt257.jet"); blackBoxFile("regressions/kt257.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
public void testKt613 () throws Exception { public void testKt613 () throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt613.jet"); blackBoxFile("regressions/kt613.jet");
} }
public void testKt160() throws Exception { public void testKt160() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("internal val s = java.lang.Double.toString(1.0)"); loadText("internal val s = java.lang.Double.toString(1.0)");
final Method method = generateFunction("getS"); final Method method = generateFunction("getS");
method.setAccessible(true); method.setAccessible(true);
@@ -196,12 +198,12 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testKt1165() throws Exception { public void testKt1165() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1165.kt"); blackBoxFile("regressions/kt1165.kt");
} }
public void testKt1168() throws Exception { public void testKt1168() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1168.kt"); blackBoxFile("regressions/kt1168.kt");
} }
@@ -211,17 +213,17 @@ public class PropertyGenTest extends CodegenTestCase {
} }
public void testKt1159() throws Exception { public void testKt1159() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1159.kt"); blackBoxFile("regressions/kt1159.kt");
} }
public void testKt1417() throws Exception { public void testKt1417() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1417.kt"); blackBoxFile("regressions/kt1417.kt");
} }
public void testKt1398() throws Exception { public void testKt1398() throws Exception {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt1398.kt"); blackBoxFile("regressions/kt1398.kt");
} }
@@ -16,11 +16,13 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
public class SafeRefTest extends CodegenTestCase { public class SafeRefTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
public void test247 () throws Exception { public void test247 () throws Exception {
@@ -16,6 +16,8 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@@ -28,7 +30,7 @@ public class StringsTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
public void testAnyToString () throws InvocationTargetException, IllegalAccessException { public void testAnyToString () throws InvocationTargetException, IllegalAccessException {
@@ -16,12 +16,14 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
public class SuperGenTest extends CodegenTestCase { public class SuperGenTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
public void testBasicProperty () { public void testBasicProperty () {
@@ -16,12 +16,14 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
public class TraitsTest extends CodegenTestCase { public class TraitsTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
@Override @Override
@@ -16,9 +16,11 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
public class TupleGenTest extends CodegenTestCase { public class TupleGenTest extends CodegenTestCase {
public void testBasic() { public void testBasic() {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("/tuples/basic.jet"); blackBoxFile("/tuples/basic.jet");
// System.out.println(generateToText()); // System.out.println(generateToText());
} }
@@ -16,6 +16,9 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import jet.TypeCastException;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.lang.reflect.Method; import java.lang.reflect.Method;
/** /**
@@ -27,7 +30,7 @@ public class TypeInfoTest extends CodegenTestCase {
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
} }
@Override @Override
@@ -16,6 +16,8 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.lang.reflect.Array; import java.lang.reflect.Array;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@@ -25,7 +27,7 @@ import java.lang.reflect.Method;
*/ */
public class VarArgTest extends CodegenTestCase { public class VarArgTest extends CodegenTestCase {
public void testStringArray () throws InvocationTargetException, IllegalAccessException { public void testStringArray () throws InvocationTargetException, IllegalAccessException {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun test(vararg ts: String) = ts"); loadText("fun test(vararg ts: String) = ts");
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction(); final Method main = generateFunction();
@@ -34,7 +36,7 @@ public class VarArgTest extends CodegenTestCase {
} }
public void testIntArray () throws InvocationTargetException, IllegalAccessException { public void testIntArray () throws InvocationTargetException, IllegalAccessException {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun test(vararg ts: Int) = ts"); loadText("fun test(vararg ts: Int) = ts");
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction(); final Method main = generateFunction();
@@ -43,7 +45,7 @@ public class VarArgTest extends CodegenTestCase {
} }
public void testIntArrayKotlinNoArgs () throws InvocationTargetException, IllegalAccessException { public void testIntArrayKotlinNoArgs () throws InvocationTargetException, IllegalAccessException {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun test() = testf(); fun testf(vararg ts: Int) = ts"); loadText("fun test() = testf(); fun testf(vararg ts: Int) = ts");
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction("test"); final Method main = generateFunction("test");
@@ -52,7 +54,7 @@ public class VarArgTest extends CodegenTestCase {
} }
public void testIntArrayKotlin () throws InvocationTargetException, IllegalAccessException { public void testIntArrayKotlin () throws InvocationTargetException, IllegalAccessException {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun test() = testf(239, 7); fun testf(vararg ts: Int) = ts"); loadText("fun test() = testf(239, 7); fun testf(vararg ts: Int) = ts");
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction("test"); final Method main = generateFunction("test");
@@ -63,7 +65,7 @@ public class VarArgTest extends CodegenTestCase {
} }
public void testNullableIntArrayKotlin () throws InvocationTargetException, IllegalAccessException { public void testNullableIntArrayKotlin () throws InvocationTargetException, IllegalAccessException {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun test() = testf(239.toByte(), 7.toByte()); fun testf(vararg ts: Byte?) = ts"); loadText("fun test() = testf(239.toByte(), 7.toByte()); fun testf(vararg ts: Byte?) = ts");
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction("test"); final Method main = generateFunction("test");
@@ -74,7 +76,7 @@ public class VarArgTest extends CodegenTestCase {
} }
public void testIntArrayKotlinObj () throws InvocationTargetException, IllegalAccessException { public void testIntArrayKotlinObj () throws InvocationTargetException, IllegalAccessException {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun test() = testf(\"239\"); fun testf(vararg ts: String) = ts"); loadText("fun test() = testf(\"239\"); fun testf(vararg ts: String) = ts");
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction("test"); final Method main = generateFunction("test");
@@ -84,7 +86,7 @@ public class VarArgTest extends CodegenTestCase {
} }
public void testArrayT () throws InvocationTargetException, IllegalAccessException { public void testArrayT () throws InvocationTargetException, IllegalAccessException {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("fun test() = _array(2, 4); fun <T> _array(vararg elements : T) = elements"); loadText("fun test() = _array(2, 4); fun <T> _array(vararg elements : T) = elements");
// System.out.println(generateToText()); // System.out.println(generateToText());
final Method main = generateFunction("test"); final Method main = generateFunction("test");
@@ -100,12 +102,12 @@ public class VarArgTest extends CodegenTestCase {
} }
public void testKt797() { public void testKt797() {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
blackBoxFile("regressions/kt796_797.jet"); blackBoxFile("regressions/kt796_797.jet");
} }
public void testArrayAsVararg () throws InvocationTargetException, IllegalAccessException { public void testArrayAsVararg () throws InvocationTargetException, IllegalAccessException {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("private fun asList(vararg elems: String) = elems; fun test(ts: Array<String>) = asList(*ts); "); loadText("private fun asList(vararg elems: String) = elems; fun test(ts: Array<String>) = asList(*ts); ");
//System.out.println(generateToText()); //System.out.println(generateToText());
final Method main = generateFunction("test"); final Method main = generateFunction("test");
@@ -114,7 +116,7 @@ public class VarArgTest extends CodegenTestCase {
} }
public void testArrayAsVararg2 () throws InvocationTargetException, IllegalAccessException { public void testArrayAsVararg2 () throws InvocationTargetException, IllegalAccessException {
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
loadText("private fun asList(vararg elems: String) = elems; fun test(ts1: Array<String>, ts2: String) = asList(*ts1, ts2); "); loadText("private fun asList(vararg elems: String) = elems; fun test(ts1: Array<String>, ts2: String) = asList(*ts1, ts2); ");
System.out.println(generateToText()); System.out.println(generateToText());
final Method main = generateFunction("test"); final Method main = generateFunction("test");
@@ -20,6 +20,7 @@ import org.jetbrains.annotations.NonNls;
import org.jetbrains.jet.JetLiteFixture; import org.jetbrains.jet.JetLiteFixture;
import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
import java.util.List; import java.util.List;
@@ -33,7 +34,7 @@ public abstract class ExtensibleResolveTestCase extends JetLiteFixture {
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
createEnvironmentWithMockJdk(); createEnvironmentWithMockJdk(CompilerSpecialMode.STDLIB);
expectedResolveData = getExpectedResolveData(); expectedResolveData = getExpectedResolveData();
} }