diff --git a/plugins/kotlin/j2k/shared/tests/testData/fullJDK/collections/listRestriction.java b/plugins/kotlin/j2k/shared/tests/testData/fullJDK/collections/listRestriction.java index c1bec176ad7b..192f825dc02d 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/fullJDK/collections/listRestriction.java +++ b/plugins/kotlin/j2k/shared/tests/testData/fullJDK/collections/listRestriction.java @@ -1,5 +1,3 @@ -// IGNORE_K2 - import java.util.Arrays; import java.util.List; diff --git a/plugins/kotlin/j2k/shared/tests/testData/fullJDK/collections/listRestriction.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/fullJDK/collections/listRestriction.k2.kt new file mode 100644 index 000000000000..44a0fca51fb7 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/fullJDK/collections/listRestriction.k2.kt @@ -0,0 +1,10 @@ +import java.util.Arrays +import java.util.List + +class Collections { + fun test() { + val x = List.of(null) + val y = List.of("C", null) + val z = Arrays.asList(null) + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/annotations/typeUseAnnotation.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/annotations/typeUseAnnotation.java index e32fcdd4e109..6fa6a6cb663d 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/annotations/typeUseAnnotation.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/annotations/typeUseAnnotation.java @@ -1,4 +1,3 @@ -// IGNORE_K2 // !ADD_JAVA_API import javaApi.Anon5; import javaApi.TypeUseAnon1; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/annotations/typeUseAnnotation.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/annotations/typeUseAnnotation.k2.kt new file mode 100644 index 000000000000..03e7386d25b4 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/annotations/typeUseAnnotation.k2.kt @@ -0,0 +1,113 @@ +// ERROR: This annotation is not applicable to target 'type parameter'. +// ERROR: This annotation is not applicable to target 'type parameter'. +import javaApi.Anon5 +import javaApi.TypeUseAnon1 +import javaApi.TypeUseAnon2 +import javaApi.TypeUseAnon3 +import java.io.File +class TEST1 { + @Anon5(1) + fun foo(@Anon5(2) o: @TypeUseAnon1 Any?): @TypeUseAnon1 String { + @Anon5(3) val baz: @TypeUseAnon1 String = "" + return "" + } + + @Anon5(4) + var bar: @TypeUseAnon1 String? = null +} + +class TEST2 { + @Anon5(1) + fun foo(@Anon5(2) o: @TypeUseAnon2 Any?): @TypeUseAnon2 String { + @Anon5(3) val baz: @TypeUseAnon2 String = "" + return "" + } + + @Anon5(4) + var bar: @TypeUseAnon2 String? = null +} + +class TEST3 { + @Anon5(1) + fun foo(@Anon5(2) o: @TypeUseAnon3 Any?): @TypeUseAnon3 String { + @Anon5(3) val baz: @TypeUseAnon3 String = "" + return "" + } + + @Anon5(4) + var bar: @TypeUseAnon3 String? = null +} + +class TestInstanceOf { + fun test(s: String?) { + println(s is @TypeUseAnon3 String) + } +} + +class TestTypeCast { + fun test(foo: Any?) { + val s = foo as @TypeUseAnon3 String? + } +} + +class TestInheritance1 : @TypeUseAnon1 C() +class TestInheritance2 : @TypeUseAnon1 I1 +class TestInheritance3 : @TypeUseAnon1 C(), @TypeUseAnon2 I1, @TypeUseAnon2 @TypeUseAnon3 I2 + +open class C +interface I1 +interface I2 + +class TestCatch { + fun foo() { + try { + } catch (e: @TypeUseAnon1 Exception) { + } + } +} + +class TestForLoopParameter { + fun foo(arr: IntArray) { + for (test: @TypeUseAnon1 Int in arr) { + println(test) + } + for (i: @TypeUseAnon1 Int in arr.indices) { + println(i) + } + } +} + +class TestPrimaryConstructorProperty(private var foo: @TypeUseAnon1 @TypeUseAnon2 String?) + +class TestStandardMethods : Cloneable { + override fun toString(): @TypeUseAnon1 String { + return "" + } + + @Throws(CloneNotSupportedException::class) + public override fun clone(): @TypeUseAnon1 Any { + return super.clone() + } +} + +annotation class TestAnnotationMethod( + val value: @TypeUseAnon1 String, + val value2: @TypeUseAnon1 @TypeUseAnon2 String = "test" +) + +/** + * TYPE_USE annotation is allowed on a type parameter only in Java, + * in Kotlin an error is expected. + */ +interface TestTypeParameter<@TypeUseAnon1 F : @TypeUseAnon1 File?> { + fun <@TypeUseAnon1 T : @TypeUseAnon1 File?> foo() +} + +class TestTypeArgument { + fun f1() { + this.f2<@TypeUseAnon1 String?>("") + } + + fun f2(t: T?) { + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/fieldUsageInInitBlockBeforeDeclarationWithInitializer.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/fieldUsageInInitBlockBeforeDeclarationWithInitializer.java index 63d5a1d6a61d..722c167c3770 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/fieldUsageInInitBlockBeforeDeclarationWithInitializer.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/fieldUsageInInitBlockBeforeDeclarationWithInitializer.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class C { { abc = 2; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/fieldUsageInInitBlockBeforeDeclarationWithInitializer.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/fieldUsageInInitBlockBeforeDeclarationWithInitializer.k2.kt new file mode 100644 index 000000000000..9143dc76e283 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/fieldUsageInInitBlockBeforeDeclarationWithInitializer.k2.kt @@ -0,0 +1,11 @@ +internal class C { + var abc: Int + + init { + abc = 2 + } + + init { + abc = 0 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/finalPrimitiveStaticFieldInitializedInStaticInitBlock.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/finalPrimitiveStaticFieldInitializedInStaticInitBlock.java index 76f7cb483906..5030f62f005c 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/finalPrimitiveStaticFieldInitializedInStaticInitBlock.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/finalPrimitiveStaticFieldInitializedInStaticInitBlock.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public final class Foo { private Foo() { } diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/finalPrimitiveStaticFieldInitializedInStaticInitBlock.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/finalPrimitiveStaticFieldInitializedInStaticInitBlock.k2.kt new file mode 100644 index 000000000000..66b82ce0d187 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/finalPrimitiveStaticFieldInitializedInStaticInitBlock.k2.kt @@ -0,0 +1,7 @@ +object Foo { + val isLinux: Boolean + + init { + isLinux = true + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/ktij14729.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/ktij14729.java index 850490eee4be..c129d758c4e5 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/ktij14729.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/ktij14729.java @@ -1,4 +1,3 @@ -// IGNORE_K2 import java.util.ArrayList; import java.util.List; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/ktij14729.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/ktij14729.k2.kt new file mode 100644 index 000000000000..09566a0f2233 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/ktij14729.k2.kt @@ -0,0 +1,15 @@ +class Temp1 { + private val listField: MutableList + + init { + listField = ArrayList() + } + + fun m() { + listField.add(2) + listField.add(1) + for (i in listField) { + println(i) + } + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneAnonBlock.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneAnonBlock.java index 2d73efa5756e..fba735a5ff0b 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneAnonBlock.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneAnonBlock.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class Test { String str; { diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneAnonBlock.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneAnonBlock.k2.kt new file mode 100644 index 000000000000..e220ae73b8e1 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneAnonBlock.k2.kt @@ -0,0 +1,3 @@ +internal class Test { + var str: String? = "Ola" +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneStaticAnonBlock.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneStaticAnonBlock.java index 298c86d1c3cb..36b254b1c356 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneStaticAnonBlock.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneStaticAnonBlock.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class Test { static String str; static { diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneStaticAnonBlock.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneStaticAnonBlock.k2.kt new file mode 100644 index 000000000000..fe895256ed81 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/oneStaticAnonBlock.k2.kt @@ -0,0 +1,7 @@ +internal object Test { + var str: String? + + init { + str = "Ola" + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/staticFieldUsageInInitBlockBeforeDeclarationWithInitializer.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/staticFieldUsageInInitBlockBeforeDeclarationWithInitializer.java index c32f62e6e257..b6bede4e742e 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/staticFieldUsageInInitBlockBeforeDeclarationWithInitializer.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/staticFieldUsageInInitBlockBeforeDeclarationWithInitializer.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class C { static { abc = 2; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/staticFieldUsageInInitBlockBeforeDeclarationWithInitializer.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/staticFieldUsageInInitBlockBeforeDeclarationWithInitializer.k2.kt new file mode 100644 index 000000000000..d4903b974db9 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/anonymousBlock/staticFieldUsageInInitBlockBeforeDeclarationWithInitializer.k2.kt @@ -0,0 +1,11 @@ +internal object C { + var abc: Int + + init { + abc = 2 + } + + init { + abc = 0 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/assertStatement/assertNotNull.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/assertStatement/assertNotNull.java index dc21635bdb23..fe09c7962161 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/assertStatement/assertNotNull.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/assertStatement/assertNotNull.java @@ -1,4 +1,3 @@ -// IGNORE_K2 abstract class C { String mMemberVariable; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/assertStatement/assertNotNull.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/assertStatement/assertNotNull.k2.kt new file mode 100644 index 000000000000..27de31eef7dd --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/assertStatement/assertNotNull.k2.kt @@ -0,0 +1,23 @@ +internal abstract class C { + var mMemberVariable: String? = null + + fun foo() { + val s1 = checkNotNull(f()) + val s2 = checkNotNull(g()) { "g should not return null" } + val doNotMergeDueToPossibleSideEffects = g() + assert(s2.hashCode() == 42) + val h = s2.hashCode() + + val s3 = "sss" + checkNotNull(s3.hashCode()) + + checkNotNull(doNotMergeDueToPossibleSideEffects) + checkNotNull(mMemberVariable) + + val doNotTouchDifferentAssert = f() + assert(doNotTouchDifferentAssert == null) + } + + abstract fun f(): String + abstract fun g(): String +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/binaryExpression/stringConcatenation.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/binaryExpression/stringConcatenation.java index 86507c217d3d..80fd114fd5d4 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/binaryExpression/stringConcatenation.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/binaryExpression/stringConcatenation.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class Foo { private static String s; private static Integer i; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/binaryExpression/stringConcatenation.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/binaryExpression/stringConcatenation.k2.kt new file mode 100644 index 000000000000..5527571e7f2f --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/binaryExpression/stringConcatenation.k2.kt @@ -0,0 +1,49 @@ +internal object Foo { + private val s: String? = null + private val i: Int? = null + private val c: Char? = null + + @JvmStatic + fun main(args: Array) { + println("5" + 1) + println(1.toString() + "5") + println((1 + 3).toString() + "5") + println((1 + 3).toString() + "5") + println("5" + "5" + (1 + 3)) + println("5" + "5" + 1 + 3) + println("5" + "5" + 1) + println("5" + ("5" + 1) + 3) + println("5" + ("5" + 1) + 3 + 4) + println(1.toString() + "3" + 4 + "5") + println((1 + 3 + 4).toString() + "5") + println("5" + 1 + 3 + 4) + println('c'.toString() + "5") + println(('c'.code + 'd'.code).toString() + "5") + println("5" + 'c') + println("5" + 'c' + 'd') + println(c.toString() + "s") + println(c.toString() + "s" + c) + println("s" + c + c) + println(s + 'c') + println(s + 'c' + 'd') + println('c'.toString() + s) + println(s + null) + println(null.toString() + s) + println(i.toString() + "s") + println(i.toString() + "s" + i) + println("s" + i + i) + println(null.toString() + "s") + println("s" + null) + println("s" + null + null) + val o = Any() + println(o.toString() + "") + println("" + o) + println(o.hashCode().toString() + "") + println("" + o.hashCode()) + val bar = arrayOf("hi") + println(1.toString() + bar[0]) + println((1 + 2).toString() + bar[0]) + println(bar[0] + 1) + println(bar[0] + 1 + 2) + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/comments/commentsForConstructors.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/comments/commentsForConstructors.java index 425c4416ff50..179aa7927e0b 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/comments/commentsForConstructors.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/comments/commentsForConstructors.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class A { private int v; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/comments/commentsForConstructors.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/comments/commentsForConstructors.k2.kt new file mode 100644 index 000000000000..8968b8582a4e --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/comments/commentsForConstructors.k2.kt @@ -0,0 +1,30 @@ +internal class A // this is a primary constructor +// this is a secondary constructor 1 +// end of primary constructor body +@JvmOverloads constructor(p: Int = 1) { + private val v = 1 + + // end of secondary constructor 1 body + + // this is a secondary constructor 2 + constructor(s: String) : this(s.length) // end of secondary constructor 2 body +} + +internal class B // this constructor will disappear +// end of constructor body + (private var x: Int) { + fun foo() {} +} + +/* + * The magic of comments + */ +// single line magic comments +internal class CtorComment { + var myA: String? = "a" +} + +internal class CtorComment2 /* + * The magic of comments + */ +// single line magic comments diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/customerBuilder.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/customerBuilder.java index bb148009cec4..4f99ad3c63d0 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/customerBuilder.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/customerBuilder.java @@ -1,4 +1,3 @@ -// IGNORE_K2 package org.test.customer class Customer { diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/customerBuilder.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/customerBuilder.k2.kt new file mode 100644 index 000000000000..cc4b4a635e17 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/customerBuilder.k2.kt @@ -0,0 +1,46 @@ +package org.test.customer + +internal class Customer(first: String?, last: String?) { + val firstName: String? + val lastName: String? + + init { + doSmthBefore() + this.firstName = first + this.lastName = last + doSmthAfter() + } + + private fun doSmthBefore() {} + private fun doSmthAfter() {} +} + +internal class CustomerBuilder { + var _firstName: String? = "Homer" + var _lastName: String? = "Simpson" + + fun WithFirstName(firstName: String?): CustomerBuilder { + _firstName = firstName + return this + } + + fun WithLastName(lastName: String?): CustomerBuilder { + _lastName = lastName + return this + } + + fun Build(): Customer { + return Customer(_firstName, _lastName) + } +} + +object User { + fun main() { + val customer = CustomerBuilder() + .WithFirstName("Homer") + .WithLastName("Simpson") + .Build() + println(customer.firstName) + println(customer.lastName) + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams10.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams10.java index e4518943fdcc..fddae7adbe7a 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams10.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams10.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class C { public String x; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams10.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams10.k1.kt new file mode 100644 index 000000000000..9f1c7f2d6bf7 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams10.k1.kt @@ -0,0 +1 @@ +internal class C(var x: String) diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams10.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams10.kt index 9f1c7f2d6bf7..5eeb748801f6 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams10.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams10.kt @@ -1 +1 @@ -internal class C(var x: String) +internal class C(var x: String?) diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams6.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams6.java index f0515b7d5a73..c7f28a7a16d9 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams6.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams6.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class C { public Object x; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams6.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams6.k2.kt new file mode 100644 index 000000000000..f0a7b9d97822 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams6.k2.kt @@ -0,0 +1,7 @@ +internal class C(x: String?) { + var x: Any? + + init { + this.x = x + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams9.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams9.java index c70475e0f8ac..8f02554c38f5 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams9.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams9.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class C { private final String string; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams9.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams9.k2.kt new file mode 100644 index 000000000000..7f176b5ef781 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParams9.k2.kt @@ -0,0 +1 @@ +internal class C @JvmOverloads constructor(private val string: String?, a: Int = string!!.length) diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParamsAnnotations.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParamsAnnotations.java index fbd80c004e46..af4853b1706e 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParamsAnnotations.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParamsAnnotations.java @@ -1,4 +1,3 @@ -// IGNORE_K2 import java.lang.SuppressWarnings; class C { diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParamsAnnotations.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParamsAnnotations.k1.kt new file mode 100644 index 000000000000..18ebeb44122d --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParamsAnnotations.k1.kt @@ -0,0 +1,8 @@ +// ERROR: This annotation is not applicable to target 'value parameter' and use site target '@field' +// ERROR: This annotation is not applicable to target 'value parameter' and use site target '@param' +// ERROR: This annotation is not applicable to target 'value parameter' and use site target '@param' +internal class C( + @field:Deprecated("") private val p1: Int, @param:Deprecated("") private val myP2: Int, @param:Deprecated( + "" + ) var p3: Int +) diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParamsAnnotations.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParamsAnnotations.kt index 18ebeb44122d..af04b91115a9 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParamsAnnotations.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/fieldsInitializedFromParamsAnnotations.kt @@ -1,6 +1,6 @@ -// ERROR: This annotation is not applicable to target 'value parameter' and use site target '@field' -// ERROR: This annotation is not applicable to target 'value parameter' and use site target '@param' -// ERROR: This annotation is not applicable to target 'value parameter' and use site target '@param' +// ERROR: This annotation is not applicable to target 'value parameter' and use-site target '@param'. +// ERROR: This annotation is not applicable to target 'value parameter' and use-site target '@param'. +// ERROR: This annotation is not applicable to target 'backing field' and use-site target '@field'. internal class C( @field:Deprecated("") private val p1: Int, @param:Deprecated("") private val myP2: Int, @param:Deprecated( "" diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/genericIdentifier.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/genericIdentifier.java index 0ef8537d46b5..c77f997a1c65 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/genericIdentifier.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/genericIdentifier.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class Identifier { private final T myName; private boolean myHasDollar; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/genericIdentifier.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/genericIdentifier.k2.kt new file mode 100644 index 000000000000..983e36e861d7 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/genericIdentifier.k2.kt @@ -0,0 +1,28 @@ +class Identifier { + val name: T? + private var myHasDollar = false + private var myNullable = true + + constructor(name: T?) { + this.name = name + } + + constructor(name: T?, isNullable: Boolean) { + this.name = name + myNullable = isNullable + } + + constructor(name: T?, hasDollar: Boolean, isNullable: Boolean) { + this.name = name + myHasDollar = hasDollar + myNullable = isNullable + } +} + +object User { + fun main() { + val i1: Identifier<*> = Identifier("name", false, true) + val i2: Identifier<*> = Identifier("name", false) + val i3: Identifier<*> = Identifier("name") + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/identifier.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/identifier.java index de3cfbd5d5d9..929628643c86 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/identifier.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/identifier.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class Identifier { private final String myName; private boolean myHasDollar; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/identifier.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/identifier.k1.kt new file mode 100644 index 000000000000..9a71adcccfb7 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/identifier.k1.kt @@ -0,0 +1,28 @@ +class Identifier { + val name: String + private var myHasDollar = false + private var myNullable = true + + constructor(name: String) { + this.name = name + } + + constructor(name: String, isNullable: Boolean) { + this.name = name + myNullable = isNullable + } + + constructor(name: String, hasDollar: Boolean, isNullable: Boolean) { + this.name = name + myHasDollar = hasDollar + myNullable = isNullable + } +} + +object User { + fun main() { + val i1 = Identifier("name", false, true) + val i2 = Identifier("name", false) + val i3 = Identifier("name") + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/identifier.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/identifier.kt index 9a71adcccfb7..04f5e050f294 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/identifier.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/identifier.kt @@ -1,18 +1,18 @@ class Identifier { - val name: String + val name: String? private var myHasDollar = false private var myNullable = true - constructor(name: String) { + constructor(name: String?) { this.name = name } - constructor(name: String, isNullable: Boolean) { + constructor(name: String?, isNullable: Boolean) { this.name = name myNullable = isNullable } - constructor(name: String, hasDollar: Boolean, isNullable: Boolean) { + constructor(name: String?, hasDollar: Boolean, isNullable: Boolean) { this.name = name myHasDollar = hasDollar myNullable = isNullable diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/lineBreaksBetweenParameters.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/lineBreaksBetweenParameters.java index 6529d4e1ed2b..dcdc479bd2a9 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/lineBreaksBetweenParameters.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/lineBreaksBetweenParameters.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class C1 { C1(int arg1, int arg2, diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/lineBreaksBetweenParameters.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/lineBreaksBetweenParameters.k2.kt new file mode 100644 index 000000000000..fc9644e0004d --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/lineBreaksBetweenParameters.k2.kt @@ -0,0 +1,16 @@ +internal class C1( + arg1: Int, + arg2: Int, + arg3: Int +) { + constructor( + x: Int, + y: Int + ) : this(x, x + y, 0) +} + +internal class C2( + private var arg1: Int, + private var arg2: Int, + arg3: Int +) diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain2.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain2.java index c5786830d613..985286c8030d 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain2.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain2.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class J { private String s1; private String s2; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain2.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain2.k2.kt new file mode 100644 index 000000000000..5131126f9fae --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain2.k2.kt @@ -0,0 +1,7 @@ +class J(private var s1: String?) { + private var s2: String? = null + + constructor(s1: String?, s2: String?) : this(s1) { + this.s2 = s2 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain3.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain3.java index edfd2d7440a6..cc8b486f647f 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain3.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain3.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class J { private String s1; private String s2; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain3.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain3.k2.kt new file mode 100644 index 000000000000..f84b65f82cb4 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain3.k2.kt @@ -0,0 +1,12 @@ +class J(private var s1: String?) { + private var s2: String? = null + private var s3: String? = null + + constructor(s1: String?, s2: String?) : this(s1) { + this.s2 = s2 + } + + constructor(s1: String?, s2: String?, s3: String?) : this(s1, s2) { + this.s3 = s3 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain4.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain4.java index 9828ce594b35..b84b44a9a2d1 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain4.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain4.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class J { private String s1; private String s2; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain4.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain4.k2.kt new file mode 100644 index 000000000000..05c203fa35ae --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/secondaryConstructorsChain4.k2.kt @@ -0,0 +1,17 @@ +class J(private var s1: String?) { + private var s2: String? = null + private var s3: String? = null + private var s4: String? = null + + constructor(s1: String?, s2: String?) : this(s1) { + this.s2 = s2 + } + + constructor(s1: String?, s2: String?, s3: String?) : this(s1, s2) { + this.s3 = s3 + } + + constructor(s1: String?, s2: String?, s3: String?, s4: String?) : this(s1, s2, s3) { + this.s4 = s4 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/staticFieldRefInFactoryFun.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/staticFieldRefInFactoryFun.java index 4ef92d0928d9..5e3aaf5f3104 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/staticFieldRefInFactoryFun.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/staticFieldRefInFactoryFun.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class C { private static int staticField1 = 0; private static int staticField2 = 0; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/staticFieldRefInFactoryFun.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/staticFieldRefInFactoryFun.k2.kt new file mode 100644 index 000000000000..256323d8b91e --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/constructors/staticFieldRefInFactoryFun.k2.kt @@ -0,0 +1,10 @@ +internal class C() { + constructor(p: Int) : this() { + println(staticField1 + staticField2) + } + + companion object { + private val staticField1 = 0 + private val staticField2 = 0 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/AnonymousClass.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/AnonymousClass.java index 96ae568220a6..fddf4ed94b80 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/AnonymousClass.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/AnonymousClass.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class X { void foo() { Runnable runnable = new Runnable() { diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/AnonymousClass.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/AnonymousClass.k2.kt new file mode 100644 index 000000000000..fd604505d620 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/AnonymousClass.k2.kt @@ -0,0 +1,11 @@ +class X { + fun foo() { + val runnable: Runnable = object : Runnable { + var value: Int = 10 + + override fun run() { + println(this.value) + } + } + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/CommentsInsideAccessors.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/CommentsInsideAccessors.java index 5af90b5e5514..78f2b6e29075 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/CommentsInsideAccessors.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/CommentsInsideAccessors.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class AccessorsArePreserved { private Integer someInt = 1; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/CommentsInsideAccessors.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/CommentsInsideAccessors.k1.kt new file mode 100644 index 000000000000..ddc59fa4a1ee --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/CommentsInsideAccessors.k1.kt @@ -0,0 +1,27 @@ +internal class AccessorsArePreserved { + var someInt: Int = 1 + // get header + get() { + // get body 1 + println("Some text") + // get body 2 + return field + } // get footer + // set header + set(state) { + // set body 1 + field = state + // set body 2 + println("Some text") + } // set footer +} + +internal class AccessorsAreRemoved { + // set body +// set footer +// set header +// get body +// get footer +// get header + var someInt: Int = 1 +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/CommentsInsideAccessors.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/CommentsInsideAccessors.kt index ddc59fa4a1ee..239ce0f44aee 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/CommentsInsideAccessors.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/CommentsInsideAccessors.kt @@ -1,5 +1,5 @@ internal class AccessorsArePreserved { - var someInt: Int = 1 + var someInt: Int? = 1 // get header get() { // get body 1 @@ -23,5 +23,5 @@ internal class AccessorsAreRemoved { // get body // get footer // get header - var someInt: Int = 1 + var someInt: Int? = 1 } diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClass.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClass.java index f3ab15288b8d..fe49677a6cf3 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClass.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClass.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class Test { private String id; private String name; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClass.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClass.k2.kt new file mode 100644 index 000000000000..dc7546dd9e81 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClass.k2.kt @@ -0,0 +1,5 @@ +class Test(var id: String?, var name: String?, var age: Int) { + init { + println(age) + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithAnnotations.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithAnnotations.java index 117dfc24151d..d2b54cc88049 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithAnnotations.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithAnnotations.java @@ -1,4 +1,3 @@ -// IGNORE_K2 @interface TestAnnotationField {} @interface TestAnnotationParam {} @interface TestAnnotationGet {} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithAnnotations.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithAnnotations.k2.kt new file mode 100644 index 000000000000..0a00cdfdfc48 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithAnnotations.k2.kt @@ -0,0 +1,7 @@ +internal annotation class TestAnnotationField +internal annotation class TestAnnotationParam +internal annotation class TestAnnotationGet +internal annotation class TestAnnotationSet + + +class Test(@field:TestAnnotationField @set:TestAnnotationSet @get:TestAnnotationGet @param:TestAnnotationParam var arg: String?) diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithMutableField.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithMutableField.java index 84469711c164..e215e8e735f1 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithMutableField.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithMutableField.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class Test { private int myCount; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithMutableField.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithMutableField.k2.kt new file mode 100644 index 000000000000..36fc93a12acd --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DataClassWithMutableField.k2.kt @@ -0,0 +1,5 @@ +class Test(var count: Int) { + fun inc() { + this.count++ + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName.java index 523c7262d4e3..f986c1f5e832 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class AAA { private int myX = 42; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName.k2.kt new file mode 100644 index 000000000000..022dc546176a --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName.k2.kt @@ -0,0 +1,10 @@ +class AAA { + var x: Int = 42 + private set + + fun foo(other: AAA) { + println(this.x) + println(other.x) + this.x = 10 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName2.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName2.java index 5ad5cc69ff5c..e040b8898426 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName2.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName2.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class AAA { private int myX = 42; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName2.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName2.k2.kt new file mode 100644 index 000000000000..ffe3e1eab355 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentFieldName2.k2.kt @@ -0,0 +1,4 @@ +class AAA { + var x: Int = 42 + private set +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentProtectedFieldName.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentProtectedFieldName.java index 162039e07f3e..bd531f519489 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentProtectedFieldName.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentProtectedFieldName.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class AAA { protected int myX = 42; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentProtectedFieldName.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentProtectedFieldName.k2.kt new file mode 100644 index 000000000000..8e7f59095086 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/DifferentProtectedFieldName.k2.kt @@ -0,0 +1,17 @@ +open class AAA { + var x: Int = 42 + protected set + + fun foo(other: AAA) { + println(this.x) + println(other.x) + this.x = 10 + } +} + +internal class BBB : AAA() { + fun bar() { + println(this.x) + this.x = 10 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/FieldUsagesInFactoryMethods.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/FieldUsagesInFactoryMethods.java index 22754875ed04..d06d660e1299 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/FieldUsagesInFactoryMethods.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/FieldUsagesInFactoryMethods.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class C { final int myArg1; int myArg2; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/FieldUsagesInFactoryMethods.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/FieldUsagesInFactoryMethods.k2.kt new file mode 100644 index 000000000000..c4bde6eddc94 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/FieldUsagesInFactoryMethods.k2.kt @@ -0,0 +1,14 @@ +internal class C(val arg1: Int) { + var arg2: Int = 0 + var arg3: Int = 0 + + constructor(arg1: Int, arg2: Int, arg3: Int) : this(arg1) { + this.arg2 = arg2 + this.arg3 = arg3 + } + + constructor(arg1: Int, arg2: Int) : this(arg1) { + this.arg2 = arg2 + this.arg3 = 0 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsages.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsages.java index 687e7549f69c..bdf4e369f476 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsages.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsages.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class AAA { private int x = 42; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsages.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsages.k2.kt new file mode 100644 index 000000000000..6c7ca48ac96a --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsages.k2.kt @@ -0,0 +1,17 @@ +class AAA { + var x: Int = 42 + + fun foo() { + this.x = this.x + 1 + } + + fun bar(other: AAA) { + other.x = other.x + 1 + } +} + +internal class B { + fun foo(a: AAA) { + a.x = a.x + 1 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowing.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowing.java index dead7b312f66..243d298bdedf 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowing.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowing.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class A { private String foo; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowing.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowing.k1.kt new file mode 100644 index 000000000000..2790c7776582 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowing.k1.kt @@ -0,0 +1,40 @@ +class A { + var foo: String? = null + + fun g1(foo: String): Boolean { + return this.foo == foo + } + + fun g2(foo: String): Boolean { + return this.foo == foo + } + + fun g3(foo: String, other: A): Boolean { + return other.foo == foo + } + + fun g4(foo: String?): Boolean { + return this.foo.equals(foo, ignoreCase = true) + } + + fun g5(foo: String?): Boolean { + return this.foo.equals(foo, ignoreCase = true) + } + + fun g6(foo: String?, other: A): Boolean { + return other.foo.equals(foo, ignoreCase = true) + } + + fun s1(foo: String?) { + this.foo = foo + } + + fun s2(foo: String?) { + this.foo = foo + } + + fun s3() { + val foo = "" + this.foo = foo + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowing.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowing.kt index 2790c7776582..0265ab9d3e6b 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowing.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowing.kt @@ -1,15 +1,15 @@ class A { var foo: String? = null - fun g1(foo: String): Boolean { + fun g1(foo: String?): Boolean { return this.foo == foo } - fun g2(foo: String): Boolean { + fun g2(foo: String?): Boolean { return this.foo == foo } - fun g3(foo: String, other: A): Boolean { + fun g3(foo: String?, other: A): Boolean { return other.foo == foo } diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowingWithRename.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowingWithRename.java index 47afd448d214..751f27630024 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowingWithRename.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowingWithRename.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class A { private String mItem; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowingWithRename.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowingWithRename.k2.kt new file mode 100644 index 000000000000..bbcdf40d8173 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterSetterUsagesShadowingWithRename.k2.kt @@ -0,0 +1,12 @@ +class A { + var item: String? = null + + fun f1(item: String?) { + this.item = this.item + item + } + + fun f2() { + val item = this.item + this.item = item + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect1.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect1.java index 2f057d804ed6..44d87cde67df 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect1.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect1.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class C { private String myX = ""; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect1.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect1.k2.kt new file mode 100644 index 000000000000..0fba3248e21f --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect1.k2.kt @@ -0,0 +1,16 @@ +class C { + private var myX: String? = "" + + var x: String? + get() { + println("getter invoked") + return myX + } + set(x) { + this.myX = x + } + + fun foo() { + println("myX = " + myX) + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect4.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect4.java index 50f32d0c1550..5a994e0594c8 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect4.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect4.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class C { private String x = ""; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect4.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect4.k1.kt new file mode 100644 index 000000000000..df64e1502c5e --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect4.k1.kt @@ -0,0 +1,7 @@ +class C { + var x: String = "" + get() { + println("getter invoked") + return field + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect4.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect4.kt index df64e1502c5e..fe671bf6b941 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect4.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect4.kt @@ -1,5 +1,5 @@ class C { - var x: String = "" + var x: String? = "" get() { println("getter invoked") return field diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect5.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect5.java index cc1cb3efad1d..b035e125e45c 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect5.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect5.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class C { private String x = ""; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect5.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect5.k1.kt new file mode 100644 index 000000000000..df64e1502c5e --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect5.k1.kt @@ -0,0 +1,7 @@ +class C { + var x: String = "" + get() { + println("getter invoked") + return field + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect5.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect5.kt index df64e1502c5e..fe671bf6b941 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect5.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect5.kt @@ -1,5 +1,5 @@ class C { - var x: String = "" + var x: String? = "" get() { println("getter invoked") return field diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect7.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect7.java index 2c5a637ca19b..951d344e87b8 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect7.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect7.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class C { private String x = "old"; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect7.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect7.k2.kt new file mode 100644 index 000000000000..5a91f3339fdc --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/GetterWithSideEffect7.k2.kt @@ -0,0 +1,19 @@ +class C { + var x: String? = "old" + get() { + println("side effect") + return field + } + set(x) { + println("old value: " + field) + field = x + } + + companion object { + @JvmStatic + fun main(args: Array) { + val c = C() + c.x = "new" + } + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/JavaKeywordPropertyName.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/JavaKeywordPropertyName.java index 5cfca40ae9d9..91fee573f4a2 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/JavaKeywordPropertyName.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/JavaKeywordPropertyName.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class C { private int field = 0; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/JavaKeywordPropertyName.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/JavaKeywordPropertyName.k2.kt new file mode 100644 index 000000000000..240deb8f442c --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/JavaKeywordPropertyName.k2.kt @@ -0,0 +1,8 @@ +internal class C { + var default: Int = 0 + private set + + fun foo() { + println(this.default) + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/KeywordPropertyName.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/KeywordPropertyName.java index 9b848944c456..de1d19b54823 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/KeywordPropertyName.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/KeywordPropertyName.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class C { private int field = 0; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/KeywordPropertyName.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/KeywordPropertyName.k2.kt new file mode 100644 index 000000000000..d4b942702694 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/KeywordPropertyName.k2.kt @@ -0,0 +1,8 @@ +internal class C { + var `this`: Int = 0 + private set + + fun foo() { + println(this.`this`) + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/PropertyAndFieldConflicts2.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/PropertyAndFieldConflicts2.java index 1fb66f4b11f8..e8a5e183df91 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/PropertyAndFieldConflicts2.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/PropertyAndFieldConflicts2.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class Test { public String getA() { return b; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/PropertyAndFieldConflicts2.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/PropertyAndFieldConflicts2.k2.kt new file mode 100644 index 000000000000..6e68ce41a2ab --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/PropertyAndFieldConflicts2.k2.kt @@ -0,0 +1,8 @@ +class Test { + fun getA(): String? { + return b + } + + var a: String? = "t" + var b: String? = "s" +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterTypeNotMatch.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterTypeNotMatch.java index b69b6e25f04b..32333645292e 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterTypeNotMatch.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterTypeNotMatch.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class A { private Object o; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterTypeNotMatch.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterTypeNotMatch.k2.kt new file mode 100644 index 000000000000..b70f06556dee --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterTypeNotMatch.k2.kt @@ -0,0 +1,11 @@ +internal class A { + var value: Any? = null + private set + + fun setValue(s: String?) { + takesString(s) + this.value = s + } + + private fun takesString(s: String?) {} +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect1.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect1.java index 4e9c55c583a3..49f8d9930217 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect1.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect1.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class C { private String myX = ""; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect1.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect1.k1.kt new file mode 100644 index 000000000000..63c1302da204 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect1.k1.kt @@ -0,0 +1,14 @@ +class C { + private var myX = "" + + var x: String + get() = myX + set(x) { + println("setter invoked") + this.myX = x + } + + fun foo() { + myX = "a" + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect1.kt index 63c1302da204..6a4f59e6fb69 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect1.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect1.kt @@ -1,7 +1,7 @@ class C { - private var myX = "" + private var myX: String? = "" - var x: String + var x: String? get() = myX set(x) { println("setter invoked") diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect4.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect4.java index 68d92ddefec2..0cd444957887 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect4.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect4.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class C { private String x = ""; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect4.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect4.k1.kt new file mode 100644 index 000000000000..5e087c6e0829 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect4.k1.kt @@ -0,0 +1,7 @@ +class C { + var x: String = "" + set(value) { + println("setter invoked") + field = value + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect4.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect4.kt index 5e087c6e0829..64794a81b812 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect4.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect4.kt @@ -1,5 +1,5 @@ class C { - var x: String = "" + var x: String? = "" set(value) { println("setter invoked") field = value diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect5.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect5.java index 8f0ec8f24f04..ebbfadf625a4 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect5.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect5.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class C { private String x = ""; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect5.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect5.k1.kt new file mode 100644 index 000000000000..70cc5156f99b --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect5.k1.kt @@ -0,0 +1,7 @@ +class C { + var x: String = "" + set(x) { + println("setter invoked") + field = x + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect5.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect5.kt index 70cc5156f99b..f083868b8b32 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect5.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect5.kt @@ -1,5 +1,5 @@ class C { - var x: String = "" + var x: String? = "" set(x) { println("setter invoked") field = x diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect6.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect6.java index 157ebcbbfedf..2a1025d432c5 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect6.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect6.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class C { private String x = ""; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect6.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect6.k2.kt new file mode 100644 index 000000000000..bcfc5ae73ee1 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect6.k2.kt @@ -0,0 +1,7 @@ +class C { + var x: String? = "" + set(x) { + println("old value: " + field) + field = x + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect7.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect7.java index fc76a703b432..566bb6e6f523 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect7.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect7.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class C { private String xx = ""; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect7.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect7.k1.kt new file mode 100644 index 000000000000..cc66bf0d2d44 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect7.k1.kt @@ -0,0 +1,10 @@ +class C { + private var xx = "" + + var x: String + get() = xx + set(value) { + println("setter invoked") + xx = value + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect7.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect7.kt index cc66bf0d2d44..8295e1dac307 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect7.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/SetterWithSideEffect7.kt @@ -1,7 +1,7 @@ class C { - private var xx = "" + private var xx: String? = "" - var x: String + var x: String? get() = xx set(value) { println("setter invoked") diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/UnresolvedType.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/UnresolvedType.java index c4e77c1203d9..3fe034b8e7de 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/UnresolvedType.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/UnresolvedType.java @@ -1,4 +1,3 @@ -// IGNORE_K2 interface I { Type getType(); } diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/UnresolvedType.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/UnresolvedType.k2.kt new file mode 100644 index 000000000000..4971b9c7cde4 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/UnresolvedType.k2.kt @@ -0,0 +1,10 @@ +// ERROR: Unresolved reference 'Type'. +// ERROR: Unresolved reference 'Type'. +internal interface I { + val type: Type? +} + +internal class C { + var x: Type? = null + private set +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/commentInInitStatement.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/commentInInitStatement.java index 2d2a2fbd3b55..9e105d46ed2f 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/commentInInitStatement.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/commentInInitStatement.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class Nya { private int i; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/commentInInitStatement.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/commentInInitStatement.k2.kt new file mode 100644 index 000000000000..1a65eb9273ed --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/commentInInitStatement.k2.kt @@ -0,0 +1,3 @@ +class Nya /*comment before*/ +/* comment after*/ // and after again + (/*1*/ /*3*/ /*4*/private var i: Int) diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/kt-32253.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/kt-32253.java index ef3d1d244262..e0d1da3042dd 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/kt-32253.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/kt-32253.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class TestInitInCtor { private int i; private int j; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/kt-32253.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/kt-32253.k2.kt new file mode 100644 index 000000000000..639a37953779 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/kt-32253.k2.kt @@ -0,0 +1,11 @@ +class TestInitInCtor(private var i: Int) { + private val j: Int + + init { + j = i + } + + fun foo(): Int { + return i + j + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/privateNestedClass.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/privateNestedClass.java index 7cea84faae84..c7d3ee52b2d7 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/privateNestedClass.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/privateNestedClass.java @@ -1,5 +1,3 @@ -// IGNORE_K2 - class Outer { void test(C c) { System.out.println(c.myString); diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/privateNestedClass.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/privateNestedClass.k2.kt new file mode 100644 index 000000000000..928343a393ff --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/detectProperties/privateNestedClass.k2.kt @@ -0,0 +1,21 @@ +// ERROR: Function 'internal' exposes its 'private-in-class' parameter type 'C'. +internal class Outer { + fun test(c: C) { + println(c.string) + println(c.string) + } + + private class C { + var string: String? = "" + private set + + fun report(s: String?) { + this.string = s + } + + fun test() { + println(this.string) + println(this.string) + } + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/docComments/primaryConstructorDoc.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/docComments/primaryConstructorDoc.java index 3386d0398606..f6deee781784 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/docComments/primaryConstructorDoc.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/docComments/primaryConstructorDoc.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class CtorComment { public String myA; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/docComments/primaryConstructorDoc.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/docComments/primaryConstructorDoc.k1.kt new file mode 100644 index 000000000000..5780e12804a2 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/docComments/primaryConstructorDoc.k1.kt @@ -0,0 +1,11 @@ +/** + * This constructor is especially useful + */ +internal class CtorComment { + var myA: String = "str" +} + +internal class CtorComment2 +/** + * This constructor is especially useful + */ diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/docComments/primaryConstructorDoc.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/docComments/primaryConstructorDoc.kt index 5780e12804a2..f670d6ce3342 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/docComments/primaryConstructorDoc.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/docComments/primaryConstructorDoc.kt @@ -2,7 +2,7 @@ * This constructor is especially useful */ internal class CtorComment { - var myA: String = "str" + var myA: String? = "str" } internal class CtorComment2 diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/fieldsWithPrimaryPrivateConstructor.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/fieldsWithPrimaryPrivateConstructor.java index 9d8d68e57752..ba1075142384 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/fieldsWithPrimaryPrivateConstructor.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/fieldsWithPrimaryPrivateConstructor.java @@ -1,4 +1,3 @@ -// IGNORE_K2 enum Color { WHITE(21), BLACK(22), RED(23), YELLOW(24), BLUE(25); diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/fieldsWithPrimaryPrivateConstructor.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/fieldsWithPrimaryPrivateConstructor.k2.kt new file mode 100644 index 000000000000..ee8809478e4b --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/fieldsWithPrimaryPrivateConstructor.k2.kt @@ -0,0 +1,3 @@ +internal enum class Color(var code: Int) { + WHITE(21), BLACK(22), RED(23), YELLOW(24), BLUE(25) +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/primaryPrivateConstructor.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/primaryPrivateConstructor.java index 7531543c1abb..c066f7c7563e 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/primaryPrivateConstructor.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/primaryPrivateConstructor.java @@ -1,4 +1,3 @@ -// IGNORE_K2 package demo; enum Color { diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/primaryPrivateConstructor.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/primaryPrivateConstructor.k2.kt new file mode 100644 index 000000000000..21ccd5de0ad9 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/enum/primaryPrivateConstructor.k2.kt @@ -0,0 +1,3 @@ +package demo + +internal enum class Color(var code: Int) diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/initializedBothWithInitializerAndConstructor.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/initializedBothWithInitializerAndConstructor.java index e869c5645593..68a9052ac8e5 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/initializedBothWithInitializerAndConstructor.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/initializedBothWithInitializerAndConstructor.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class TestFieldInitializer { private String string = ""; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/initializedBothWithInitializerAndConstructor.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/initializedBothWithInitializerAndConstructor.k1.kt new file mode 100644 index 000000000000..3669a045561f --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/initializedBothWithInitializerAndConstructor.k1.kt @@ -0,0 +1,7 @@ +class TestFieldInitializer(string: String) { + var string: String = "" + + init { + this.string = string + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/initializedBothWithInitializerAndConstructor.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/initializedBothWithInitializerAndConstructor.kt index 3669a045561f..68b6e74f76a5 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/initializedBothWithInitializerAndConstructor.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/initializedBothWithInitializerAndConstructor.kt @@ -1,5 +1,6 @@ -class TestFieldInitializer(string: String) { - var string: String = "" +class TestFieldInitializer(string: String?) { + var string: String? = "" + private set init { this.string = string diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/needInitializer.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/needInitializer.java index 262f4c535844..4e95f0057665 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/needInitializer.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/needInitializer.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class Init { public String field1; public String field2; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/needInitializer.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/needInitializer.k2.kt new file mode 100644 index 000000000000..b6452124aa3b --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/field/needInitializer.k2.kt @@ -0,0 +1,19 @@ +class Init { + var field1: String? = "str" + var field2: String? = null + + var field3: Int = 1 + var field4: Int = 0 + + init { + var prop1: String? + prop1 = "aaa" + + var prop2: String? + + var prop3: Int + prop3 = 1 + + var prop4: Int + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/formatting/trailingComma.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/formatting/trailingComma.java index 43d4cee60f96..01c5bbe5da94 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/formatting/trailingComma.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/formatting/trailingComma.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class J { public static void main(String[] args) { // normal case: trailing comma is preserved diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/formatting/trailingComma.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/formatting/trailingComma.k2.kt new file mode 100644 index 000000000000..73816f3e6ab8 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/formatting/trailingComma.k2.kt @@ -0,0 +1,55 @@ +internal object J { + @JvmStatic + fun main(args: Array) { + // normal case: trailing comma is preserved + val i = intArrayOf( + 1, + 2, + ) + + // all on one line: trailing comma is removed by Kotlin formatter + val j = intArrayOf(1, 2) + + // weird case with empty array: comma is removed (this syntax is invalid in Kotlin) + val k = arrayOf(intArrayOf(), intArrayOf()) + } +} + +internal enum class E { + A, B, +} + +internal enum class E2 { + A, B, +} + +internal enum class E3 { + A, + B, +} + +internal enum class E4 { + A, + B, +} + +internal enum class E5 { + A, + B, +} + +internal enum class E6 { + A, + B, + ; + + fun foo() {} +} + +internal enum class E7 { + A, + B, + ; + + fun foo() {} +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/functionalInterfaces/SamMethodWithGenerics.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/functionalInterfaces/SamMethodWithGenerics.java index 407562a39584..274a8b88a2af 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/functionalInterfaces/SamMethodWithGenerics.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/functionalInterfaces/SamMethodWithGenerics.java @@ -1,5 +1,3 @@ -// IGNORE_K2 - @FunctionalInterface public interface MyRunnable { void process(T t); diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/functionalInterfaces/SamMethodWithGenerics.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/functionalInterfaces/SamMethodWithGenerics.k2.kt new file mode 100644 index 000000000000..641b64d83457 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/functionalInterfaces/SamMethodWithGenerics.k2.kt @@ -0,0 +1,4 @@ +@FunctionalInterface +interface MyRunnable { + fun process(t: T?) +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/identifier/finalFieldReference.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/identifier/finalFieldReference.java index fc8c7940be1f..f5d31f19d644 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/identifier/finalFieldReference.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/identifier/finalFieldReference.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class $$$$$ {} class $ {} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/identifier/finalFieldReference.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/identifier/finalFieldReference.k2.kt new file mode 100644 index 000000000000..2a82ba8d121a --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/identifier/finalFieldReference.k2.kt @@ -0,0 +1,9 @@ +internal class `$$$$$` + +internal open class `$` + +internal class `$$`(val `$$$`: `$$$$$`?) : `$`() { + fun `$$$$$$`(): `$$$$$`? { + return `$$$` + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-14248.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-14248.java index 4be00ed76e44..d8e031cd2614 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-14248.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-14248.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class AppInfo { long mLastUpdateTime; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-14248.k1.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-14248.k1.kt new file mode 100644 index 000000000000..282f01b151b1 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-14248.k1.kt @@ -0,0 +1 @@ +class AppInfo(var mName: String, var mIcon: String, var mLastUpdateTime: Long) diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-14248.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-14248.kt index 282f01b151b1..542eb2630635 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-14248.kt +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-14248.kt @@ -1 +1 @@ -class AppInfo(var mName: String, var mIcon: String, var mLastUpdateTime: Long) +class AppInfo(var mName: String?, var mIcon: String?, var mLastUpdateTime: Long) diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19348.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19348.java index 4ec2c6b1b415..a397f8108560 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19348.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19348.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class TestMutltipleCtorsWithJavadoc { private String x; private String y; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19348.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19348.k2.kt new file mode 100644 index 000000000000..2f8c2d76ced9 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19348.k2.kt @@ -0,0 +1,20 @@ +class TestMutltipleCtorsWithJavadoc +/** + * Javadoc for 1st ctor + * @param x + */(private var x: String?) { + private var y: String? = null + + // --- + // Constructors + // + + /** + * Javadoc for 2nd ctor + * @param x + * @param y + */ + constructor(x: String?, y: String?) : this(x) { + this.y = y + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19396.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19396.java index 3ccdec3ed0de..2298707dfd06 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19396.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19396.java @@ -1,4 +1,3 @@ -// IGNORE_K2 package test; public class TestValReassign { diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19396.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19396.k2.kt new file mode 100644 index 000000000000..9386e38eff4a --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19396.k2.kt @@ -0,0 +1,9 @@ +package test + +class TestValReassign(private var s1: String?) { + private var s2: String? = null + + constructor(s1: String?, s2: String?) : this(s1) { + this.s2 = s2 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19600.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19600.java index f72941305868..2cb5f7d0309e 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19600.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19600.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class TestNumberConversionInSetter { private double d; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19600.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19600.k2.kt new file mode 100644 index 000000000000..c926e1432f57 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-19600.k2.kt @@ -0,0 +1,7 @@ +class TestNumberConversionInSetter { + var d: Double = 0.0 + + fun init() { + this.d = 1.0 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32436.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32436.java index 37a200c70550..8b8391cb2676 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32436.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32436.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class JClass { private T name; public T getName() { diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32436.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32436.k2.kt new file mode 100644 index 000000000000..852550d4badc --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32436.k2.kt @@ -0,0 +1,4 @@ +class JClass { + var name: T? = null + private set +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32702.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32702.java index 85903d195cf9..a04e4af96cbf 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32702.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32702.java @@ -1,5 +1,3 @@ -// IGNORE_K2 - import java.util.*; class Test { diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32702.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32702.k2.kt new file mode 100644 index 000000000000..6ad41df3ff55 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-32702.k2.kt @@ -0,0 +1,9 @@ +import java.util.function.Consumer + +internal class Test { + fun context() { + val items: MutableList = ArrayList() + items.add(1.0) + items.forEach(Consumer { x: Double? -> println(x) }) + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-638.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-638.java index c67703701ef6..8a5b22477da3 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-638.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-638.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class Identifier { private final T myName; private boolean myHasDollar; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-638.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-638.k2.kt new file mode 100644 index 000000000000..db855472b202 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-638.k2.kt @@ -0,0 +1,29 @@ +class Identifier { + val name: T? + private var myHasDollar = false + private var myNullable = true + + constructor(name: T?) { + this.name = name + } + + constructor(name: T?, isNullable: Boolean) { + this.name = name + myNullable = isNullable + } + + constructor(name: T?, hasDollar: Boolean, isNullable: Boolean) { + this.name = name + myHasDollar = hasDollar + myNullable = isNullable + } +} + +object User { + @JvmStatic + fun main(args: Array) { + val i1: Identifier<*> = Identifier("name", false, true) + val i2: Identifier<*> = Identifier("name", false) + val i3: Identifier<*> = Identifier("name") + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-836.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-836.java index f8a7173f2f98..cadbd6f58aba 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-836.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-836.java @@ -1,4 +1,3 @@ -// IGNORE_K2 package com.voltvoodoo.saplo4j.model; import java.io.Serializable; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-836.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-836.k2.kt new file mode 100644 index 000000000000..e9425254ad26 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-836.k2.kt @@ -0,0 +1,24 @@ +package com.voltvoodoo.saplo4j.model + +import java.io.Serializable + +class Language(protected var code: String?) : Serializable { + override fun toString(): String { + return this.code!! + } +} + + +internal open class Base { + open fun test() {} + override fun toString(): String { + return "BASE" + } +} + +internal class Child : Base() { + override fun test() {} + override fun toString(): String { + return "Child" + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-837.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-837.java index c7a20bc338b9..c1f41afeccf6 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-837.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-837.java @@ -1,4 +1,3 @@ -// IGNORE_K2 package com.voltvoodoo.saplo4j.model; import java.io.Serializable; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-837.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-837.k2.kt new file mode 100644 index 000000000000..9c083866e9e9 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/issues/kt-837.k2.kt @@ -0,0 +1,16 @@ +package com.voltvoodoo.saplo4j.model + +import java.io.Serializable + +class Language(protected var code: String?) : Serializable { + fun equals(other: Language): Boolean { + return other.toString() == this.toString() + } + + companion object { + var ENGLISH: Language = com.voltvoodoo.saplo4j.model.Language("en") + var SWEDISH: Language = com.voltvoodoo.saplo4j.model.Language("sv") + + private val serialVersionUID = -2442762969929206780L + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/methodCallExpression/vararg1.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/methodCallExpression/vararg1.java index 19be88bb1e96..31207fff3c1c 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/methodCallExpression/vararg1.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/methodCallExpression/vararg1.java @@ -1,4 +1,3 @@ -// IGNORE_K2 import java.lang.reflect.Constructor; class X { diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/methodCallExpression/vararg1.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/methodCallExpression/vararg1.k2.kt new file mode 100644 index 000000000000..2eb824898d15 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/methodCallExpression/vararg1.k2.kt @@ -0,0 +1,9 @@ +import java.lang.reflect.Constructor + +internal object X { + @Throws(Exception::class) + fun foo(constructor: Constructor, args1: Array, args2: Array?) { + constructor.newInstance(*args1) + constructor.newInstance(args1, args2) + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/Iterator2.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/Iterator2.java index ae59e80c3c6d..7aea280dd4f0 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/Iterator2.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/Iterator2.java @@ -1,4 +1,3 @@ -// IGNORE_K2 import java.util.ArrayList; import java.util.Iterator; import java.util.List; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/Iterator2.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/Iterator2.k2.kt new file mode 100644 index 000000000000..5bd14ea8e5bb --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/Iterator2.k2.kt @@ -0,0 +1,11 @@ +class TestMutableCollection { + val list: MutableList = ArrayList() + + fun test() { + val it = list.iterator() + while (it.hasNext()) { + val s = it.next() + if (s == "") it.remove() + } + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/MutableMap.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/MutableMap.java index da61119d66b3..2780798267e9 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/MutableMap.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/MutableMap.java @@ -1,4 +1,3 @@ -// IGNORE_K2 import java.util.*; public class J { diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/MutableMap.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/MutableMap.k2.kt new file mode 100644 index 000000000000..37ba91e840fb --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/MutableMap.k2.kt @@ -0,0 +1,27 @@ +class J { + fun foo( + m1: MutableMap, + m2: MutableMap, + m3: MutableMap, + m4: MutableMap, + m5: MutableMap, + m6: MutableMap, + m7: MutableMap, + m8: MutableMap, + m9: MutableMap, + m10: MutableMap, + m11: MutableMap + ) { + m1.clear() + m2.compute("m1") { k: String?, v: String? -> v } + m3.computeIfAbsent("m2") { k: String? -> "value" } + m4.computeIfPresent("m1") { k: String?, v: String? -> v } + m5.merge("", "") { k: String?, v: String? -> v } + m6.put("m1", "value") + m7.putAll(m8) + m8.putIfAbsent("m2", "value") + m9.remove("") + m10.replace("m2", "value") + m11.replaceAll { k: String?, v: String? -> v + "2" } + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/mutableListInOtherClass.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/mutableListInOtherClass.java index ddb116e9be88..8b0ac6447b15 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/mutableListInOtherClass.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/mutableListInOtherClass.java @@ -1,4 +1,3 @@ -// IGNORE_K2 import java.util.ArrayList; import java.util.List; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/mutableListInOtherClass.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/mutableListInOtherClass.k2.kt new file mode 100644 index 000000000000..c66387aa61e6 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/mutableCollections/mutableListInOtherClass.k2.kt @@ -0,0 +1,9 @@ +class Owner { + var list: MutableList = ArrayList() +} + +class Updater { + fun update(owner: Owner) { + owner.list.add("") + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newInnerClass.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newInnerClass.java index e0db08823333..686404c4a3ea 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newInnerClass.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newInnerClass.java @@ -1,4 +1,3 @@ -// IGNORE_K2 // KTIJ-29632 package org.test; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newInnerClass.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newInnerClass.k2.kt new file mode 100644 index 000000000000..ce1f1001bb27 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newInnerClass.k2.kt @@ -0,0 +1,15 @@ +// KTIJ-29632 +package org.test + +import org.test.OuterClass.InnerClass + +internal class OuterClass { + internal inner class InnerClass +} + +internal class User { + fun main() { + val outerObject = OuterClass() + val innerObject: InnerClass = outerObject.InnerClass() + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newStaticInnerClass.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newStaticInnerClass.java index 4184e868e3f5..40499b394ac8 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newStaticInnerClass.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newStaticInnerClass.java @@ -1,4 +1,3 @@ -// IGNORE_K2 // KTIJ-29632 package demo; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newStaticInnerClass.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newStaticInnerClass.k2.kt new file mode 100644 index 000000000000..a20d686ba6b6 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newClassExpression/newStaticInnerClass.k2.kt @@ -0,0 +1,14 @@ +// KTIJ-29632 +package demo + +import demo.Foo.Bar + +internal class Foo { + internal class Bar +} + +internal class User { + fun main() { + val boo: Bar = Bar() + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/generic.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/generic.java index 2afd1f3dae96..0ea187f17d99 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/generic.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/generic.java @@ -1,4 +1,3 @@ -// IGNORE_K2 // JVM_TARGET: 17 public record J(T x) { } \ No newline at end of file diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/generic.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/generic.k2.kt new file mode 100644 index 000000000000..672e0b8a536c --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/generic.k2.kt @@ -0,0 +1,3 @@ +// JVM_TARGET: 17 +@JvmRecord +data class J(val x: T?) diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/localReferences.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/localReferences.java index 077da279a7d9..5875e8a78c87 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/localReferences.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/localReferences.java @@ -1,4 +1,3 @@ -// IGNORE_K2 // JVM_TARGET: 17 public record J(int x) { void i(int y) {} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/localReferences.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/localReferences.k2.kt new file mode 100644 index 000000000000..b85233fd35b8 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/localReferences.k2.kt @@ -0,0 +1,23 @@ +// JVM_TARGET: 17 +@JvmRecord +data class J(val x: Int) { + fun i(y: Int) {} + + fun f1() { + i(x + this.x + this.x + this.x) + } + + fun f2(x: Int) { + i(x + this.x + this.x + this.x) + } + + fun f3(j: J) { + i(j.x + j.x) + } + + fun f4() { + val j = J(42) + f3(J(42)) + f3(j) + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/vararg.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/vararg.java index c52362ffdd9b..c6288854d8ef 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/vararg.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/vararg.java @@ -1,4 +1,3 @@ -// IGNORE_K2 // JVM_TARGET: 17 public record R(int... xs) { } \ No newline at end of file diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/vararg.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/vararg.k2.kt new file mode 100644 index 000000000000..119badbf447d --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/newJavaFeatures/recordClass/vararg.k2.kt @@ -0,0 +1,2 @@ +// JVM_TARGET: 17 +class R(vararg val xs: IntArray?) diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull2.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull2.java index 0af227af18ec..3bd1320d0cb6 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull2.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull2.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class C { private String s; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull2.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull2.k2.kt new file mode 100644 index 000000000000..26e79d174a05 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull2.k2.kt @@ -0,0 +1,7 @@ +internal class C(private var s: String?) { + fun foo() { + if (s != null) { + print("not null") + } + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull4.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull4.java index 72abb4c8a96b..2b1d1f69f008 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull4.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull4.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class C { private String s; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull4.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull4.k2.kt new file mode 100644 index 000000000000..908560cbcbf0 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/FieldComparedWithNull4.k2.kt @@ -0,0 +1,7 @@ +internal class C(private var s: String?) { + init { + if (s == null) { + print("null") + } + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/NullabilityByDfa.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/NullabilityByDfa.java index 5b3440b700f4..dd973af96e0c 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/NullabilityByDfa.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/NullabilityByDfa.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class SomeServiceUsage { public SomeService getService() { return SomeService.getInstanceNotNull(); diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/NullabilityByDfa.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/NullabilityByDfa.k2.kt new file mode 100644 index 000000000000..f238088641a7 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/NullabilityByDfa.k2.kt @@ -0,0 +1,49 @@ +class SomeServiceUsage { + val service: SomeService + get() = SomeService.getInstanceNotNull() + + val serviceNullable: SomeService? + get() = SomeService.getInstanceNullable() + + val serviceNotNullByDataFlow: SomeService + // elvis + get() { + val s = SomeService.getInstanceNullable() + return if (s == null) SomeService.getInstanceNotNull() else s + } + + // nullable, bang-bang + fun aString1(): String? { + return this.serviceNullable!!.nullableString() + } + + // nullable + fun aString2(): String? { + return this.service.nullableString() + } + + // not nullable + fun aString3(): String? { + return this.service.notNullString() + } + + // nullable, no bang-bang + fun aString4(): String? { + return this.serviceNotNullByDataFlow.nullableString() + } + + // not nullable, no bang-bang + fun aString5(): String? { + return this.serviceNotNullByDataFlow.notNullString() + } + + // nullable, safe-call + fun aString6(): String? { + val s = this.serviceNullable + if (s != null) { + return s.nullableString() + } else { + return null + } + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/notNullCast.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/notNullCast.java index 2ed69efae6da..29d26b54c391 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/notNullCast.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/notNullCast.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class Passenger { public static class PassParent { } diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/notNullCast.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/notNullCast.k2.kt new file mode 100644 index 000000000000..ae8b76292a18 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullability/notNullCast.k2.kt @@ -0,0 +1,29 @@ +class Passenger { + open class PassParent + + class PassChild : PassParent() + + fun provideNullable(p: Int): PassParent? { + return if (p > 0) PassChild() else null + } + + fun test1() { + val pass: PassParent? = checkNotNull(provideNullable(1)) + accept1(pass as PassChild) + } + + fun test2() { + val pass = provideNullable(1) + if (1 == 2) { + checkNotNull(pass) + accept2(pass as PassChild?) + } + accept2(pass as PassChild?) + } + + fun accept1(p: PassChild?) { + } + + fun accept2(p: PassChild?) { + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/AccessorToDrop.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/AccessorToDrop.java index 5fea5e1f722b..3515ecbdb7e5 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/AccessorToDrop.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/AccessorToDrop.java @@ -1,4 +1,3 @@ -// IGNORE_K2 class A { private int field = 0; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/AccessorToDrop.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/AccessorToDrop.k2.kt new file mode 100644 index 000000000000..6d2015276f99 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/AccessorToDrop.k2.kt @@ -0,0 +1,7 @@ +internal class A { + var field: Int = 0 + + fun setField() { + this.field = 0 + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/ConflictParameterName.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/ConflictParameterName.java index be3b8521e580..5aa047cfca76 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/ConflictParameterName.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/ConflictParameterName.java @@ -1,4 +1,3 @@ -// IGNORE_K2 public class Test { private int x = 1; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/ConflictParameterName.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/ConflictParameterName.k2.kt new file mode 100644 index 000000000000..e861e5741416 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/overloads/ConflictParameterName.k2.kt @@ -0,0 +1,47 @@ +class Test { + private var x = 1 + + private val a = true + + private val b = true + + private fun c(): Boolean { + return true + } + + private val isD: Boolean + get() = true + + private val e = E() + + class E { + var ee: Boolean = true + } + + class F { + var f: Boolean = true + } + + private val g: Int + get() = 1 + + @JvmOverloads + fun foo( + a: Boolean = this.a, + b: Boolean = this.b, + c: Boolean = this.c(), + isD: Boolean = this.isD, + e: Boolean = this.e.ee, + f: Boolean = F().f, + g: Int = this.g + ) { + } + + @JvmOverloads + fun bar(a: Boolean = this.a, e: Boolean = this.a, f: Boolean = b) { + } + + @JvmOverloads + fun baz(a: Boolean = !this.a, x: Int = ++this.x, y: Int = this.x++, z: Int = this.x + this.x + 1) { + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/postProcessing/JoinDeclarationAndAssignment.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/postProcessing/JoinDeclarationAndAssignment.java index 3ef972a6adc5..87bf27c7744c 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/postProcessing/JoinDeclarationAndAssignment.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/postProcessing/JoinDeclarationAndAssignment.java @@ -1,4 +1,3 @@ -// IGNORE_K2 import java.util.Arrays; public class TestCodeInConstructor { diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/postProcessing/JoinDeclarationAndAssignment.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/postProcessing/JoinDeclarationAndAssignment.k2.kt new file mode 100644 index 000000000000..b9867171cf0d --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/postProcessing/JoinDeclarationAndAssignment.k2.kt @@ -0,0 +1,20 @@ +import java.util.Arrays + +class TestCodeInConstructor(val height: Int, val width: Int, initialValue: Int) { + val size: Int + private val data: IntArray + + init { + this.size = height * width + this.data = IntArray(size) + Arrays.fill(data, initialValue) + } + + fun getData(i: Int): Int { + return data[i] + } + + fun putData(i: Int, value: Int) { + data[i] = value + } +} diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/rawGenerics/kt-540-map.java b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/rawGenerics/kt-540-map.java index 96bcb897ed1b..bd4d51666f78 100644 --- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/rawGenerics/kt-540-map.java +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/rawGenerics/kt-540-map.java @@ -1,4 +1,3 @@ -// IGNORE_K2 package demo; import java.util.HashMap; diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/rawGenerics/kt-540-map.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/rawGenerics/kt-540-map.k2.kt new file mode 100644 index 000000000000..086102844338 --- /dev/null +++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/rawGenerics/kt-540-map.k2.kt @@ -0,0 +1,9 @@ +package demo + +internal class Test { + fun main() { + val commonMap = HashMap() + val rawMap: HashMap<*, *> = HashMap() + val superRawMap: HashMap<*, *> = HashMap() + } +}