From 0dfaae2bb4ebd85f5f0bc876ffcacf9071de1911 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 21 Jun 2019 17:31:17 +0300 Subject: [PATCH] New J2K: add some tests from obsolete issues --- nj2k/testData/newJ2k/issues/kt-10712.java | 7 ++ nj2k/testData/newJ2k/issues/kt-10712.kt | 9 ++ nj2k/testData/newJ2k/issues/kt-19296.java | 12 +++ nj2k/testData/newJ2k/issues/kt-19296.kt | 10 ++ nj2k/testData/newJ2k/issues/kt-19340.java | 24 +++++ nj2k/testData/newJ2k/issues/kt-19340.kt | 22 ++++ nj2k/testData/newJ2k/issues/kt-19347.java | 15 +++ nj2k/testData/newJ2k/issues/kt-19347.kt | 15 +++ nj2k/testData/newJ2k/issues/kt-19349.java | 15 +++ nj2k/testData/newJ2k/issues/kt-19349.kt | 11 ++ nj2k/testData/newJ2k/issues/kt-19382.java | 9 ++ nj2k/testData/newJ2k/issues/kt-19382.kt | 9 ++ nj2k/testData/newJ2k/issues/kt-19383.java | 9 ++ nj2k/testData/newJ2k/issues/kt-19383.kt | 7 ++ nj2k/testData/newJ2k/issues/kt-19396.java | 15 +++ nj2k/testData/newJ2k/issues/kt-19396.kt | 10 ++ nj2k/testData/newJ2k/issues/kt-19549.java | 4 + nj2k/testData/newJ2k/issues/kt-19549.kt | 4 + nj2k/testData/newJ2k/issues/kt-19550.java | 22 ++++ nj2k/testData/newJ2k/issues/kt-19550.kt | 17 +++ nj2k/testData/newJ2k/issues/kt-19569.java | 6 ++ nj2k/testData/newJ2k/issues/kt-19569.kt | 6 ++ nj2k/testData/newJ2k/issues/kt-19591.java | 6 ++ nj2k/testData/newJ2k/issues/kt-19591.kt | 5 + nj2k/testData/newJ2k/issues/kt-19600.java | 15 +++ nj2k/testData/newJ2k/issues/kt-19600.kt | 8 ++ nj2k/testData/newJ2k/issues/kt-19602.java | 7 ++ nj2k/testData/newJ2k/issues/kt-19602.kt | 7 ++ nj2k/testData/newJ2k/issues/kt-19632.java | 8 ++ nj2k/testData/newJ2k/issues/kt-19632.kt | 5 + nj2k/testData/newJ2k/issues/kt-19636.java | 16 +++ nj2k/testData/newJ2k/issues/kt-19636.kt | 15 +++ nj2k/testData/newJ2k/issues/kt-21315.java | 7 ++ nj2k/testData/newJ2k/issues/kt-21315.kt | 8 ++ nj2k/testData/newJ2k/issues/kt-22848.java | 17 +++ nj2k/testData/newJ2k/issues/kt-22848.kt | 21 ++++ nj2k/testData/newJ2k/issues/kt-28899.java | 3 + nj2k/testData/newJ2k/issues/kt-28899.kt | 3 + nj2k/testData/newJ2k/issues/kt-8170.java | 24 +++++ nj2k/testData/newJ2k/issues/kt-8170.kt | 24 +++++ ...otlinConverterSingleFileTestGenerated.java | 100 ++++++++++++++++++ 41 files changed, 557 insertions(+) create mode 100644 nj2k/testData/newJ2k/issues/kt-10712.java create mode 100644 nj2k/testData/newJ2k/issues/kt-10712.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19296.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19296.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19340.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19340.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19347.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19347.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19349.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19349.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19382.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19382.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19383.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19383.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19396.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19396.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19549.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19549.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19550.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19550.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19569.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19569.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19591.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19591.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19600.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19600.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19602.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19602.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19632.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19632.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-19636.java create mode 100644 nj2k/testData/newJ2k/issues/kt-19636.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-21315.java create mode 100644 nj2k/testData/newJ2k/issues/kt-21315.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-22848.java create mode 100644 nj2k/testData/newJ2k/issues/kt-22848.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-28899.java create mode 100644 nj2k/testData/newJ2k/issues/kt-28899.kt create mode 100644 nj2k/testData/newJ2k/issues/kt-8170.java create mode 100644 nj2k/testData/newJ2k/issues/kt-8170.kt diff --git a/nj2k/testData/newJ2k/issues/kt-10712.java b/nj2k/testData/newJ2k/issues/kt-10712.java new file mode 100644 index 00000000000..ffbffde3dcb --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-10712.java @@ -0,0 +1,7 @@ +public class JJ { + public static void foo() {} + + public void bar() { + this.foo(); + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-10712.kt b/nj2k/testData/newJ2k/issues/kt-10712.kt new file mode 100644 index 00000000000..0d245452cb8 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-10712.kt @@ -0,0 +1,9 @@ +class JJ { + fun bar() { + foo() + } + + companion object { + fun foo() {} + } +} diff --git a/nj2k/testData/newJ2k/issues/kt-19296.java b/nj2k/testData/newJ2k/issues/kt-19296.java new file mode 100644 index 00000000000..7bd11c1edc7 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19296.java @@ -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; +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19296.kt b/nj2k/testData/newJ2k/issues/kt-19296.kt new file mode 100644 index 00000000000..7c99b451f6a --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19296.kt @@ -0,0 +1,10 @@ +open class A { + interface I { + fun f() + } +} + +class B : A() +class Test { + var z: A.I? = null +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19340.java b/nj2k/testData/newJ2k/issues/kt-19340.java new file mode 100644 index 00000000000..15816f255e6 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19340.java @@ -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); + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19340.kt b/nj2k/testData/newJ2k/issues/kt-19340.kt new file mode 100644 index 00000000000..d4da73317f5 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19340.kt @@ -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) + } +} diff --git a/nj2k/testData/newJ2k/issues/kt-19347.java b/nj2k/testData/newJ2k/issues/kt-19347.java new file mode 100644 index 00000000000..5960a038030 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19347.java @@ -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; + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19347.kt b/nj2k/testData/newJ2k/issues/kt-19347.kt new file mode 100644 index 00000000000..4901169f834 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19347.kt @@ -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 + } +} diff --git a/nj2k/testData/newJ2k/issues/kt-19349.java b/nj2k/testData/newJ2k/issues/kt-19349.java new file mode 100644 index 00000000000..7437e9250ce --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19349.java @@ -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); + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19349.kt b/nj2k/testData/newJ2k/issues/kt-19349.kt new file mode 100644 index 00000000000..36525ca2e85 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19349.kt @@ -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") + } +} diff --git a/nj2k/testData/newJ2k/issues/kt-19382.java b/nj2k/testData/newJ2k/issues/kt-19382.java new file mode 100644 index 00000000000..c14a9ca5922 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19382.java @@ -0,0 +1,9 @@ +package test; + +import java.util.HashMap; + +public class TestPrimitiveFromMap { + public int foo(HashMap map) { + return map.get("zzz"); + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19382.kt b/nj2k/testData/newJ2k/issues/kt-19382.kt new file mode 100644 index 00000000000..a6b4f579b0d --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19382.kt @@ -0,0 +1,9 @@ +package test + +import java.util.HashMap + +class TestPrimitiveFromMap { + fun foo(map: HashMap): Int { + return map["zzz"]!! + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19383.java b/nj2k/testData/newJ2k/issues/kt-19383.java new file mode 100644 index 00000000000..6c76ff51cd1 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19383.java @@ -0,0 +1,9 @@ +package test; + +import java.util.Map; + +public class TestMapGetAsReceiver { + public int foo(Map map) { + return map.get("zzz").length(); + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19383.kt b/nj2k/testData/newJ2k/issues/kt-19383.kt new file mode 100644 index 00000000000..5e49ea51bfd --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19383.kt @@ -0,0 +1,7 @@ +package test + +class TestMapGetAsReceiver { + fun foo(map: Map): Int { + return map["zzz"]!!.length + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19396.java b/nj2k/testData/newJ2k/issues/kt-19396.java new file mode 100644 index 00000000000..2298707dfd0 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19396.java @@ -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; + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19396.kt b/nj2k/testData/newJ2k/issues/kt-19396.kt new file mode 100644 index 00000000000..a27436ac9e1 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19396.kt @@ -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 + } + +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19549.java b/nj2k/testData/newJ2k/issues/kt-19549.java new file mode 100644 index 00000000000..5c504b9d2e4 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19549.java @@ -0,0 +1,4 @@ +public class TestNestedClassesHierarchy { + public static class Base {} + public static class Derived extends Base {} +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19549.kt b/nj2k/testData/newJ2k/issues/kt-19549.kt new file mode 100644 index 00000000000..b523c07295a --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19549.kt @@ -0,0 +1,4 @@ +class TestNestedClassesHierarchy { + open class Base + class Derived : Base() +} diff --git a/nj2k/testData/newJ2k/issues/kt-19550.java b/nj2k/testData/newJ2k/issues/kt-19550.java new file mode 100644 index 00000000000..34b6ed4d172 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19550.java @@ -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; + } + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19550.kt b/nj2k/testData/newJ2k/issues/kt-19550.kt new file mode 100644 index 00000000000..760f559b11c --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19550.kt @@ -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!! + } + } +} diff --git a/nj2k/testData/newJ2k/issues/kt-19569.java b/nj2k/testData/newJ2k/issues/kt-19569.java new file mode 100644 index 00000000000..52a3a02e65f --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19569.java @@ -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}; + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19569.kt b/nj2k/testData/newJ2k/issues/kt-19569.kt new file mode 100644 index 00000000000..30f5985f0dc --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19569.kt @@ -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 { + return arrayOf(x1, x2, x3, x4, x5, x6, x7, x8) + } +} diff --git a/nj2k/testData/newJ2k/issues/kt-19591.java b/nj2k/testData/newJ2k/issues/kt-19591.java new file mode 100644 index 00000000000..48f571ffab4 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19591.java @@ -0,0 +1,6 @@ +public class TestNumberConversionsInTernary { + public double intOrDoubleAsDouble(boolean flag, int x, double y) { + double result = flag ? x : y; + return result; + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19591.kt b/nj2k/testData/newJ2k/issues/kt-19591.kt new file mode 100644 index 00000000000..b9a85eb021a --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19591.kt @@ -0,0 +1,5 @@ +class TestNumberConversionsInTernary { + fun intOrDoubleAsDouble(flag: Boolean, x: Int, y: Double): Double { + return (if (flag) x else y).toDouble() + } +} diff --git a/nj2k/testData/newJ2k/issues/kt-19600.java b/nj2k/testData/newJ2k/issues/kt-19600.java new file mode 100644 index 00000000000..2cb5f7d0309 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19600.java @@ -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; + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19600.kt b/nj2k/testData/newJ2k/issues/kt-19600.kt new file mode 100644 index 00000000000..2eb60cd11cd --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19600.kt @@ -0,0 +1,8 @@ +class TestNumberConversionInSetter { + var d = 0.0 + + fun init() { + d = 1.0 + } + +} diff --git a/nj2k/testData/newJ2k/issues/kt-19602.java b/nj2k/testData/newJ2k/issues/kt-19602.java new file mode 100644 index 00000000000..e587b4ae58b --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19602.java @@ -0,0 +1,7 @@ +public class TestInnerClassCtor { + public class Inner {} + + public void test() { + new TestInnerClassCtor.Inner(); + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19602.kt b/nj2k/testData/newJ2k/issues/kt-19602.kt new file mode 100644 index 00000000000..1b3d0adbffa --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19602.kt @@ -0,0 +1,7 @@ +class TestInnerClassCtor { + inner class Inner + + fun test() { + Inner() + } +} diff --git a/nj2k/testData/newJ2k/issues/kt-19632.java b/nj2k/testData/newJ2k/issues/kt-19632.java new file mode 100644 index 00000000000..e734d64b827 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19632.java @@ -0,0 +1,8 @@ +// RUNTIME_WITH_FULL_JDK + +import java.util.function.Predicate; + +public class TestSamInitializedWithLambda { + public final Predicate isEmpty = + x -> x.length() == 0; +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19632.kt b/nj2k/testData/newJ2k/issues/kt-19632.kt new file mode 100644 index 00000000000..d5989597929 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19632.kt @@ -0,0 +1,5 @@ +import java.util.function.Predicate + +class TestSamInitializedWithLambda { + val isEmpty = Predicate { x: String -> x.length == 0 } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19636.java b/nj2k/testData/newJ2k/issues/kt-19636.java new file mode 100644 index 00000000000..c2ae238ab14 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19636.java @@ -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(); + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-19636.kt b/nj2k/testData/newJ2k/issues/kt-19636.kt new file mode 100644 index 00000000000..4d359c9488a --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-19636.kt @@ -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() + } +} diff --git a/nj2k/testData/newJ2k/issues/kt-21315.java b/nj2k/testData/newJ2k/issues/kt-21315.java new file mode 100644 index 00000000000..3612e7957a7 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-21315.java @@ -0,0 +1,7 @@ +public class Test { + int foo = 1; + + public Test() { + int foo = foo = 2; + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-21315.kt b/nj2k/testData/newJ2k/issues/kt-21315.kt new file mode 100644 index 00000000000..f8c35d8f055 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-21315.kt @@ -0,0 +1,8 @@ +class Test { + internal var foo = 1 + + init { + foo = 2 + val foo = foo + } +} diff --git a/nj2k/testData/newJ2k/issues/kt-22848.java b/nj2k/testData/newJ2k/issues/kt-22848.java new file mode 100644 index 00000000000..9061629e080 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-22848.java @@ -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); + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-22848.kt b/nj2k/testData/newJ2k/issues/kt-22848.kt new file mode 100644 index 00000000000..9f8360444e6 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-22848.kt @@ -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) + } +} diff --git a/nj2k/testData/newJ2k/issues/kt-28899.java b/nj2k/testData/newJ2k/issues/kt-28899.java new file mode 100644 index 00000000000..b776a8e9988 --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-28899.java @@ -0,0 +1,3 @@ +public class J { + public double x; +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-28899.kt b/nj2k/testData/newJ2k/issues/kt-28899.kt new file mode 100644 index 00000000000..af22a62ed3c --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-28899.kt @@ -0,0 +1,3 @@ +class J { + var x = 0.0 +} diff --git a/nj2k/testData/newJ2k/issues/kt-8170.java b/nj2k/testData/newJ2k/issues/kt-8170.java new file mode 100644 index 00000000000..f49a7c8903d --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-8170.java @@ -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; } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-8170.kt b/nj2k/testData/newJ2k/issues/kt-8170.kt new file mode 100644 index 00000000000..a567409121e --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-8170.kt @@ -0,0 +1,24 @@ +object ArrayNullable { + @JvmStatic + fun main(args: Array) { + val notNull = 0 + val a1: Array = arrayOfNulls(2) + a1[0] = null + a1[1] = notNull + println(a1[0]) + println(a1[1]) + val a2: Array = 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 + } +} diff --git a/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java b/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java index b7639c8cc43..7381d4b6e32 100644 --- a/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java +++ b/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java @@ -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");