New J2K: add some tests from obsolete issues

This commit is contained in:
Ilya Kirillov
2019-06-21 17:31:17 +03:00
parent 98be5d8ed0
commit 0dfaae2bb4
41 changed files with 557 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
public class JJ {
public static void foo() {}
public void bar() {
this.foo();
}
}
+9
View File
@@ -0,0 +1,9 @@
class JJ {
fun bar() {
foo()
}
companion object {
fun foo() {}
}
}
+12
View File
@@ -0,0 +1,12 @@
public class A {
public interface I {
void f();
}
}
public class B extends A {
}
public class Test {
public B.I z = null;
}
+10
View File
@@ -0,0 +1,10 @@
open class A {
interface I {
fun f()
}
}
class B : A()
class Test {
var z: A.I? = null
}
+24
View File
@@ -0,0 +1,24 @@
package test.nullabilityOnClassBoundaries;
public class Item {
private String s1;
private String s2;
public void set(String s1, String s2) {
this.s1 = s1;
this.s2 = s2;
}
}
public class Reader {
public Item readItem(int n) {
Item item = new Item();
item.set(readString(n), null);
return item;
}
public String readString(int n) {
if (n <= 0) return null;
return Integer.toString(n);
}
}
+22
View File
@@ -0,0 +1,22 @@
package test.nullabilityOnClassBoundaries
class Item {
private var s1: String? = null
private var s2: String? = null
operator fun set(s1: String?, s2: String?) {
this.s1 = s1
this.s2 = s2
}
}
class Reader {
fun readItem(n: Int): Item {
val item = Item()
item[readString(n)] = null
return item
}
fun readString(n: Int): String? {
return if (n <= 0) null else Integer.toString(n)
}
}
+15
View File
@@ -0,0 +1,15 @@
package test;
public class TestMutltipleCtors {
private int x;
private int y;
public TestMutltipleCtors(int x) {
this.x = x;
}
public TestMutltipleCtors(int x, int y) {
this.x = x;
this.y = y;
}
}
+15
View File
@@ -0,0 +1,15 @@
package test
class TestMutltipleCtors {
private var x: Int
private var y = 0
constructor(x: Int) {
this.x = x
}
constructor(x: Int, y: Int) {
this.x = x
this.y = y
}
}
+15
View File
@@ -0,0 +1,15 @@
package test.hierarchy;
public class Base {
public void doStuff(String s) {}
}
public class Derived extends Base {
@Override
public void doStuff(String s) {
if (s == null)
System.out.println("null");
else
System.out.println("not null: " + s);
}
}
+11
View File
@@ -0,0 +1,11 @@
package test.hierarchy
open class Base {
open fun doStuff(s: String?) {}
}
class Derived : Base() {
override fun doStuff(s: String?) {
if (s == null) println("null") else println("not null: $s")
}
}
+9
View File
@@ -0,0 +1,9 @@
package test;
import java.util.HashMap;
public class TestPrimitiveFromMap {
public int foo(HashMap<String, Integer> map) {
return map.get("zzz");
}
}
+9
View File
@@ -0,0 +1,9 @@
package test
import java.util.HashMap
class TestPrimitiveFromMap {
fun foo(map: HashMap<String, Int?>): Int {
return map["zzz"]!!
}
}
+9
View File
@@ -0,0 +1,9 @@
package test;
import java.util.Map;
public class TestMapGetAsReceiver {
public int foo(Map<String, String> map) {
return map.get("zzz").length();
}
}
+7
View File
@@ -0,0 +1,7 @@
package test
class TestMapGetAsReceiver {
fun foo(map: Map<String, String?>): Int {
return map["zzz"]!!.length
}
}
+15
View File
@@ -0,0 +1,15 @@
package test;
public class TestValReassign {
private String s1;
private String s2;
public TestValReassign(String s1) {
this.s1 = s1;
}
public TestValReassign(String s1, String s2) {
this(s1);
this.s2 = s2;
}
}
+10
View File
@@ -0,0 +1,10 @@
package test
class TestValReassign(private val s1: String) {
private var s2: String? = null
constructor(s1: String?, s2: String?) : this(s1!!) {
this.s2 = s2
}
}
+4
View File
@@ -0,0 +1,4 @@
public class TestNestedClassesHierarchy {
public static class Base {}
public static class Derived extends Base {}
}
+4
View File
@@ -0,0 +1,4 @@
class TestNestedClassesHierarchy {
open class Base
class Derived : Base()
}
+22
View File
@@ -0,0 +1,22 @@
public class TestToStringReturnsNullable {
public static class Base {
public String string;
}
public static class Ctor extends Base {
public Ctor(String string) {
this.string = string;
}
}
public static class Derived extends Ctor {
public Derived(String string) {
super(string);
}
@Override
public String toString() {
return string;
}
}
}
+17
View File
@@ -0,0 +1,17 @@
class TestToStringReturnsNullable {
open class Base {
var string: String? = null
}
open class Ctor(string: String?) : Base() {
init {
this.string = string
}
}
class Derived(string: String?) : Ctor(string) {
override fun toString(): String {
return string!!
}
}
}
+6
View File
@@ -0,0 +1,6 @@
public class TestJavaBoxedPrimitives {
public Object[] foo(Boolean x1, Byte x2, Short x3, Integer x4,
Long x5, Float x6, Double x7, Character x8) {
return new Object[]{x1, x2, x3, x4, x5, x6, x7, x8};
}
}
+6
View File
@@ -0,0 +1,6 @@
class TestJavaBoxedPrimitives {
fun foo(x1: Boolean, x2: Byte, x3: Short, x4: Int,
x5: Long, x6: Float, x7: Double, x8: Char): Array<Any> {
return arrayOf(x1, x2, x3, x4, x5, x6, x7, x8)
}
}
+6
View File
@@ -0,0 +1,6 @@
public class TestNumberConversionsInTernary {
public double intOrDoubleAsDouble(boolean flag, int x, double y) {
double result = flag ? x : y;
return result;
}
}
+5
View File
@@ -0,0 +1,5 @@
class TestNumberConversionsInTernary {
fun intOrDoubleAsDouble(flag: Boolean, x: Int, y: Double): Double {
return (if (flag) x else y).toDouble()
}
}
+15
View File
@@ -0,0 +1,15 @@
public class TestNumberConversionInSetter {
private double d;
public void init() {
setD(1);
}
public double getD() {
return d;
}
public void setD(double d) {
this.d = d;
}
}
+8
View File
@@ -0,0 +1,8 @@
class TestNumberConversionInSetter {
var d = 0.0
fun init() {
d = 1.0
}
}
+7
View File
@@ -0,0 +1,7 @@
public class TestInnerClassCtor {
public class Inner {}
public void test() {
new TestInnerClassCtor.Inner();
}
}
+7
View File
@@ -0,0 +1,7 @@
class TestInnerClassCtor {
inner class Inner
fun test() {
Inner()
}
}
+8
View File
@@ -0,0 +1,8 @@
// RUNTIME_WITH_FULL_JDK
import java.util.function.Predicate;
public class TestSamInitializedWithLambda {
public final Predicate<String> isEmpty =
x -> x.length() == 0;
}
+5
View File
@@ -0,0 +1,5 @@
import java.util.function.Predicate
class TestSamInitializedWithLambda {
val isEmpty = Predicate { x: String -> x.length == 0 }
}
+16
View File
@@ -0,0 +1,16 @@
public class TestInitializeInTry {
Object x;
private Object y;
public TestInitializeInTry() {
try {
x = new Object();
y = new Object();
}
catch (Exception e) {
e.printStackTrace();
}
x.toString();
y.toString();
}
}
+15
View File
@@ -0,0 +1,15 @@
class TestInitializeInTry {
internal var x: Any? = null
private var y: Any? = null
init {
try {
x = Any()
y = Any()
} catch (e: Exception) {
e.printStackTrace()
}
x.toString()
y.toString()
}
}
+7
View File
@@ -0,0 +1,7 @@
public class Test {
int foo = 1;
public Test() {
int foo = foo = 2;
}
}
+8
View File
@@ -0,0 +1,8 @@
class Test {
internal var foo = 1
init {
foo = 2
val foo = foo
}
}
+17
View File
@@ -0,0 +1,17 @@
package test;
import java.util.Random;
public class Test {
public static void x() {
int a, b;
switch (new Random().nextInt()) {
case 0:
a = b = 1;
break;
default:
a = b = -1;
}
System.out.println(a + b);
}
}
+21
View File
@@ -0,0 +1,21 @@
package test
import java.util.Random
object Test {
fun x() {
val a: Int
val b: Int
when (Random().nextInt()) {
0 -> {
b = 1
a = b
}
else -> {
b = -1
a = b
}
}
println(a + b)
}
}
+3
View File
@@ -0,0 +1,3 @@
public class J {
public double x;
}
+3
View File
@@ -0,0 +1,3 @@
class J {
var x = 0.0
}
+24
View File
@@ -0,0 +1,24 @@
public class ArrayNullable {
public static void main(String[] args) {
int notNull = 0;
Integer[] a1 = new Integer[2];
a1[0] = null;
a1[1] = notNull;
System.out.println(a1[0]);
System.out.println(a1[1]);
Integer[] a2 = new Integer[2];
a2[0] = nullable();
a2[1] = notNull;
System.out.println(a2[0]);
System.out.println(a2[1]);
Integer[] a3 = new Integer[] { null, nullable(), notNull };
System.out.println(a3[0]);
System.out.println(a3[1]);
System.out.println(a3[2]);
}
public static Integer nullable() { return System.getProperty("user.home").length() > 20 ? null : 1; }
}
+24
View File
@@ -0,0 +1,24 @@
object ArrayNullable {
@JvmStatic
fun main(args: Array<String>) {
val notNull = 0
val a1: Array<Int?> = arrayOfNulls(2)
a1[0] = null
a1[1] = notNull
println(a1[0])
println(a1[1])
val a2: Array<Int?> = arrayOfNulls(2)
a2[0] = nullable()
a2[1] = notNull
println(a2[0])
println(a2[1])
val a3 = arrayOf(null, nullable(), notNull)
println(a3[0])
println(a3[1])
println(a3[2])
}
fun nullable(): Int? {
return if (System.getProperty("user.home").length > 20) null else 1
}
}
@@ -2666,6 +2666,11 @@ public class NewJavaToKotlinConverterSingleFileTestGenerated extends AbstractNew
runTest("nj2k/testData/newJ2k/issues/kt-1048.java");
}
@TestMetadata("kt-10712.java")
public void testKt_10712() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-10712.java");
}
@TestMetadata("kt-1074.java")
public void testKt_1074() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-1074.java");
@@ -2691,21 +2696,41 @@ public class NewJavaToKotlinConverterSingleFileTestGenerated extends AbstractNew
runTest("nj2k/testData/newJ2k/issues/kt-17379.java");
}
@TestMetadata("kt-19296.java")
public void testKt_19296() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19296.java");
}
@TestMetadata("kt-19336.java")
public void testKt_19336() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19336.java");
}
@TestMetadata("kt-19340.java")
public void testKt_19340() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19340.java");
}
@TestMetadata("kt-19346.java")
public void testKt_19346() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19346.java");
}
@TestMetadata("kt-19347.java")
public void testKt_19347() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19347.java");
}
@TestMetadata("kt-19348.java")
public void testKt_19348() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19348.java");
}
@TestMetadata("kt-19349.java")
public void testKt_19349() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19349.java");
}
@TestMetadata("kt-19352.java")
public void testKt_19352() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19352.java");
@@ -2736,6 +2761,51 @@ public class NewJavaToKotlinConverterSingleFileTestGenerated extends AbstractNew
runTest("nj2k/testData/newJ2k/issues/kt-19363.java");
}
@TestMetadata("kt-19382.java")
public void testKt_19382() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19382.java");
}
@TestMetadata("kt-19383.java")
public void testKt_19383() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19383.java");
}
@TestMetadata("kt-19396.java")
public void testKt_19396() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19396.java");
}
@TestMetadata("kt-19549.java")
public void testKt_19549() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19549.java");
}
@TestMetadata("kt-19550.java")
public void testKt_19550() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19550.java");
}
@TestMetadata("kt-19569.java")
public void testKt_19569() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19569.java");
}
@TestMetadata("kt-19591.java")
public void testKt_19591() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19591.java");
}
@TestMetadata("kt-19600.java")
public void testKt_19600() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19600.java");
}
@TestMetadata("kt-19602.java")
public void testKt_19602() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19602.java");
}
@TestMetadata("kt-19604.java")
public void testKt_19604() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19604.java");
@@ -2746,11 +2816,21 @@ public class NewJavaToKotlinConverterSingleFileTestGenerated extends AbstractNew
runTest("nj2k/testData/newJ2k/issues/kt-19606.java");
}
@TestMetadata("kt-19632.java")
public void testKt_19632() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19632.java");
}
@TestMetadata("kt-19634.java")
public void testKt_19634() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19634.java");
}
@TestMetadata("kt-19636.java")
public void testKt_19636() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19636.java");
}
@TestMetadata("kt-19639.java")
public void testKt_19639() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-19639.java");
@@ -2771,6 +2851,21 @@ public class NewJavaToKotlinConverterSingleFileTestGenerated extends AbstractNew
runTest("nj2k/testData/newJ2k/issues/kt-21189.java");
}
@TestMetadata("kt-21315.java")
public void testKt_21315() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-21315.java");
}
@TestMetadata("kt-22848.java")
public void testKt_22848() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-22848.java");
}
@TestMetadata("kt-28899.java")
public void testKt_28899() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-28899.java");
}
@TestMetadata("kt-31818.java")
public void testKt_31818() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-31818.java");
@@ -2851,6 +2946,11 @@ public class NewJavaToKotlinConverterSingleFileTestGenerated extends AbstractNew
runTest("nj2k/testData/newJ2k/issues/kt-809-string.java");
}
@TestMetadata("kt-8170.java")
public void testKt_8170() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-8170.java");
}
@TestMetadata("kt-820.java")
public void testKt_820() throws Exception {
runTest("nj2k/testData/newJ2k/issues/kt-820.java");