diff --git a/j2k/testData/fileOrElement/annotations/serialVersionUID.new.kt b/j2k/testData/fileOrElement/annotations/serialVersionUID.new.kt new file mode 100644 index 00000000000..77bed891dca --- /dev/null +++ b/j2k/testData/fileOrElement/annotations/serialVersionUID.new.kt @@ -0,0 +1,17 @@ +import java.io.Serializable + +class Bar : Serializable { + internal var foobar = 0 + + companion object { + private const val serialVersionUID: Long = 0 + } +} + +class Foo { + internal var foobar = 0 + + companion object { + private const val serialVersionUID: Long = 0 + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/anonymousBlock/oneAnonBlock.new.kt b/j2k/testData/fileOrElement/anonymousBlock/oneAnonBlock.new.kt new file mode 100644 index 00000000000..4c70349dc77 --- /dev/null +++ b/j2k/testData/fileOrElement/anonymousBlock/oneAnonBlock.new.kt @@ -0,0 +1,7 @@ +internal class Test { + var str: String? = null + + init { + str = "Ola" + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/anonymousClass/kt-13146.new.kt b/j2k/testData/fileOrElement/anonymousClass/kt-13146.new.kt new file mode 100644 index 00000000000..04f5e3abad0 --- /dev/null +++ b/j2k/testData/fileOrElement/anonymousClass/kt-13146.new.kt @@ -0,0 +1,28 @@ +class Test { + var someRunnable: Runnable? = object : Runnable { + override fun run() { + this.run() + } + } +} + +class Test2 { + private val someRunnable: Runnable = object : Runnable { + override fun run() { + this.run() + } + } +} + +class Handler { + fun postDelayed(r: Runnable?, time: Long) {} +} + +class Test3 { + private val handler = Handler() + private val someRunnable: Runnable = object : Runnable { + override fun run() { + handler.postDelayed(this, 1000) + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/anonymousClass/localSelfReference.new.kt b/j2k/testData/fileOrElement/anonymousClass/localSelfReference.new.kt new file mode 100644 index 00000000000..d4e33e503ab --- /dev/null +++ b/j2k/testData/fileOrElement/anonymousClass/localSelfReference.new.kt @@ -0,0 +1,9 @@ +class Test { + fun someMethod() { + val someRunnable: Runnable = object : Runnable { + override fun run() { + this.run() + } + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/arrayAccessExpression/expressionIndex.new.kt b/j2k/testData/fileOrElement/arrayAccessExpression/expressionIndex.new.kt new file mode 100644 index 00000000000..501e3a92517 --- /dev/null +++ b/j2k/testData/fileOrElement/arrayAccessExpression/expressionIndex.new.kt @@ -0,0 +1 @@ +myArray[myLibrary!!.calculateIndex(100)] \ No newline at end of file diff --git a/j2k/testData/fileOrElement/arrayInitializerExpression/objectArrayWithLength.new.kt b/j2k/testData/fileOrElement/arrayInitializerExpression/objectArrayWithLength.new.kt new file mode 100644 index 00000000000..cddd5166a6a --- /dev/null +++ b/j2k/testData/fileOrElement/arrayInitializerExpression/objectArrayWithLength.new.kt @@ -0,0 +1 @@ +val a: Array = arrayOfNulls(10) \ No newline at end of file diff --git a/j2k/testData/fileOrElement/arrayType/arrayInitializationStatement.new.kt b/j2k/testData/fileOrElement/arrayType/arrayInitializationStatement.new.kt new file mode 100644 index 00000000000..f3d373d93a6 --- /dev/null +++ b/j2k/testData/fileOrElement/arrayType/arrayInitializationStatement.new.kt @@ -0,0 +1 @@ +val d2: Array = arrayOf() \ No newline at end of file diff --git a/j2k/testData/fileOrElement/arrayType/arrayInitializationStatementWithDimension3d.new.kt b/j2k/testData/fileOrElement/arrayType/arrayInitializationStatementWithDimension3d.new.kt new file mode 100644 index 00000000000..9b573a3b8f3 --- /dev/null +++ b/j2k/testData/fileOrElement/arrayType/arrayInitializationStatementWithDimension3d.new.kt @@ -0,0 +1 @@ +val d3: Array?> = Array(5) { arrayOfNulls(5) } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/arrayType/d2StringEmptyArray.new.kt b/j2k/testData/fileOrElement/arrayType/d2StringEmptyArray.new.kt new file mode 100644 index 00000000000..c8636888837 --- /dev/null +++ b/j2k/testData/fileOrElement/arrayType/d2StringEmptyArray.new.kt @@ -0,0 +1 @@ +val ss: Array?> = Array(5) { arrayOfNulls(5) } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/arrayType/d3StringEmptyArray.new.kt b/j2k/testData/fileOrElement/arrayType/d3StringEmptyArray.new.kt new file mode 100644 index 00000000000..0d13952255a --- /dev/null +++ b/j2k/testData/fileOrElement/arrayType/d3StringEmptyArray.new.kt @@ -0,0 +1 @@ +val sss: Array?>?> = Array(5) { Array(5) { arrayOfNulls(5) } } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/arrayType/methodArrayArgs.new.kt b/j2k/testData/fileOrElement/arrayType/methodArrayArgs.new.kt new file mode 100644 index 00000000000..6377a9cefd7 --- /dev/null +++ b/j2k/testData/fileOrElement/arrayType/methodArrayArgs.new.kt @@ -0,0 +1 @@ +fun fromArrayToCollection(a: Array?) {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/arrayType/newStringArray.new.kt b/j2k/testData/fileOrElement/arrayType/newStringArray.new.kt new file mode 100644 index 00000000000..272212183d5 --- /dev/null +++ b/j2k/testData/fileOrElement/arrayType/newStringArray.new.kt @@ -0,0 +1 @@ +val a: Array = arrayOf("abc") \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assertStatement/withStringDetail2.java b/j2k/testData/fileOrElement/assertStatement/withStringDetail2.java index c8b9e98482f..2b1b105d795 100644 --- a/j2k/testData/fileOrElement/assertStatement/withStringDetail2.java +++ b/j2k/testData/fileOrElement/assertStatement/withStringDetail2.java @@ -1,2 +1,3 @@ //statement +String x = "nya" assert true : "string details:" + x; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assertStatement/withStringDetail2.kt b/j2k/testData/fileOrElement/assertStatement/withStringDetail2.kt index 2265730172b..b2c8773ba1e 100644 --- a/j2k/testData/fileOrElement/assertStatement/withStringDetail2.kt +++ b/j2k/testData/fileOrElement/assertStatement/withStringDetail2.kt @@ -1 +1,2 @@ +val x = "nya" assert(true) { "string details:$x" } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assignmentExpression/and.java b/j2k/testData/fileOrElement/assignmentExpression/and.java index 87343d1f4b3..0ebf0c51b06 100644 --- a/j2k/testData/fileOrElement/assignmentExpression/and.java +++ b/j2k/testData/fileOrElement/assignmentExpression/and.java @@ -1,2 +1,3 @@ //statement +int x = 0; x &= 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assignmentExpression/and.kt b/j2k/testData/fileOrElement/assignmentExpression/and.kt index dc3b47760da..1d792f6ba71 100644 --- a/j2k/testData/fileOrElement/assignmentExpression/and.kt +++ b/j2k/testData/fileOrElement/assignmentExpression/and.kt @@ -1 +1,2 @@ +var x = 0 x = x and 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assignmentExpression/or.java b/j2k/testData/fileOrElement/assignmentExpression/or.java index 23b460585e4..b96ede3d476 100644 --- a/j2k/testData/fileOrElement/assignmentExpression/or.java +++ b/j2k/testData/fileOrElement/assignmentExpression/or.java @@ -1,2 +1,3 @@ //statement +int x = 0; x |= 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assignmentExpression/or.kt b/j2k/testData/fileOrElement/assignmentExpression/or.kt index 776a84a8989..e7692ec57b5 100644 --- a/j2k/testData/fileOrElement/assignmentExpression/or.kt +++ b/j2k/testData/fileOrElement/assignmentExpression/or.kt @@ -1 +1,2 @@ +var x = 0 x = x or 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assignmentExpression/shiftLeft.java b/j2k/testData/fileOrElement/assignmentExpression/shiftLeft.java index 03fa9731b1d..a3d11fd79ab 100644 --- a/j2k/testData/fileOrElement/assignmentExpression/shiftLeft.java +++ b/j2k/testData/fileOrElement/assignmentExpression/shiftLeft.java @@ -1,2 +1,3 @@ //statement +int x = 0; x <<= 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assignmentExpression/shiftLeft.kt b/j2k/testData/fileOrElement/assignmentExpression/shiftLeft.kt index bc26f965e4d..01043c5add6 100644 --- a/j2k/testData/fileOrElement/assignmentExpression/shiftLeft.kt +++ b/j2k/testData/fileOrElement/assignmentExpression/shiftLeft.kt @@ -1 +1,2 @@ +var x = 0 x = x shl 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assignmentExpression/shiftRight.java b/j2k/testData/fileOrElement/assignmentExpression/shiftRight.java index 4f5d7b82a9e..80cc29a0716 100644 --- a/j2k/testData/fileOrElement/assignmentExpression/shiftRight.java +++ b/j2k/testData/fileOrElement/assignmentExpression/shiftRight.java @@ -1,2 +1,3 @@ //statement +int x = 0; x >>= 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assignmentExpression/shiftRight.kt b/j2k/testData/fileOrElement/assignmentExpression/shiftRight.kt index a731104d2f6..98f0bccab36 100644 --- a/j2k/testData/fileOrElement/assignmentExpression/shiftRight.kt +++ b/j2k/testData/fileOrElement/assignmentExpression/shiftRight.kt @@ -1 +1,2 @@ +var x = 0 x = x shr 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assignmentExpression/unsignedRightShift.java b/j2k/testData/fileOrElement/assignmentExpression/unsignedRightShift.java index 4176ef9f7c9..fcfda3cf298 100644 --- a/j2k/testData/fileOrElement/assignmentExpression/unsignedRightShift.java +++ b/j2k/testData/fileOrElement/assignmentExpression/unsignedRightShift.java @@ -1,2 +1,3 @@ //statement +int x = 0; x >>>= 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assignmentExpression/unsignedRightShift.kt b/j2k/testData/fileOrElement/assignmentExpression/unsignedRightShift.kt index 2450029bd56..8639a4f8019 100644 --- a/j2k/testData/fileOrElement/assignmentExpression/unsignedRightShift.kt +++ b/j2k/testData/fileOrElement/assignmentExpression/unsignedRightShift.kt @@ -1 +1,2 @@ +var x = 0 x = x ushr 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assignmentExpression/xor.java b/j2k/testData/fileOrElement/assignmentExpression/xor.java index 30b5fb03944..89abbfe0bfc 100644 --- a/j2k/testData/fileOrElement/assignmentExpression/xor.java +++ b/j2k/testData/fileOrElement/assignmentExpression/xor.java @@ -1,2 +1,3 @@ //statement +int x = 0; x ^= 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/assignmentExpression/xor.kt b/j2k/testData/fileOrElement/assignmentExpression/xor.kt index 381ed467f3d..8ba5872948a 100644 --- a/j2k/testData/fileOrElement/assignmentExpression/xor.kt +++ b/j2k/testData/fileOrElement/assignmentExpression/xor.kt @@ -1 +1,2 @@ +var x = 0 x = x xor 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/and.java b/j2k/testData/fileOrElement/binaryExpression/and.java index c98318c73c9..c2de69e33ea 100644 --- a/j2k/testData/fileOrElement/binaryExpression/and.java +++ b/j2k/testData/fileOrElement/binaryExpression/and.java @@ -1,2 +1,3 @@ -//expression -x & 2 \ No newline at end of file +//statement +int x = 2; +x & 2; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/and.kt b/j2k/testData/fileOrElement/binaryExpression/and.kt index cbf463b36ea..bc6a45a62c5 100644 --- a/j2k/testData/fileOrElement/binaryExpression/and.kt +++ b/j2k/testData/fileOrElement/binaryExpression/and.kt @@ -1 +1,2 @@ +val x = 2 x and 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/or.java b/j2k/testData/fileOrElement/binaryExpression/or.java index 0159b923787..2a4d3dc603d 100644 --- a/j2k/testData/fileOrElement/binaryExpression/or.java +++ b/j2k/testData/fileOrElement/binaryExpression/or.java @@ -1,2 +1,3 @@ -//expression -x | 2 \ No newline at end of file +//statement +int x = 0; +x | 2; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/or.kt b/j2k/testData/fileOrElement/binaryExpression/or.kt index ccad705935d..d419f5ce20e 100644 --- a/j2k/testData/fileOrElement/binaryExpression/or.kt +++ b/j2k/testData/fileOrElement/binaryExpression/or.kt @@ -1 +1,2 @@ +val x = 0 x or 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/shiftLeft.java b/j2k/testData/fileOrElement/binaryExpression/shiftLeft.java index 38e4593e86c..5c2c27eaa05 100644 --- a/j2k/testData/fileOrElement/binaryExpression/shiftLeft.java +++ b/j2k/testData/fileOrElement/binaryExpression/shiftLeft.java @@ -1,2 +1,3 @@ -//expression -x << 2 \ No newline at end of file +//statement +int x = 0; +x << 2; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/shiftLeft.kt b/j2k/testData/fileOrElement/binaryExpression/shiftLeft.kt index face9a53255..e04ec4fd687 100644 --- a/j2k/testData/fileOrElement/binaryExpression/shiftLeft.kt +++ b/j2k/testData/fileOrElement/binaryExpression/shiftLeft.kt @@ -1 +1,2 @@ +val x = 0 x shl 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/shiftRight.java b/j2k/testData/fileOrElement/binaryExpression/shiftRight.java index b5aa8e4ea34..7fb5df4a0a8 100644 --- a/j2k/testData/fileOrElement/binaryExpression/shiftRight.java +++ b/j2k/testData/fileOrElement/binaryExpression/shiftRight.java @@ -1,2 +1,3 @@ -//expression -x >> 2 \ No newline at end of file +//statement +int x = 0; +x >> 2; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/shiftRight.kt b/j2k/testData/fileOrElement/binaryExpression/shiftRight.kt index 771795abe88..c38a902830e 100644 --- a/j2k/testData/fileOrElement/binaryExpression/shiftRight.kt +++ b/j2k/testData/fileOrElement/binaryExpression/shiftRight.kt @@ -1 +1,2 @@ +val x = 0 x shr 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/unsignedRightShift.java b/j2k/testData/fileOrElement/binaryExpression/unsignedRightShift.java index 93650d0559d..366b0cbceeb 100644 --- a/j2k/testData/fileOrElement/binaryExpression/unsignedRightShift.java +++ b/j2k/testData/fileOrElement/binaryExpression/unsignedRightShift.java @@ -1,2 +1,3 @@ -//expression -x >>> 2 \ No newline at end of file +//statement +int x = 0; +x >>> 2; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/unsignedRightShift.kt b/j2k/testData/fileOrElement/binaryExpression/unsignedRightShift.kt index 8b8c1f89e58..329048347fe 100644 --- a/j2k/testData/fileOrElement/binaryExpression/unsignedRightShift.kt +++ b/j2k/testData/fileOrElement/binaryExpression/unsignedRightShift.kt @@ -1 +1,2 @@ +val x = 0 x.ushr(2) \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/unsignedRightShift.new.kt b/j2k/testData/fileOrElement/binaryExpression/unsignedRightShift.new.kt new file mode 100644 index 00000000000..caedf12ed6b --- /dev/null +++ b/j2k/testData/fileOrElement/binaryExpression/unsignedRightShift.new.kt @@ -0,0 +1,2 @@ +val x = 0 +x ushr 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/xor.java b/j2k/testData/fileOrElement/binaryExpression/xor.java index a4d007cd388..0e428ffedb8 100644 --- a/j2k/testData/fileOrElement/binaryExpression/xor.java +++ b/j2k/testData/fileOrElement/binaryExpression/xor.java @@ -1,2 +1,3 @@ -//expression -x ^ 2 \ No newline at end of file +//statement +int x = 0; +x ^ 2; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/binaryExpression/xor.kt b/j2k/testData/fileOrElement/binaryExpression/xor.kt index b8ad1650a31..054541b878a 100644 --- a/j2k/testData/fileOrElement/binaryExpression/xor.kt +++ b/j2k/testData/fileOrElement/binaryExpression/xor.kt @@ -1 +1,2 @@ +val x = 0 x xor 2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/blocks/Blocks.java b/j2k/testData/fileOrElement/blocks/Blocks.java index b6d6c86aebe..482216bf6bf 100644 --- a/j2k/testData/fileOrElement/blocks/Blocks.java +++ b/j2k/testData/fileOrElement/blocks/Blocks.java @@ -1,4 +1,5 @@ //method +void bar(int a) {} void foo() { { int a = 1; diff --git a/j2k/testData/fileOrElement/blocks/Blocks.kt b/j2k/testData/fileOrElement/blocks/Blocks.kt index f1644d4da0e..963a45f381b 100644 --- a/j2k/testData/fileOrElement/blocks/Blocks.kt +++ b/j2k/testData/fileOrElement/blocks/Blocks.kt @@ -1,3 +1,4 @@ +fun bar(a: Int) {} fun foo() { run { val a = 1 diff --git a/j2k/testData/fileOrElement/boxedType/Boxing.new.kt b/j2k/testData/fileOrElement/boxedType/Boxing.new.kt new file mode 100644 index 00000000000..b3a75fb210c --- /dev/null +++ b/j2k/testData/fileOrElement/boxedType/Boxing.new.kt @@ -0,0 +1,11 @@ +internal class Boxing { + fun test() { + var i: Int? = 0 + val n: Number = 0.0f + i = 1 + var j = i + val k = i + 2 + i = null + j = i!! + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/boxedType/boolean.java b/j2k/testData/fileOrElement/boxedType/boolean.java index 5ed417e2121..0d8f384a606 100644 --- a/j2k/testData/fileOrElement/boxedType/boolean.java +++ b/j2k/testData/fileOrElement/boxedType/boolean.java @@ -1,2 +1,2 @@ //statement -Boolean i = 10; \ No newline at end of file +Boolean i = false; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/boxedType/boolean.kt b/j2k/testData/fileOrElement/boxedType/boolean.kt index 428839e7260..312cc7faf81 100644 --- a/j2k/testData/fileOrElement/boxedType/boolean.kt +++ b/j2k/testData/fileOrElement/boxedType/boolean.kt @@ -1 +1 @@ -val i = 10 \ No newline at end of file +val i = false \ No newline at end of file diff --git a/j2k/testData/fileOrElement/boxedType/byte.new.kt b/j2k/testData/fileOrElement/boxedType/byte.new.kt new file mode 100644 index 00000000000..7af812fb2c4 --- /dev/null +++ b/j2k/testData/fileOrElement/boxedType/byte.new.kt @@ -0,0 +1 @@ +val i: Byte = 10 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/boxedType/character.new.kt b/j2k/testData/fileOrElement/boxedType/character.new.kt new file mode 100644 index 00000000000..8979361fc4b --- /dev/null +++ b/j2k/testData/fileOrElement/boxedType/character.new.kt @@ -0,0 +1 @@ +val i = 10.toChar() \ No newline at end of file diff --git a/j2k/testData/fileOrElement/boxedType/double.new.kt b/j2k/testData/fileOrElement/boxedType/double.new.kt new file mode 100644 index 00000000000..e50b233a541 --- /dev/null +++ b/j2k/testData/fileOrElement/boxedType/double.new.kt @@ -0,0 +1 @@ +val i = 10.0 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/boxedType/float.new.kt b/j2k/testData/fileOrElement/boxedType/float.new.kt new file mode 100644 index 00000000000..7fe6aa8bd70 --- /dev/null +++ b/j2k/testData/fileOrElement/boxedType/float.new.kt @@ -0,0 +1 @@ +val i = 10f \ No newline at end of file diff --git a/j2k/testData/fileOrElement/boxedType/long.new.kt b/j2k/testData/fileOrElement/boxedType/long.new.kt new file mode 100644 index 00000000000..75c504b3bf4 --- /dev/null +++ b/j2k/testData/fileOrElement/boxedType/long.new.kt @@ -0,0 +1 @@ +val i: Long = 10 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/boxedType/object.new.kt b/j2k/testData/fileOrElement/boxedType/object.new.kt new file mode 100644 index 00000000000..511364b1cc7 --- /dev/null +++ b/j2k/testData/fileOrElement/boxedType/object.new.kt @@ -0,0 +1 @@ +val i: Any = 10 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/boxedType/short.new.kt b/j2k/testData/fileOrElement/boxedType/short.new.kt new file mode 100644 index 00000000000..83854b77e5d --- /dev/null +++ b/j2k/testData/fileOrElement/boxedType/short.new.kt @@ -0,0 +1 @@ +val i: Short = 10 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/callChainExpression/libraryFieldCall.new.kt b/j2k/testData/fileOrElement/callChainExpression/libraryFieldCall.new.kt new file mode 100644 index 00000000000..d21ce423275 --- /dev/null +++ b/j2k/testData/fileOrElement/callChainExpression/libraryFieldCall.new.kt @@ -0,0 +1,12 @@ +import java.io.PrintStream + +internal object Library { + val ourOut: PrintStream? = null +} + +internal class User { + fun main() { + + Library.ourOut!!.print(1) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/callChainExpression/libraryMethodCall.new.kt b/j2k/testData/fileOrElement/callChainExpression/libraryMethodCall.new.kt new file mode 100644 index 00000000000..1e5249dd228 --- /dev/null +++ b/j2k/testData/fileOrElement/callChainExpression/libraryMethodCall.new.kt @@ -0,0 +1,14 @@ +internal object Library { + fun call() {} + + val string: String + get() = "" + +} + +internal class User { + fun main() { + Library.call() + Library.string.isEmpty() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/callChainExpression/libraryMethodCallFromInstance.new.kt b/j2k/testData/fileOrElement/callChainExpression/libraryMethodCallFromInstance.new.kt new file mode 100644 index 00000000000..4431816509a --- /dev/null +++ b/j2k/testData/fileOrElement/callChainExpression/libraryMethodCallFromInstance.new.kt @@ -0,0 +1,18 @@ +internal class Library { + fun call() {} + + val string: String + get() = "" + +} + +internal class User { + fun main() { + val lib = Library() + lib.call() + lib.string.isEmpty() + + Library().call() + Library().string.isEmpty() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/abstractClassShape.new.kt b/j2k/testData/fileOrElement/class/abstractClassShape.new.kt new file mode 100644 index 00000000000..eb513353890 --- /dev/null +++ b/j2k/testData/fileOrElement/class/abstractClassShape.new.kt @@ -0,0 +1,4 @@ +internal abstract class Shape { + var color: String? = null + abstract fun area(): Double +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/anonymousClass.new.kt b/j2k/testData/fileOrElement/class/anonymousClass.new.kt new file mode 100644 index 00000000000..6b7b76286da --- /dev/null +++ b/j2k/testData/fileOrElement/class/anonymousClass.new.kt @@ -0,0 +1,7 @@ +package test + +import javaApi.Listener + +class Test { + private val listener = Listener { visibility -> val a = visibility and 1 } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/classWithEmptyMethods.new.kt b/j2k/testData/fileOrElement/class/classWithEmptyMethods.new.kt new file mode 100644 index 00000000000..253df7668b5 --- /dev/null +++ b/j2k/testData/fileOrElement/class/classWithEmptyMethods.new.kt @@ -0,0 +1,5 @@ +internal class T { + fun main() {} + fun i(): Int {} + fun s(): String? {} +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/classWithFields.new.kt b/j2k/testData/fileOrElement/class/classWithFields.new.kt new file mode 100644 index 00000000000..6dc1e950f04 --- /dev/null +++ b/j2k/testData/fileOrElement/class/classWithFields.new.kt @@ -0,0 +1,4 @@ +internal class T { + var a: String? = "abc" + var b = 10 +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/classWithMultiplyFields.new.kt b/j2k/testData/fileOrElement/class/classWithMultiplyFields.new.kt new file mode 100644 index 00000000000..aa37c7766a7 --- /dev/null +++ b/j2k/testData/fileOrElement/class/classWithMultiplyFields.new.kt @@ -0,0 +1,5 @@ +internal class T { + var a: String? = null + var b: String? = null + var c: String? = "abc" +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsOneInterface.java b/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsOneInterface.java index 94d075a5b1a..5e037600e19 100644 --- a/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsOneInterface.java +++ b/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsOneInterface.java @@ -1,2 +1,3 @@ -//class -final class A extends Base implements I {} \ No newline at end of file +interface I {} +class Base {} +final class A extends Base implements I {} diff --git a/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsOneInterface.kt b/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsOneInterface.kt index a06efb21b5f..8b0ed3c97ad 100644 --- a/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsOneInterface.kt +++ b/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsOneInterface.kt @@ -1 +1,3 @@ -internal class A : Base(), I \ No newline at end of file +internal interface I +internal open class Base +internal class A : Base(), I diff --git a/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsSeveralInterfaces.java b/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsSeveralInterfaces.java index e51899fd468..77c60e88bb9 100644 --- a/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsSeveralInterfaces.java +++ b/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsSeveralInterfaces.java @@ -1,2 +1,5 @@ -//class +class Base {} +interface I0 {} +interface I1 {} +interface I2 {} final class A extends Base implements I0, I1, I2 {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsSeveralInterfaces.kt b/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsSeveralInterfaces.kt index 6e0b895a30c..fda8e07b1fe 100644 --- a/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsSeveralInterfaces.kt +++ b/j2k/testData/fileOrElement/class/extendsOneClassAndImplementsSeveralInterfaces.kt @@ -1 +1,5 @@ +internal open class Base +internal interface I0 +internal interface I1 +internal interface I2 internal class A : Base(), I0, I1, I2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/kt-639.new.kt b/j2k/testData/fileOrElement/class/kt-639.new.kt new file mode 100644 index 00000000000..beb7a868d79 --- /dev/null +++ b/j2k/testData/fileOrElement/class/kt-639.new.kt @@ -0,0 +1,18 @@ +// ERROR: Type inference failed: Not enough information to infer parameter K in constructor HashMap(initialCapacity: Int) Please specify it explicitly. +// ERROR: Type inference failed: Not enough information to infer parameter K in constructor HashMap(initialCapacity: Int) Please specify it explicitly. +package demo + +internal class Test { + constructor() {} + constructor(s: String?) {} +} + +internal class User { + fun main() { + val m: HashMap<*, *> = HashMap(1) + val m2: HashMap<*, *> = HashMap(10) + + val t1 = Test() + val t2 = Test("") + } +} diff --git a/j2k/testData/fileOrElement/class/notUtilityClass.new.kt b/j2k/testData/fileOrElement/class/notUtilityClass.new.kt new file mode 100644 index 00000000000..67308224c4e --- /dev/null +++ b/j2k/testData/fileOrElement/class/notUtilityClass.new.kt @@ -0,0 +1,9 @@ +internal open class Base { + companion object { + const val CONSTANT = 10 + } +} + +internal class Derived : Base() { + fun foo() {} +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/simpleInheritance.java b/j2k/testData/fileOrElement/class/simpleInheritance.java index 7eca37f745f..be4055e203a 100644 --- a/j2k/testData/fileOrElement/class/simpleInheritance.java +++ b/j2k/testData/fileOrElement/class/simpleInheritance.java @@ -1,2 +1,2 @@ -//class +class Base {} final class A extends Base {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/simpleInheritance.kt b/j2k/testData/fileOrElement/class/simpleInheritance.kt index 5ce62bd2699..3b4eac11c86 100644 --- a/j2k/testData/fileOrElement/class/simpleInheritance.kt +++ b/j2k/testData/fileOrElement/class/simpleInheritance.kt @@ -1 +1,2 @@ +internal open class Base internal class A : Base() \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/utilityClass1.new.kt b/j2k/testData/fileOrElement/class/utilityClass1.new.kt new file mode 100644 index 00000000000..3223975e501 --- /dev/null +++ b/j2k/testData/fileOrElement/class/utilityClass1.new.kt @@ -0,0 +1,6 @@ +internal object Util { + + const val CONSTANT = 10 + fun util1() {} + fun util2() {} +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/utilityClass3.new.kt b/j2k/testData/fileOrElement/class/utilityClass3.new.kt new file mode 100644 index 00000000000..3223975e501 --- /dev/null +++ b/j2k/testData/fileOrElement/class/utilityClass3.new.kt @@ -0,0 +1,6 @@ +internal object Util { + + const val CONSTANT = 10 + fun util1() {} + fun util2() {} +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/class/utilityClass5.new.kt b/j2k/testData/fileOrElement/class/utilityClass5.new.kt new file mode 100644 index 00000000000..761b8f65cfd --- /dev/null +++ b/j2k/testData/fileOrElement/class/utilityClass5.new.kt @@ -0,0 +1,11 @@ +object Util { + const val publicStr = "" + internal const val protectedStr = "" + internal const val packageStr = "" + private const val privateStr = "" + + fun publicMethod() {} + internal fun protectedMethod() {} + internal fun packageMethod() {} + private fun privateMethod() {} +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/classExpression/complexExample.new.kt b/j2k/testData/fileOrElement/classExpression/complexExample.new.kt new file mode 100644 index 00000000000..ecc805c709d --- /dev/null +++ b/j2k/testData/fileOrElement/classExpression/complexExample.new.kt @@ -0,0 +1 @@ +val constrArgTypes: Array?> = arrayOf(Array::class.java, String::class.java, Int::class.java, Double::class.java) \ No newline at end of file diff --git a/j2k/testData/fileOrElement/conditionalExpression/simple.new.kt b/j2k/testData/fileOrElement/conditionalExpression/simple.new.kt new file mode 100644 index 00000000000..3df43253875 --- /dev/null +++ b/j2k/testData/fileOrElement/conditionalExpression/simple.new.kt @@ -0,0 +1 @@ +if (a!!.isEmpty()) 0 else 1 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/allCallsPrimary2.new.kt b/j2k/testData/fileOrElement/constructors/allCallsPrimary2.new.kt new file mode 100644 index 00000000000..1b3e7afa00f --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/allCallsPrimary2.new.kt @@ -0,0 +1,27 @@ +internal class C(val myArg1: Int) { + var myArg2: Int + var myArg3: Int + + constructor(arg1: Int, arg2: Int, arg3: Int) : this(arg1) { + myArg2 = arg2 + myArg3 = arg3 + } + + constructor(arg1: Int, arg2: Int) : this(arg1) { + myArg2 = arg2 + myArg3 = 0 + } + + init { + myArg2 = 0 + myArg3 = 0 + } +} + +object User { + fun main() { + val c1 = C(100, 100, 100) + val c2 = C(100, 100) + val c3 = C(100) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/artificialPrimary.new.kt b/j2k/testData/fileOrElement/constructors/artificialPrimary.new.kt new file mode 100644 index 00000000000..03903869fd4 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/artificialPrimary.new.kt @@ -0,0 +1,14 @@ +// ERROR: Property must be initialized or be abstract +class Test { + private val s: String? + internal var b = false + internal var d = 0.0 + + constructor() { + b = true + } + + constructor(s: String?) { + this.s = s + } +} diff --git a/j2k/testData/fileOrElement/constructors/customerBuilder.new.kt b/j2k/testData/fileOrElement/constructors/customerBuilder.new.kt new file mode 100644 index 00000000000..42506f73f7a --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/customerBuilder.new.kt @@ -0,0 +1,41 @@ +package org.test.customer + +internal class Customer(val firstName: String?, val lastName: String?) { + init { + doSmthBefore() + 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) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams4.new.kt b/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams4.new.kt new file mode 100644 index 00000000000..7dbe730a2b3 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams4.new.kt @@ -0,0 +1,7 @@ +internal class C(p: Int, c: C) { + var p = 0 + + init { + c.p = p + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams5.new.kt b/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams5.new.kt new file mode 100644 index 00000000000..1a7fff1b04d --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams5.new.kt @@ -0,0 +1,10 @@ +internal class C(p: Int) { + var p: Int + + init { + this.p = 0 + if (p > 0) { + this.p = p + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams6.new.kt b/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams6.new.kt new file mode 100644 index 00000000000..6ee5fae078c --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams6.new.kt @@ -0,0 +1,7 @@ +internal class C(x: String?) { + var x: Any? + + init { + this.x = x + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams7.new.kt b/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams7.new.kt new file mode 100644 index 00000000000..5fe49ec3ae5 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams7.new.kt @@ -0,0 +1,9 @@ +internal class C(x: Any?, b: Boolean) { + var x: Any? = null + + init { + if (b) { + this.x = x + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams8.new.kt b/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams8.new.kt new file mode 100644 index 00000000000..2428ec5be91 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParams8.new.kt @@ -0,0 +1,3 @@ +internal open class Base(o: Any?, l: Int) + +internal class C(private val string: String) : Base(string, string.length) diff --git a/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParamsAnnotations.new.kt b/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParamsAnnotations.new.kt new file mode 100644 index 00000000000..83c11a3ce31 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/fieldsInitializedFromParamsAnnotations.new.kt @@ -0,0 +1 @@ +internal class C(@Deprecated("") private val p1: Int, private val myP2: Int, @SuppressWarnings("x") var p3: Int) \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/genericIdentifier.new.kt b/j2k/testData/fileOrElement/constructors/genericIdentifier.new.kt new file mode 100644 index 00000000000..73e15967941 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/genericIdentifier.new.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("name", false) + val i3 = Identifier("name") + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/identifier.new.kt b/j2k/testData/fileOrElement/constructors/identifier.new.kt new file mode 100644 index 00000000000..b2eef0194ef --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/identifier.new.kt @@ -0,0 +1,29 @@ +// ERROR: Property must be initialized or be abstract +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") + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/nestedClassNameInParameterDefaults.new.kt b/j2k/testData/fileOrElement/constructors/nestedClassNameInParameterDefaults.new.kt new file mode 100644 index 00000000000..3abf416f367 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/nestedClassNameInParameterDefaults.new.kt @@ -0,0 +1,7 @@ +internal class A @JvmOverloads constructor(nested: Nested? = Nested(Nested.FIELD)) { + internal class Nested(p: Int) { + companion object { + const val FIELD = 0 + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/nestedClassNameInParameterDefaults2.new.kt b/j2k/testData/fileOrElement/constructors/nestedClassNameInParameterDefaults2.new.kt new file mode 100644 index 00000000000..412b10eed73 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/nestedClassNameInParameterDefaults2.new.kt @@ -0,0 +1,11 @@ +internal class A @JvmOverloads constructor(nested: Nested? = Nested(Nested.FIELD)) { + internal class Nested(p: Int) { + companion object { + const val FIELD = 0 + } + } +} + +internal class B { + var nested: A.Nested? = null +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/nestedClassNameInParameterDefaults3.new.kt b/j2k/testData/fileOrElement/constructors/nestedClassNameInParameterDefaults3.new.kt new file mode 100644 index 00000000000..31852bcc4a0 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/nestedClassNameInParameterDefaults3.new.kt @@ -0,0 +1,13 @@ +package pack + +internal class A @JvmOverloads constructor(nested: Nested? = Nested(Nested.FIELD)) { + internal class Nested(p: Int) { + companion object { + const val FIELD = 0 + } + } +} + +internal class B { + var nested: A.Nested? = null +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/nestedClassNameInParameterDefaults4.new.kt b/j2k/testData/fileOrElement/constructors/nestedClassNameInParameterDefaults4.new.kt new file mode 100644 index 00000000000..31852bcc4a0 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/nestedClassNameInParameterDefaults4.new.kt @@ -0,0 +1,13 @@ +package pack + +internal class A @JvmOverloads constructor(nested: Nested? = Nested(Nested.FIELD)) { + internal class Nested(p: Int) { + companion object { + const val FIELD = 0 + } + } +} + +internal class B { + var nested: A.Nested? = null +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/nestedClassNameInSuperParameters.new.kt b/j2k/testData/fileOrElement/constructors/nestedClassNameInSuperParameters.new.kt new file mode 100644 index 00000000000..e5dbe31e498 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/nestedClassNameInSuperParameters.new.kt @@ -0,0 +1,9 @@ +internal open class Base(nested: Nested?) { + internal class Nested(p: Int) { + companion object { + const val FIELD = 0 + } + } +} + +internal class Derived : Base(Base.Nested(Base.Nested.FIELD)) \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/secondaryConstructorWithDefaultValues.new.kt b/j2k/testData/fileOrElement/constructors/secondaryConstructorWithDefaultValues.new.kt new file mode 100644 index 00000000000..3be3810cb09 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/secondaryConstructorWithDefaultValues.new.kt @@ -0,0 +1,12 @@ +internal class A { + private var s: String? = "" + private var x = 0 + + constructor() {} + + @JvmOverloads + constructor(p: Int, s: String?, x: Int = 1) { + this.s = s + this.x = x + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/secondaryConstructorWithDefaultValues2.new.kt b/j2k/testData/fileOrElement/constructors/secondaryConstructorWithDefaultValues2.new.kt new file mode 100644 index 00000000000..90438b7d8c0 --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/secondaryConstructorWithDefaultValues2.new.kt @@ -0,0 +1,10 @@ +internal class A() { + private var s: String? = "" + private var x = 0 + + @JvmOverloads + constructor(p: Int, s: String?, x: Int = 1) : this() { + this.s = s + this.x = x + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/staticFieldRefInFactoryFun.new.kt b/j2k/testData/fileOrElement/constructors/staticFieldRefInFactoryFun.new.kt new file mode 100644 index 00000000000..2ab6ee4712b --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/staticFieldRefInFactoryFun.new.kt @@ -0,0 +1,11 @@ +internal class C() { + + constructor(p: Int) : this() { + println(staticField1 + C.staticField2) + } + + companion object { + private const val staticField1 = 0 + private const val staticField2 = 0 + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/constructors/withManyDefaultParams.new.kt b/j2k/testData/fileOrElement/constructors/withManyDefaultParams.new.kt new file mode 100644 index 00000000000..a7063b061da --- /dev/null +++ b/j2k/testData/fileOrElement/constructors/withManyDefaultParams.new.kt @@ -0,0 +1,30 @@ +// ERROR: Property must be initialized or be abstract +class Test { + private val myName: String? + internal var a = false + internal var b = 0.0 + internal var c = 0f + internal var d: Long = 0 + internal var e = 0 + protected var f: Short = 0 + protected var g = 0.toChar() + + constructor() {} + + constructor(name: String?) { + myName = foo(name) + } + + companion object { + + internal fun foo(n: String?): String { + return "" + } + } +} + +object User { + fun main() { + val t = Test("name") + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/declarationStatement/multiplyIntDeclaration.new.kt b/j2k/testData/fileOrElement/declarationStatement/multiplyIntDeclaration.new.kt new file mode 100644 index 00000000000..fd6fdcff5c0 --- /dev/null +++ b/j2k/testData/fileOrElement/declarationStatement/multiplyIntDeclaration.new.kt @@ -0,0 +1,3 @@ +var k: Int +var l: Int +var m: Int \ No newline at end of file diff --git a/j2k/testData/fileOrElement/declarationStatement/singleIntDeclaration.new.kt b/j2k/testData/fileOrElement/declarationStatement/singleIntDeclaration.new.kt new file mode 100644 index 00000000000..19d6d1e7e08 --- /dev/null +++ b/j2k/testData/fileOrElement/declarationStatement/singleIntDeclaration.new.kt @@ -0,0 +1 @@ +var s: Int \ No newline at end of file diff --git a/j2k/testData/fileOrElement/declarationStatement/singleStringDeclaration.new.kt b/j2k/testData/fileOrElement/declarationStatement/singleStringDeclaration.new.kt new file mode 100644 index 00000000000..930395d4baa --- /dev/null +++ b/j2k/testData/fileOrElement/declarationStatement/singleStringDeclaration.new.kt @@ -0,0 +1 @@ +var s: String \ No newline at end of file diff --git a/j2k/testData/fileOrElement/detectProperties/AbstractPropertyPrivateSetter.new.kt b/j2k/testData/fileOrElement/detectProperties/AbstractPropertyPrivateSetter.new.kt new file mode 100644 index 00000000000..0f4f08ee5af --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/AbstractPropertyPrivateSetter.new.kt @@ -0,0 +1,12 @@ +package test + +import kotlinApi.KotlinClassAbstractProperty + +class KotlinClassAbstractPropertyImpl : KotlinClassAbstractProperty() { + override var isVisible = false + private set + + private fun test() { + isVisible = true + } +} diff --git a/j2k/testData/fileOrElement/detectProperties/AnonymousClass.new.kt b/j2k/testData/fileOrElement/detectProperties/AnonymousClass.new.kt new file mode 100644 index 00000000000..34ab7e7e816 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/AnonymousClass.new.kt @@ -0,0 +1,11 @@ +class X { + internal fun foo() { + val runnable: Runnable = object : Runnable { + val value = 10 + + override fun run() { + println(value) + } + } + } +} diff --git a/j2k/testData/fileOrElement/detectProperties/Comments.new.kt b/j2k/testData/fileOrElement/detectProperties/Comments.new.kt new file mode 100644 index 00000000000..e761c61a339 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/Comments.new.kt @@ -0,0 +1,23 @@ +internal class A(// comment for field2 getter + // comment for field2 setter + var field2: Int // comment for field2 +) { + // Comment for field1 + // Comment for field1 getter + /** + * Comment for field1 setter + */ + var field1 = 0 + + // comment before field3 + var field3 = 0 // comment for field3 + // comment for field3 getter + // comment for field3 setter + + // comment for getProperty + // comment for setProperty + var property: Int + get() = 1 + set(value) {} // end of getProperty + // end of setProperty +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/detectProperties/DataClass.new.kt b/j2k/testData/fileOrElement/detectProperties/DataClass.new.kt new file mode 100644 index 00000000000..20617aa7a0f --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/DataClass.new.kt @@ -0,0 +1,6 @@ +class Test(var id: String?, val name: String?, val age: Int) { + + init { + println(age) + } +} diff --git a/j2k/testData/fileOrElement/detectProperties/DataClassWithMutableField.new.kt b/j2k/testData/fileOrElement/detectProperties/DataClassWithMutableField.new.kt new file mode 100644 index 00000000000..2a28f153689 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/DataClassWithMutableField.new.kt @@ -0,0 +1,12 @@ +class Test(count: Int) { + var count: Int + private set + + init { + this.count = count + } + + fun inc() { + count++ + } +} diff --git a/j2k/testData/fileOrElement/detectProperties/DifferentFieldNameAndSuperClass.new.kt b/j2k/testData/fileOrElement/detectProperties/DifferentFieldNameAndSuperClass.new.kt new file mode 100644 index 00000000000..ff0baf94ce3 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/DifferentFieldNameAndSuperClass.new.kt @@ -0,0 +1,10 @@ +open class Base internal constructor(x: Int) { + var x = 42 + protected set + + init { + this.x = x + } +} + +internal class Derived(b: Base) : Base(b.x) diff --git a/j2k/testData/fileOrElement/detectProperties/FieldUsagesInFactoryMethods.new.kt b/j2k/testData/fileOrElement/detectProperties/FieldUsagesInFactoryMethods.new.kt new file mode 100644 index 00000000000..0edba186137 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/FieldUsagesInFactoryMethods.new.kt @@ -0,0 +1,19 @@ +internal class C(val arg1: Int) { + val arg2: Int + var arg3: Int + + 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 + arg3 = 0 + } + + init { + arg2 = 0 + arg3 = 0 + } +} diff --git a/j2k/testData/fileOrElement/detectProperties/GetterWithSideEffect1.new.kt b/j2k/testData/fileOrElement/detectProperties/GetterWithSideEffect1.new.kt new file mode 100644 index 00000000000..99c945c7a74 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/GetterWithSideEffect1.new.kt @@ -0,0 +1,16 @@ +class C { + private var myX: String? = "" + + var x: String? + get() { + println("getter invoked") + return myX + } + set(x) { + myX = x + } + + internal fun foo() { + println("myX = $myX") + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/detectProperties/GetterWithSideEffect2.new.kt b/j2k/testData/fileOrElement/detectProperties/GetterWithSideEffect2.new.kt new file mode 100644 index 00000000000..830c4451ea9 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/GetterWithSideEffect2.new.kt @@ -0,0 +1,16 @@ +class C { + private var x: String? = "" + + fun getX(): String? { + println("getter invoked") + return x + } + + fun setX(x: String?) { + this.x = x + } + + internal fun foo() { + println("x = $x") + } +} diff --git a/j2k/testData/fileOrElement/detectProperties/GetterWithSideEffect3.new.kt b/j2k/testData/fileOrElement/detectProperties/GetterWithSideEffect3.new.kt new file mode 100644 index 00000000000..89fcb101cbb --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/GetterWithSideEffect3.new.kt @@ -0,0 +1,12 @@ +class C { + var x: String? = "" + + fun getX(): String? { + println("getter invoked") + return x + } + + fun setX(x: String?) { + this.x = x + } +} diff --git a/j2k/testData/fileOrElement/detectProperties/InInterface.new.kt b/j2k/testData/fileOrElement/detectProperties/InInterface.new.kt new file mode 100644 index 00000000000..a93678eb26c --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/InInterface.new.kt @@ -0,0 +1,9 @@ +internal interface I { + val something1: Int + var something2: Int + fun setSomething3(value: Int) + fun getSomething4(): Int + fun setSomething4(value: String?) + val something5: Int + fun setSomething5(value: Int): Int +} diff --git a/j2k/testData/fileOrElement/detectProperties/PropertyType.new.kt b/j2k/testData/fileOrElement/detectProperties/PropertyType.new.kt new file mode 100644 index 00000000000..3f20788d465 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/PropertyType.new.kt @@ -0,0 +1,22 @@ +internal class A { + private val list1: ArrayList = ArrayList() + private val list2: MutableList = ArrayList() + private val myList3: MutableList = ArrayList() + + fun getList1(): List? { + return list1 + } + + fun getList2(): List? { + return list2 + } + + val list3: List? + get() = myList3 + + fun foo() { + list1.add("a") + list2.add("a") + myList3.add("a") + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/detectProperties/SetterTypeNotMatch.new.kt b/j2k/testData/fileOrElement/detectProperties/SetterTypeNotMatch.new.kt new file mode 100644 index 00000000000..9eacf8f4c7f --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/SetterTypeNotMatch.new.kt @@ -0,0 +1,8 @@ +internal class A { + var value: Any? = null + private set + + fun setValue(s: String?) { + value = s + } +} diff --git a/j2k/testData/fileOrElement/detectProperties/SetterWithSideEffect4.new.kt b/j2k/testData/fileOrElement/detectProperties/SetterWithSideEffect4.new.kt new file mode 100644 index 00000000000..82f406d5f20 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/SetterWithSideEffect4.new.kt @@ -0,0 +1,7 @@ +class C { + var x: String? = "" + set(value) { + println("setter invoked") + field = value + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/detectProperties/SetterWithSideEffect5.new.kt b/j2k/testData/fileOrElement/detectProperties/SetterWithSideEffect5.new.kt new file mode 100644 index 00000000000..f083868b8b3 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/SetterWithSideEffect5.new.kt @@ -0,0 +1,7 @@ +class C { + var x: String? = "" + set(x) { + println("setter invoked") + field = x + } +} diff --git a/j2k/testData/fileOrElement/detectProperties/SetterWithSideEffect6.new.kt b/j2k/testData/fileOrElement/detectProperties/SetterWithSideEffect6.new.kt new file mode 100644 index 00000000000..b8395afc2a7 --- /dev/null +++ b/j2k/testData/fileOrElement/detectProperties/SetterWithSideEffect6.new.kt @@ -0,0 +1,7 @@ +class C { + var x: String? = "" + set(x) { + println("old value: " + this.x) + field = x + } +} diff --git a/j2k/testData/fileOrElement/doWhileStatement/whileWithBlock.java b/j2k/testData/fileOrElement/doWhileStatement/whileWithBlock.java index 237fadf87e5..6e2364fb50a 100644 --- a/j2k/testData/fileOrElement/doWhileStatement/whileWithBlock.java +++ b/j2k/testData/fileOrElement/doWhileStatement/whileWithBlock.java @@ -1,2 +1,4 @@ //statement +int a = 0; +int b = 0; do {int i = 1; i = i + 1;} while (a > b) \ No newline at end of file diff --git a/j2k/testData/fileOrElement/doWhileStatement/whileWithBlock.kt b/j2k/testData/fileOrElement/doWhileStatement/whileWithBlock.kt index be40f3cd0d3..a38cfe38bd8 100644 --- a/j2k/testData/fileOrElement/doWhileStatement/whileWithBlock.kt +++ b/j2k/testData/fileOrElement/doWhileStatement/whileWithBlock.kt @@ -1,3 +1,5 @@ +val a = 0 +val b = 0 do { var i = 1 i = i + 1 diff --git a/j2k/testData/fileOrElement/doWhileStatement/whileWithExpression.java b/j2k/testData/fileOrElement/doWhileStatement/whileWithExpression.java index 0df144f868e..2e07d261376 100644 --- a/j2k/testData/fileOrElement/doWhileStatement/whileWithExpression.java +++ b/j2k/testData/fileOrElement/doWhileStatement/whileWithExpression.java @@ -1,2 +1,3 @@ //statement -do i = i + 1; while (true) \ No newline at end of file +int i = 0; +do i = i + 1; while (true); \ No newline at end of file diff --git a/j2k/testData/fileOrElement/doWhileStatement/whileWithExpression.kt b/j2k/testData/fileOrElement/doWhileStatement/whileWithExpression.kt index d34b7d3b89a..5ed4ffea38a 100644 --- a/j2k/testData/fileOrElement/doWhileStatement/whileWithExpression.kt +++ b/j2k/testData/fileOrElement/doWhileStatement/whileWithExpression.kt @@ -1 +1,2 @@ +var i = 0 do i = i + 1 while (true) \ No newline at end of file diff --git a/j2k/testData/fileOrElement/docComments/deprecatedDocTagWithAnnotation.java b/j2k/testData/fileOrElement/docComments/deprecatedDocTagWithAnnotation.java index 26a03713aa7..946744ab2fb 100644 --- a/j2k/testData/fileOrElement/docComments/deprecatedDocTagWithAnnotation.java +++ b/j2k/testData/fileOrElement/docComments/deprecatedDocTagWithAnnotation.java @@ -1,12 +1,12 @@ -/** - * This is a deprecated class. - * @deprecated This class is deprecated - */ -@Deprecated -class TestDeprecated { /** - * @deprecated This method is deprecated + * This is a deprecated class. + * @deprecated This class is deprecated */ @Deprecated - public void deprecatedMethod() {} -} \ No newline at end of file + class TestDeprecated { + /** + * @deprecated This method is deprecated + */ + @Deprecated + public void deprecatedMethod() {} + } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/enum/colorEnum.new.kt b/j2k/testData/fileOrElement/enum/colorEnum.new.kt new file mode 100644 index 00000000000..aa8a3ccd97a --- /dev/null +++ b/j2k/testData/fileOrElement/enum/colorEnum.new.kt @@ -0,0 +1,5 @@ +package demo + +internal enum class MyEnum(val color: Int) { + RED(10), BLUE(20); +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/enum/constantsWithBody2.kt b/j2k/testData/fileOrElement/enum/constantsWithBody2.kt index 4b03f7df6e7..59f1ac3b425 100644 --- a/j2k/testData/fileOrElement/enum/constantsWithBody2.kt +++ b/j2k/testData/fileOrElement/enum/constantsWithBody2.kt @@ -13,4 +13,4 @@ enum class E private constructor(private val p: Int) { internal fun foo(p: Int) {} internal abstract fun bar() -} +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/enum/constantsWithBody2.new.kt b/j2k/testData/fileOrElement/enum/constantsWithBody2.new.kt new file mode 100644 index 00000000000..0560fb95b48 --- /dev/null +++ b/j2k/testData/fileOrElement/enum/constantsWithBody2.new.kt @@ -0,0 +1,16 @@ +// ERROR: Cannot access 'p': it is invisible (private in a supertype) in 'A' +enum class E(private val p: Int) { + A(1) { + override fun bar() { + foo(p) + } + }, + + B(2) { + override fun bar() {} + }; + + internal fun foo(p: Int) {} + + internal abstract fun bar() +} diff --git a/j2k/testData/fileOrElement/enum/enumWithNameField.new.kt b/j2k/testData/fileOrElement/enum/enumWithNameField.new.kt new file mode 100644 index 00000000000..e1da0beb928 --- /dev/null +++ b/j2k/testData/fileOrElement/enum/enumWithNameField.new.kt @@ -0,0 +1,5 @@ +internal enum class E { + I; + + private val name: String? = null +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/enum/fieldsWithPrimaryPrivateConstructor.new.kt b/j2k/testData/fileOrElement/enum/fieldsWithPrimaryPrivateConstructor.new.kt new file mode 100644 index 00000000000..78c3a817106 --- /dev/null +++ b/j2k/testData/fileOrElement/enum/fieldsWithPrimaryPrivateConstructor.new.kt @@ -0,0 +1,3 @@ +internal enum class Color(val code: Int) { + WHITE(21), BLACK(22), RED(23), YELLOW(24), BLUE(25); +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/equals/EqOperator.new.kt b/j2k/testData/fileOrElement/equals/EqOperator.new.kt new file mode 100644 index 00000000000..18730c8a824 --- /dev/null +++ b/j2k/testData/fileOrElement/equals/EqOperator.new.kt @@ -0,0 +1,42 @@ +internal interface I + +internal class C + +internal class O + +internal class E { + override fun equals(o: Any?): Boolean { + return super.equals(o) + } +} + +internal open class B { + override fun equals(o: Any?): Boolean { + return super.equals(o) + } +} + +internal class BB : B() + +internal enum class EE { + A, B, C +} + +internal class X { + fun foo(i1: I?, i2: I?, s1: String?, s2: String?, c1: C?, c2: C?, i: Int, o1: O?, o2: O?, e1: E?, e2: E?, bb1: BB?, bb2: BB?, arr1: IntArray, arr2: IntArray, ee1: EE?, ee2: EE?) { + if (i1 === i2) return + if (s1 === s2) return + if (c1 == c2) return + if (i1 == null) return + if (null == i2) return + if (i == 0) return + if (o1 === o2) return + if (e1 === e2) return + if (bb1 === bb2) return + if (arr1 == arr2) return + if (ee1 == ee2 || ee1 == null) return + + if (s1 !== s2) return + if (c1 != c2) return + } +} diff --git a/j2k/testData/fileOrElement/equals/Equals1.new.kt b/j2k/testData/fileOrElement/equals/Equals1.new.kt new file mode 100644 index 00000000000..fa0efb69c46 --- /dev/null +++ b/j2k/testData/fileOrElement/equals/Equals1.new.kt @@ -0,0 +1,11 @@ +internal interface I + +internal class C { + fun foo1(i1: I?, i2: I?): Boolean { + return i1 == i2 + } + + fun foo2(i1: I?, i2: I?): Boolean { + return i1 != i2 + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/equals/Equals2.new.kt b/j2k/testData/fileOrElement/equals/Equals2.new.kt new file mode 100644 index 00000000000..eb0ffa751db --- /dev/null +++ b/j2k/testData/fileOrElement/equals/Equals2.new.kt @@ -0,0 +1,9 @@ +internal class C { + fun foo1(s1: String?, s2: String?): Boolean { + return s1 == s2 + } + + fun foo2(s1: String?, s2: String?): Boolean { + return s1 != s2 + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/equals/Equals3.new.kt b/j2k/testData/fileOrElement/equals/Equals3.new.kt new file mode 100644 index 00000000000..23a0448b0d2 --- /dev/null +++ b/j2k/testData/fileOrElement/equals/Equals3.new.kt @@ -0,0 +1,9 @@ +internal class C { + fun equals(c: C?): Boolean { + return false + } + + fun foo(c1: C, c2: C?): Boolean { + return c1.equals(c2) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/equals/Equals4.new.kt b/j2k/testData/fileOrElement/equals/Equals4.new.kt new file mode 100644 index 00000000000..04ae0a81a75 --- /dev/null +++ b/j2k/testData/fileOrElement/equals/Equals4.new.kt @@ -0,0 +1,5 @@ +internal class C { + fun foo(s1: String?, s2: String?, s3: String?, s4: String?): Boolean { + return s1 == s2 == (s3 != s4) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/field/needInitializer.new.kt b/j2k/testData/fileOrElement/field/needInitializer.new.kt new file mode 100644 index 00000000000..b0bd7306e28 --- /dev/null +++ b/j2k/testData/fileOrElement/field/needInitializer.new.kt @@ -0,0 +1,22 @@ +class Init { + var field1: String? + var field2: String? = null + + var field3: Int + var field4 = 0 + + init { + field1 = "str" + field3 = 1 + + val prop1: String + prop1 = "aaa" + + var prop2: String + + val prop3: Int + prop3 = 1 + + var prop4: Int + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/field/specifyType.new.kt b/j2k/testData/fileOrElement/field/specifyType.new.kt new file mode 100644 index 00000000000..081cd1743bb --- /dev/null +++ b/j2k/testData/fileOrElement/field/specifyType.new.kt @@ -0,0 +1,46 @@ +import java.util.ArrayList + +internal class A { + private val field1: List = ArrayList() + val field2: List = ArrayList() + val field3 = 0 + protected val field4 = 0 + private var field5: List? = ArrayList() + var field6: List? = ArrayList() + private var field7 = 0 + var field8 = 0 + private var field9: String? = "a" + private var field10: String? = foo() + private val anonymous: I = object : I { + } + var anonymous2: I? = object : I {} + private var anonymous3: I? = object : I {} + private var iimpl: I? = anonymous + fun foo(): String { + return "x" + } + + fun bar() { + field5 = ArrayList() + field7++ + field8++ + field9 = null + field10 = null + } + + internal interface I + + fun testAnonymousObject(i: Any?) { + if (true) { + iimpl = i as I? + } else if (true) { + anonymous3 = i as I? + } + val anonymousLocal1: I = object : I {} + var anonymousLocal2: I? = object : I {} + val iimpl = anonymousLocal1 + if (true) { + anonymousLocal2 = i as I? + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/field/valOrVar.new.kt b/j2k/testData/fileOrElement/field/valOrVar.new.kt new file mode 100644 index 00000000000..b5f531c4166 --- /dev/null +++ b/j2k/testData/fileOrElement/field/valOrVar.new.kt @@ -0,0 +1,24 @@ +internal class A(private val field6: Int, private val field8: Int, a: A) { + private val field1 = 0 + private val field2 = 0 + private var field3 = 0 + val field4 = 0 + var field5 = 0 + private val field7: Int + private val field9: Int + private var field10 = 0 + private var field11 = 0 + + init { + field7 = 10 + field9 = 10 + if (field6 > 0) { + field10 = 10 + } + a.field11 = 10 + } + + fun foo() { + field3 = field2 + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/field/valWithInit.java b/j2k/testData/fileOrElement/field/valWithInit.java index 4e007d357ce..364c183cdcf 100644 --- a/j2k/testData/fileOrElement/field/valWithInit.java +++ b/j2k/testData/fileOrElement/field/valWithInit.java @@ -1,3 +1,7 @@ +class Foo { + Foo(int a, int b) {} +} + class C { final Foo f = new Foo(1, 2); } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/field/valWithInit.kt b/j2k/testData/fileOrElement/field/valWithInit.kt index af8865c3843..6317e562f74 100644 --- a/j2k/testData/fileOrElement/field/valWithInit.kt +++ b/j2k/testData/fileOrElement/field/valWithInit.kt @@ -1,4 +1,5 @@ -// ERROR: Unresolved reference: Foo +internal class Foo(a: Int, b: Int) + internal class C { val f = Foo(1, 2) } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/field/varWithInit.java b/j2k/testData/fileOrElement/field/varWithInit.java index 07f05b3bc3f..3401c09d6d1 100644 --- a/j2k/testData/fileOrElement/field/varWithInit.java +++ b/j2k/testData/fileOrElement/field/varWithInit.java @@ -1,3 +1,7 @@ +class Foo { + Foo(int a, int b) {} +} + class C { Foo f = new Foo(1, 2); } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/field/varWithInit.kt b/j2k/testData/fileOrElement/field/varWithInit.kt index fdffffcfe50..5f179a6e1ee 100644 --- a/j2k/testData/fileOrElement/field/varWithInit.kt +++ b/j2k/testData/fileOrElement/field/varWithInit.kt @@ -1,4 +1,5 @@ -// ERROR: Unresolved reference: Foo +internal class Foo(a: Int, b: Int) + internal class C { var f = Foo(1, 2) } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/field/varWithInit.new.kt b/j2k/testData/fileOrElement/field/varWithInit.new.kt new file mode 100644 index 00000000000..d79f0339816 --- /dev/null +++ b/j2k/testData/fileOrElement/field/varWithInit.new.kt @@ -0,0 +1,5 @@ +internal class Foo(a: Int, b: Int) + +internal class C { + var f: Foo? = Foo(1, 2) +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/arrayIndicesReversed.new.kt b/j2k/testData/fileOrElement/for/arrayIndicesReversed.new.kt new file mode 100644 index 00000000000..b7bc2962e9d --- /dev/null +++ b/j2k/testData/fileOrElement/for/arrayIndicesReversed.new.kt @@ -0,0 +1,7 @@ +class A { + internal fun foo(array: Array) { + for (i in array.indices.reversed()) { + println(i) + } + } +} diff --git a/j2k/testData/fileOrElement/for/falseArrayIndicesReversed.new.kt b/j2k/testData/fileOrElement/for/falseArrayIndicesReversed.new.kt new file mode 100644 index 00000000000..10661c2677c --- /dev/null +++ b/j2k/testData/fileOrElement/for/falseArrayIndicesReversed.new.kt @@ -0,0 +1,7 @@ +class A { + internal fun foo(array: Array) { + for (i in array.size downTo 0) { + println(i) + } + } +} diff --git a/j2k/testData/fileOrElement/for/falseArrayIndicesReversed2.new.kt b/j2k/testData/fileOrElement/for/falseArrayIndicesReversed2.new.kt new file mode 100644 index 00000000000..5a5cafb7879 --- /dev/null +++ b/j2k/testData/fileOrElement/for/falseArrayIndicesReversed2.new.kt @@ -0,0 +1,7 @@ +class A { + internal fun foo(array: Array) { + for (i in array.size - 2 downTo 0) { + println(i) + } + } +} diff --git a/j2k/testData/fileOrElement/for/falseIndicesReversed.new.kt b/j2k/testData/fileOrElement/for/falseIndicesReversed.new.kt new file mode 100644 index 00000000000..95eea859899 --- /dev/null +++ b/j2k/testData/fileOrElement/for/falseIndicesReversed.new.kt @@ -0,0 +1,7 @@ +class A { + internal fun foo(collection: Collection) { + for (i in collection.size downTo 0) { + println(i) + } + } +} diff --git a/j2k/testData/fileOrElement/for/forRangeWithLT2.new.kt b/j2k/testData/fileOrElement/for/forRangeWithLT2.new.kt new file mode 100644 index 00000000000..025eadf60e9 --- /dev/null +++ b/j2k/testData/fileOrElement/for/forRangeWithLT2.new.kt @@ -0,0 +1,3 @@ +for (i in 0 until N!!) { + println(i) +} diff --git a/j2k/testData/fileOrElement/for/forThroughCollectionIndices.new.kt b/j2k/testData/fileOrElement/for/forThroughCollectionIndices.new.kt new file mode 100644 index 00000000000..4fb1a29a8bb --- /dev/null +++ b/j2k/testData/fileOrElement/for/forThroughCollectionIndices.new.kt @@ -0,0 +1,7 @@ +internal class C { + fun foo1(collection: Collection) { + for (i in collection.indices) { + print(i) + } + } +} diff --git a/j2k/testData/fileOrElement/for/forThroughListIndices.new.kt b/j2k/testData/fileOrElement/for/forThroughListIndices.new.kt new file mode 100644 index 00000000000..1a6adf1625e --- /dev/null +++ b/j2k/testData/fileOrElement/for/forThroughListIndices.new.kt @@ -0,0 +1,13 @@ +internal class C { + fun foo1(list: MutableList) { + for (i in list.indices) { + list[i] = "a" + } + } + + fun foo2(list: ArrayList) { + for (i in list.indices) { + list[i] = "a" + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forThroughListIndicesNE.new.kt b/j2k/testData/fileOrElement/for/forThroughListIndicesNE.new.kt new file mode 100644 index 00000000000..762ac8fd7b9 --- /dev/null +++ b/j2k/testData/fileOrElement/for/forThroughListIndicesNE.new.kt @@ -0,0 +1,7 @@ +internal class C { + fun foo(list: MutableList) { + for (i in list.indices) { + list[i] = "a" + } + } +} diff --git a/j2k/testData/fileOrElement/for/forWithBlockAndDoubleUpdate.java b/j2k/testData/fileOrElement/for/forWithBlockAndDoubleUpdate.java index d3c8723b6b8..9ddaada2847 100644 --- a/j2k/testData/fileOrElement/for/forWithBlockAndDoubleUpdate.java +++ b/j2k/testData/fileOrElement/for/forWithBlockAndDoubleUpdate.java @@ -1,2 +1,3 @@ //statement +int j = 0; for (int i = 0; i < 0; j++, i++) {int i = 1; i++;} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forWithBlockAndDoubleUpdate.kt b/j2k/testData/fileOrElement/for/forWithBlockAndDoubleUpdate.kt index bff66609413..d0b4b7747bb 100644 --- a/j2k/testData/fileOrElement/for/forWithBlockAndDoubleUpdate.kt +++ b/j2k/testData/fileOrElement/for/forWithBlockAndDoubleUpdate.kt @@ -1,3 +1,4 @@ +var j = 0 var i = 0 while (i < 0) { run { diff --git a/j2k/testData/fileOrElement/for/forWithEmptyBlock.java b/j2k/testData/fileOrElement/for/forWithEmptyBlock.java index a513244a148..ad7cff52343 100644 --- a/j2k/testData/fileOrElement/for/forWithEmptyBlock.java +++ b/j2k/testData/fileOrElement/for/forWithEmptyBlock.java @@ -1,2 +1,3 @@ //statement +int j = 0; for (int i = 0; i < 0; j++, i++) {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forWithEmptyBlock.kt b/j2k/testData/fileOrElement/for/forWithEmptyBlock.kt index af6e9462b9a..b21ca47d3c6 100644 --- a/j2k/testData/fileOrElement/for/forWithEmptyBlock.kt +++ b/j2k/testData/fileOrElement/for/forWithEmptyBlock.kt @@ -1,3 +1,4 @@ +var j = 0 var i = 0 while (i < 0) { j++ diff --git a/j2k/testData/fileOrElement/for/forWithExpression.java b/j2k/testData/fileOrElement/for/forWithExpression.java index e1e7f946fb9..c8c81c66f7e 100644 --- a/j2k/testData/fileOrElement/for/forWithExpression.java +++ b/j2k/testData/fileOrElement/for/forWithExpression.java @@ -1,2 +1,3 @@ //statement +int t = 0; for (int i = 0; i < 0; i++) t++; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forWithExpression.kt b/j2k/testData/fileOrElement/for/forWithExpression.kt index 9073a34221b..0f1eea783b8 100644 --- a/j2k/testData/fileOrElement/for/forWithExpression.kt +++ b/j2k/testData/fileOrElement/for/forWithExpression.kt @@ -1 +1,2 @@ +var t = 0 for (i in 0..-1) t++ \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forWithNullUpdate.new.kt b/j2k/testData/fileOrElement/for/forWithNullUpdate.new.kt new file mode 100644 index 00000000000..55b15748f66 --- /dev/null +++ b/j2k/testData/fileOrElement/for/forWithNullUpdate.new.kt @@ -0,0 +1,4 @@ +init() +while (condition()) { + body() +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forWithReturn.java b/j2k/testData/fileOrElement/for/forWithReturn.java index 907fb8c607a..7c0b28d9ab0 100644 --- a/j2k/testData/fileOrElement/for/forWithReturn.java +++ b/j2k/testData/fileOrElement/for/forWithReturn.java @@ -1,2 +1,3 @@ //statement +int j = 0; for (int i = 0; i < 0; j++, i++) return i; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forWithReturn.kt b/j2k/testData/fileOrElement/for/forWithReturn.kt index 4daf0d87881..660896de4d6 100644 --- a/j2k/testData/fileOrElement/for/forWithReturn.kt +++ b/j2k/testData/fileOrElement/for/forWithReturn.kt @@ -1,3 +1,4 @@ +var j = 0 var i = 0 while (i < 0) { return i diff --git a/j2k/testData/fileOrElement/for/indicesReversed.new.kt b/j2k/testData/fileOrElement/for/indicesReversed.new.kt new file mode 100644 index 00000000000..11550e74f85 --- /dev/null +++ b/j2k/testData/fileOrElement/for/indicesReversed.new.kt @@ -0,0 +1,7 @@ +class A { + internal fun foo(collection: Collection) { + for (i in collection.indices.reversed()) { + println(i) + } + } +} diff --git a/j2k/testData/fileOrElement/for/infiniteFor.java b/j2k/testData/fileOrElement/for/infiniteFor.java index 4d1092db123..fa7aebf52f6 100644 --- a/j2k/testData/fileOrElement/for/infiniteFor.java +++ b/j2k/testData/fileOrElement/for/infiniteFor.java @@ -1,4 +1,7 @@ //method +boolean stop() { + return false; +} void foo() { for(;;) { if (!stop()) break; diff --git a/j2k/testData/fileOrElement/for/infiniteFor.kt b/j2k/testData/fileOrElement/for/infiniteFor.kt index 2bf8960aea3..7181d6a5f97 100644 --- a/j2k/testData/fileOrElement/for/infiniteFor.kt +++ b/j2k/testData/fileOrElement/for/infiniteFor.kt @@ -1,3 +1,7 @@ +fun stop(): Boolean { + return false +} + fun foo() { while (true) { if (!stop()) break diff --git a/j2k/testData/fileOrElement/for/overMapEntries.new.kt b/j2k/testData/fileOrElement/for/overMapEntries.new.kt new file mode 100644 index 00000000000..64adce4158f --- /dev/null +++ b/j2k/testData/fileOrElement/for/overMapEntries.new.kt @@ -0,0 +1,11 @@ +internal object Test { + @JvmStatic + fun main(args: Array) { + val resultMap: Map = HashMap() + for ((key, type) in resultMap) { + if (key == "myKey") { + println(type) + } + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/foreachStatement/enhancedForWithBlock.new.kt b/j2k/testData/fileOrElement/foreachStatement/enhancedForWithBlock.new.kt new file mode 100644 index 00000000000..b4263caa473 --- /dev/null +++ b/j2k/testData/fileOrElement/foreachStatement/enhancedForWithBlock.new.kt @@ -0,0 +1,4 @@ +for (n in list!!) { + var i = 1 + i++ +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/foreachStatement/enhancedForWithEmptyBlock.new.kt b/j2k/testData/fileOrElement/foreachStatement/enhancedForWithEmptyBlock.new.kt new file mode 100644 index 00000000000..417bc89477a --- /dev/null +++ b/j2k/testData/fileOrElement/foreachStatement/enhancedForWithEmptyBlock.new.kt @@ -0,0 +1,2 @@ +for (n in list!!) { +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/foreachStatement/enhancedForWithExpression.java b/j2k/testData/fileOrElement/foreachStatement/enhancedForWithExpression.java index 1291697d824..f8f34e36d52 100644 --- a/j2k/testData/fileOrElement/foreachStatement/enhancedForWithExpression.java +++ b/j2k/testData/fileOrElement/foreachStatement/enhancedForWithExpression.java @@ -1,2 +1,3 @@ //statement +int i = 0; for (Node n : list) i++; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/foreachStatement/enhancedForWithExpression.kt b/j2k/testData/fileOrElement/foreachStatement/enhancedForWithExpression.kt index 45c01adf304..40ba9a8e4ca 100644 --- a/j2k/testData/fileOrElement/foreachStatement/enhancedForWithExpression.kt +++ b/j2k/testData/fileOrElement/foreachStatement/enhancedForWithExpression.kt @@ -1 +1,2 @@ +var i = 0 for (n in list) i++ \ No newline at end of file diff --git a/j2k/testData/fileOrElement/foreachStatement/enhancedForWithExpression.new.kt b/j2k/testData/fileOrElement/foreachStatement/enhancedForWithExpression.new.kt new file mode 100644 index 00000000000..a43acf60d65 --- /dev/null +++ b/j2k/testData/fileOrElement/foreachStatement/enhancedForWithExpression.new.kt @@ -0,0 +1,2 @@ +var i = 0 +for (n in list!!) i++ \ No newline at end of file diff --git a/j2k/testData/fileOrElement/foreachStatement/enhancedForWithReturn.new.kt b/j2k/testData/fileOrElement/foreachStatement/enhancedForWithReturn.new.kt new file mode 100644 index 00000000000..6794953ef53 --- /dev/null +++ b/j2k/testData/fileOrElement/foreachStatement/enhancedForWithReturn.new.kt @@ -0,0 +1 @@ +for (n in list!!) return n \ No newline at end of file diff --git a/j2k/testData/fileOrElement/foreachStatement/nullableIterable.new.kt b/j2k/testData/fileOrElement/foreachStatement/nullableIterable.new.kt new file mode 100644 index 00000000000..96cda836fbc --- /dev/null +++ b/j2k/testData/fileOrElement/foreachStatement/nullableIterable.new.kt @@ -0,0 +1,9 @@ +internal class A { + var list: List? = null + + fun foo() { + for (e in list!!) { + println(e) + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/function/classGenericParam.new.kt b/j2k/testData/fileOrElement/function/classGenericParam.new.kt new file mode 100644 index 00000000000..5c47fe00f30 --- /dev/null +++ b/j2k/testData/fileOrElement/function/classGenericParam.new.kt @@ -0,0 +1,2 @@ +val t: T? + get() {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/function/extendsBaseWhichExtendsObject.new.kt b/j2k/testData/fileOrElement/function/extendsBaseWhichExtendsObject.new.kt new file mode 100644 index 00000000000..9c30d21b350 --- /dev/null +++ b/j2k/testData/fileOrElement/function/extendsBaseWhichExtendsObject.new.kt @@ -0,0 +1,51 @@ +// ERROR: Unresolved reference: clone +// ERROR: Unresolved reference: finalize +package test + +internal class Test : Base() { + override fun hashCode(): Int { + return super.hashCode() + } + + override fun equals(o: Any?): Boolean { + return super.equals(o) + } + + @Throws(CloneNotSupportedException::class) + override fun clone(): Any { + return super.clone() + } + + override fun toString(): String { + return super.toString() + } + + @Throws(Throwable::class) + override fun finalize() { + super.finalize() + } +} + +internal open class Base { + override fun hashCode(): Int { + return super.hashCode() + } + + override fun equals(o: Any?): Boolean { + return super.equals(o) + } + + @Throws(CloneNotSupportedException::class) + protected open fun clone(): Any { + return super.clone() + } + + override fun toString(): String { + return super.toString() + } + + @Throws(Throwable::class) + protected open fun finalize() { + super.finalize() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/function/methodClassType.new.kt b/j2k/testData/fileOrElement/function/methodClassType.new.kt new file mode 100644 index 00000000000..30d4d3d51c1 --- /dev/null +++ b/j2k/testData/fileOrElement/function/methodClassType.new.kt @@ -0,0 +1 @@ +fun main(): String? {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/function/nativeMethods.new.kt b/j2k/testData/fileOrElement/function/nativeMethods.new.kt new file mode 100644 index 00000000000..e56c38fc905 --- /dev/null +++ b/j2k/testData/fileOrElement/function/nativeMethods.new.kt @@ -0,0 +1,7 @@ +class Foo { + private external fun nativeMethod() + + var bar: Int + external get + external set +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/function/overrideObject.new.kt b/j2k/testData/fileOrElement/function/overrideObject.new.kt new file mode 100644 index 00000000000..6940c30c9f2 --- /dev/null +++ b/j2k/testData/fileOrElement/function/overrideObject.new.kt @@ -0,0 +1,25 @@ +internal class X : Cloneable { + override fun hashCode(): Int { + return super.hashCode() + } + + override fun equals(o: Any?): Boolean { + return super.equals(o) + } + + override fun toString(): String { + return super.toString() + } + + @Throws(CloneNotSupportedException::class) + override fun clone(): Any { + return super.clone() + } +} + +internal class Y : Thread(), Cloneable { + @Throws(CloneNotSupportedException::class) + override fun clone(): Any { + return super.clone() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/function/overrideObject2.new.kt b/j2k/testData/fileOrElement/function/overrideObject2.new.kt new file mode 100644 index 00000000000..c60f0410aac --- /dev/null +++ b/j2k/testData/fileOrElement/function/overrideObject2.new.kt @@ -0,0 +1,21 @@ +// ERROR: Unresolved reference: clone +internal open class Base + +internal class X : Base(), Cloneable { + override fun hashCode(): Int { + return super.hashCode() + } + + override fun equals(o: Any?): Boolean { + return super.equals(o) + } + + override fun toString(): String { + return super.toString() + } + + @Throws(CloneNotSupportedException::class) + override fun clone(): Any { + return super.clone() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/function/ownGenericParam.new.kt b/j2k/testData/fileOrElement/function/ownGenericParam.new.kt new file mode 100644 index 00000000000..6616cfad757 --- /dev/null +++ b/j2k/testData/fileOrElement/function/ownGenericParam.new.kt @@ -0,0 +1 @@ +fun putU(u: U?) {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/function/ownSeveralGenericParams.new.kt b/j2k/testData/fileOrElement/function/ownSeveralGenericParams.new.kt new file mode 100644 index 00000000000..c8fe75c2efd --- /dev/null +++ b/j2k/testData/fileOrElement/function/ownSeveralGenericParams.new.kt @@ -0,0 +1 @@ +fun putUVW(u: U?, v: V?, w: W?) {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/function/varVararg.new.kt b/j2k/testData/fileOrElement/function/varVararg.new.kt new file mode 100644 index 00000000000..84bc3992207 --- /dev/null +++ b/j2k/testData/fileOrElement/function/varVararg.new.kt @@ -0,0 +1,8 @@ +package demo + +internal class Test { + fun test(vararg args: Any?) { + var args: Any? = args + args = intArrayOf(1, 2, 3) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/identifier/keywords.new.kt b/j2k/testData/fileOrElement/identifier/keywords.new.kt new file mode 100644 index 00000000000..afd604e132e --- /dev/null +++ b/j2k/testData/fileOrElement/identifier/keywords.new.kt @@ -0,0 +1,10 @@ +var `as`: Int +var type: Int +var `val`: Int +var `var`: Int +var `fun`: Int +var `is`: Int +var `in`: Int +var `object`: Int +var `when`: Int +var `typeof`: Int diff --git a/j2k/testData/fileOrElement/inheritance/classOneExtendsBaseGeneric.new.kt b/j2k/testData/fileOrElement/inheritance/classOneExtendsBaseGeneric.new.kt new file mode 100644 index 00000000000..16b23b8d72c --- /dev/null +++ b/j2k/testData/fileOrElement/inheritance/classOneExtendsBaseGeneric.new.kt @@ -0,0 +1,3 @@ +internal open class Base(name: T?) + +internal class One(name: T?, private val mySecond: K?) : Base(name) \ No newline at end of file diff --git a/j2k/testData/fileOrElement/inheritance/classOneExtendsBaseWithOneParam.new.kt b/j2k/testData/fileOrElement/inheritance/classOneExtendsBaseWithOneParam.new.kt new file mode 100644 index 00000000000..2a9d7cd20cf --- /dev/null +++ b/j2k/testData/fileOrElement/inheritance/classOneExtendsBaseWithOneParam.new.kt @@ -0,0 +1,3 @@ +internal open class Base(name: String?) + +internal class One(name: String?, second: String?) : Base(name) \ No newline at end of file diff --git a/j2k/testData/fileOrElement/inheritance/classOneExtendsBaseWithZeroParamsNonEmptyConstructor.new.kt b/j2k/testData/fileOrElement/inheritance/classOneExtendsBaseWithZeroParamsNonEmptyConstructor.new.kt new file mode 100644 index 00000000000..71a80e022fd --- /dev/null +++ b/j2k/testData/fileOrElement/inheritance/classOneExtendsBaseWithZeroParamsNonEmptyConstructor.new.kt @@ -0,0 +1,3 @@ +internal open class Base(name: String?) + +internal class One(name: String?, private val mySecond: String?) : Base(name) \ No newline at end of file diff --git a/j2k/testData/fileOrElement/inheritance/openModifier.new.kt b/j2k/testData/fileOrElement/inheritance/openModifier.new.kt new file mode 100644 index 00000000000..da0cf4118fb --- /dev/null +++ b/j2k/testData/fileOrElement/inheritance/openModifier.new.kt @@ -0,0 +1,39 @@ +internal open class A { + open fun f1() {} + fun f2() {} + private fun f3() {} +} + +internal open class B : A() { + override fun f1() { + super.f1() + } +} + +internal class C : B() { + override fun f1() { + super.f1() + } +} + +internal interface I { + fun f() +} + +internal class D : I { + override fun f() {} +} + +internal abstract class E { + internal abstract fun f1() + internal open fun f2() {} + fun f3() {} +} + +internal class F : E() { + override fun f1() {} + + override fun f2() { + super.f2() + } +} diff --git a/j2k/testData/fileOrElement/isOperator/complicatedExpression.new.kt b/j2k/testData/fileOrElement/isOperator/complicatedExpression.new.kt new file mode 100644 index 00000000000..c5c0c4cc9f6 --- /dev/null +++ b/j2k/testData/fileOrElement/isOperator/complicatedExpression.new.kt @@ -0,0 +1 @@ +c!!.getType().getName() is String \ No newline at end of file diff --git a/j2k/testData/fileOrElement/isOperator/rawType.new.kt b/j2k/testData/fileOrElement/isOperator/rawType.new.kt new file mode 100644 index 00000000000..2e07edcfa7c --- /dev/null +++ b/j2k/testData/fileOrElement/isOperator/rawType.new.kt @@ -0,0 +1,5 @@ +internal class C { + fun bar(o: Any?, collection: Collection?): Boolean { + return o is Collection<*> && collection is List<*> + } +} diff --git a/j2k/testData/fileOrElement/issues/arrayLength.new.kt b/j2k/testData/fileOrElement/issues/arrayLength.new.kt new file mode 100644 index 00000000000..7e8f1b63249 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/arrayLength.new.kt @@ -0,0 +1,5 @@ +internal object Test { + fun foo(args: Array): Int { + return args.size + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-14248.new.kt b/j2k/testData/fileOrElement/issues/kt-14248.new.kt new file mode 100644 index 00000000000..bf3e0de7828 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-14248.new.kt @@ -0,0 +1 @@ +class AppInfo(internal var mName: String?, internal var mIcon: String?, internal var mLastUpdateTime: Long) \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-5294.new.kt b/j2k/testData/fileOrElement/issues/kt-5294.new.kt new file mode 100644 index 00000000000..a7d1d24c962 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-5294.new.kt @@ -0,0 +1,3 @@ +internal class X(private val list: List?) { + internal inner class Y +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-543-boxed.new.kt b/j2k/testData/fileOrElement/issues/kt-543-boxed.new.kt new file mode 100644 index 00000000000..bf6baee28e0 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-543-boxed.new.kt @@ -0,0 +1,13 @@ +package demo + +internal class Test { + fun putInt(i: Int?) {} + + fun test() { + val b: Byte = 10 + putInt(b.toInt()) + + val b2: Byte = 10 + putInt(b2.toInt()) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-638.new.kt b/j2k/testData/fileOrElement/issues/kt-638.new.kt new file mode 100644 index 00000000000..24b41a69177 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-638.new.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("name", false) + val i3 = Identifier("name") + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-6790.new.kt b/j2k/testData/fileOrElement/issues/kt-6790.new.kt new file mode 100644 index 00000000000..92d8ff75457 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-6790.new.kt @@ -0,0 +1,5 @@ +import kotlin.collections.Map.Entry + +class A { + internal fun foo(o: Entry?) {} +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-807.java b/j2k/testData/fileOrElement/issues/kt-807.java index 4e763546f4b..26773a5ca14 100644 --- a/j2k/testData/fileOrElement/issues/kt-807.java +++ b/j2k/testData/fileOrElement/issues/kt-807.java @@ -1,4 +1,5 @@ import java.io.*; +import java.io.*; class FileRead { public static void main(String args[]) { diff --git a/j2k/testData/fileOrElement/issues/kt-809-string.new.kt b/j2k/testData/fileOrElement/issues/kt-809-string.new.kt new file mode 100644 index 00000000000..fefdd2dc340 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-809-string.new.kt @@ -0,0 +1,19 @@ +package demo + +internal class Container { + var myString: String? = "1" +} + +internal object One { + var myContainer: Container? = Container() +} + +internal class StringContainer(s: String?) + +internal class Test { + fun putString(s: String?) {} + fun test() { + putString(One.myContainer!!.myString) + StringContainer(One.myContainer!!.myString) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-809.new.kt b/j2k/testData/fileOrElement/issues/kt-809.new.kt new file mode 100644 index 00000000000..63365a78f13 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-809.new.kt @@ -0,0 +1,19 @@ +package demo + +internal class Container { + var myInt = 1 +} + +internal object One { + var myContainer: Container? = Container() +} + +internal class IntContainer(i: Int) + +internal class Test { + fun putInt(i: Int) {} + fun test() { + putInt(One.myContainer!!.myInt) + IntContainer(One.myContainer!!.myInt) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-820-field.new.kt b/j2k/testData/fileOrElement/issues/kt-820-field.new.kt new file mode 100644 index 00000000000..9b746736255 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-820-field.new.kt @@ -0,0 +1,13 @@ +package demo + +internal class Container { + var myInt = 1 +} + +internal object One { + var myContainer: Container? = Container() +} + +internal class Test { + var b = One.myContainer!!.myInt.toByte() +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-820.new.kt b/j2k/testData/fileOrElement/issues/kt-820.new.kt new file mode 100644 index 00000000000..607bed48fc3 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-820.new.kt @@ -0,0 +1,15 @@ +package demo + +internal class Container { + var myInt = 1 +} + +internal object One { + var myContainer: Container? = Container() +} + +internal class Test { + fun test() { + val b = One.myContainer!!.myInt.toByte() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-824-isDir.new.kt b/j2k/testData/fileOrElement/issues/kt-824-isDir.new.kt new file mode 100644 index 00000000000..5e8ff373a5a --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-824-isDir.new.kt @@ -0,0 +1,19 @@ +package test + +import java.io.File + +/** + * User: ignatov + */ +object Test { + fun isDir(parent: File?): Boolean { + if (parent == null || !parent.exists()) { + return false + } + val result = true + return if (parent.isDirectory) { + true + } else + false + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-824.new.kt b/j2k/testData/fileOrElement/issues/kt-824.new.kt new file mode 100644 index 00000000000..1316c1c24bf --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-824.new.kt @@ -0,0 +1,25 @@ +package demo + +internal class Container { + var myBoolean = true +} + +internal object One { + var myContainer: Container? = Container() +} + +internal class Test { + fun test() { + if (One.myContainer!!.myBoolean) + println("Ok") + + val s = if (One.myContainer!!.myBoolean) "YES" else "NO" + + while (One.myContainer!!.myBoolean) + println("Ok") + + do { + println("Ok") + } while (One.myContainer!!.myBoolean) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-837.new.kt b/j2k/testData/fileOrElement/issues/kt-837.new.kt new file mode 100644 index 00000000000..ffd78ee1c08 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-837.new.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? = Language("en") + var SWEDISH: Language? = Language("sv") + private const val serialVersionUID = -2442762969929206780L + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-851.new.kt b/j2k/testData/fileOrElement/issues/kt-851.new.kt new file mode 100644 index 00000000000..34fa7e5009b --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-851.new.kt @@ -0,0 +1,8 @@ +internal class Test { + fun putInt(i: Int) {} + + fun test() { + val b: Byte = 10 + putInt(b.toInt()) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/issues/kt-879.new.kt b/j2k/testData/fileOrElement/issues/kt-879.new.kt new file mode 100644 index 00000000000..3a65749bb81 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/kt-879.new.kt @@ -0,0 +1,11 @@ +internal object Test { + fun getInt(i: Int): Int { + return when (i) { + 0 -> 0 + 1 -> 1 + 2 -> 2 + 3 -> 3 + else -> -1 + } + } +} diff --git a/j2k/testData/fileOrElement/issues/spaceBeforeAssignment.new.kt b/j2k/testData/fileOrElement/issues/spaceBeforeAssignment.new.kt new file mode 100644 index 00000000000..82504fdda77 --- /dev/null +++ b/j2k/testData/fileOrElement/issues/spaceBeforeAssignment.new.kt @@ -0,0 +1,5 @@ +import java.util.ArrayList + +internal class A { + var list: List? = ArrayList() +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/kotlinApiAccess/ExtensionFunction.new.kt b/j2k/testData/fileOrElement/kotlinApiAccess/ExtensionFunction.new.kt new file mode 100644 index 00000000000..7c12e855648 --- /dev/null +++ b/j2k/testData/fileOrElement/kotlinApiAccess/ExtensionFunction.new.kt @@ -0,0 +1,7 @@ +import kotlinApi.extensionFunction + +internal class C { + fun foo() { + val s = 1.extensionFunction() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/kotlinApiAccess/ExtensionProperty.new.kt b/j2k/testData/fileOrElement/kotlinApiAccess/ExtensionProperty.new.kt new file mode 100644 index 00000000000..d05ebf6a74f --- /dev/null +++ b/j2k/testData/fileOrElement/kotlinApiAccess/ExtensionProperty.new.kt @@ -0,0 +1,8 @@ +import kotlinApi.extensionProperty + +internal class C { + fun foo(): Int { + "a".extensionProperty = 1 + return "b".extensionProperty + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/kotlinApiAccess/GlobalValue1.new.kt b/j2k/testData/fileOrElement/kotlinApiAccess/GlobalValue1.new.kt new file mode 100644 index 00000000000..fdf475a4088 --- /dev/null +++ b/j2k/testData/fileOrElement/kotlinApiAccess/GlobalValue1.new.kt @@ -0,0 +1,8 @@ +import kotlinApi.globalValue1 + +internal class C { + fun foo(): Int { + globalValue1 = 0 + return globalValue1 + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/kotlinApiAccess/GlobalValue2.new.kt b/j2k/testData/fileOrElement/kotlinApiAccess/GlobalValue2.new.kt new file mode 100644 index 00000000000..b52354082dd --- /dev/null +++ b/j2k/testData/fileOrElement/kotlinApiAccess/GlobalValue2.new.kt @@ -0,0 +1,8 @@ +import kotlinApi.globalValue2 + +internal class C { + fun foo(): Int { + globalValue2 = 0 + return globalValue2 + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/kotlinApiAccess/InheritedProperty.new.kt b/j2k/testData/fileOrElement/kotlinApiAccess/InheritedProperty.new.kt new file mode 100644 index 00000000000..25ddfc83ba7 --- /dev/null +++ b/j2k/testData/fileOrElement/kotlinApiAccess/InheritedProperty.new.kt @@ -0,0 +1,9 @@ +// ERROR: No value passed for parameter 'field' +import kotlinApi.property + +internal class C : KotlinClass() { + fun foo() { + println(property) + property = "a" + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/kotlinApiAccess/Property.new.kt b/j2k/testData/fileOrElement/kotlinApiAccess/Property.new.kt new file mode 100644 index 00000000000..1f0c468c720 --- /dev/null +++ b/j2k/testData/fileOrElement/kotlinApiAccess/Property.new.kt @@ -0,0 +1,8 @@ +import kotlinApi.KotlinClass + +internal class C { + fun foo(k: KotlinClass) { + println(k.property) + k.property = "a" + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/kotlinApiAccess/Property2.new.kt b/j2k/testData/fileOrElement/kotlinApiAccess/Property2.new.kt new file mode 100644 index 00000000000..8093bca1822 --- /dev/null +++ b/j2k/testData/fileOrElement/kotlinApiAccess/Property2.new.kt @@ -0,0 +1,8 @@ +import kotlinApi.KotlinClass + +internal class C { + fun foo(k: KotlinClass) { + println(k.field) + k.field = 1 + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/kotlinApiAccess/StaticImportAllFromFileFacade.new.kt b/j2k/testData/fileOrElement/kotlinApiAccess/StaticImportAllFromFileFacade.new.kt new file mode 100644 index 00000000000..0acdee445b7 --- /dev/null +++ b/j2k/testData/fileOrElement/kotlinApiAccess/StaticImportAllFromFileFacade.new.kt @@ -0,0 +1,8 @@ +import kotlinApi.extensionProperty + +internal class C { + fun foo(): Int { + "a".extensionProperty = 1 + return "b".extensionProperty + } +} diff --git a/j2k/testData/fileOrElement/kotlinApiAccess/StaticImportAllFromObject.new.kt b/j2k/testData/fileOrElement/kotlinApiAccess/StaticImportAllFromObject.new.kt new file mode 100644 index 00000000000..2d69ae3dd72 --- /dev/null +++ b/j2k/testData/fileOrElement/kotlinApiAccess/StaticImportAllFromObject.new.kt @@ -0,0 +1,7 @@ +import kotlinApi.KotlinObject.foo + +internal class C { + fun bar(): Int { + return foo() + } +} diff --git a/j2k/testData/fileOrElement/labelStatement/complicatedExampleFromJavaTutorial.new.kt b/j2k/testData/fileOrElement/labelStatement/complicatedExampleFromJavaTutorial.new.kt new file mode 100644 index 00000000000..ab22bc3204b --- /dev/null +++ b/j2k/testData/fileOrElement/labelStatement/complicatedExampleFromJavaTutorial.new.kt @@ -0,0 +1,13 @@ +test@ for (i in 0..max!!) { + var n: Int = substring!!.length() + var j = i + var k = 0 + while (n-- != 0) { + if (searchMe!!.charAt(j++) !== substring!!.charAt(k++)) { + continue@test + } + } + foundIt = true + break@test +} +println(if (foundIt) "Found it" else "Didn't find it") \ No newline at end of file diff --git a/j2k/testData/fileOrElement/literalExpression/char.new.kt b/j2k/testData/fileOrElement/literalExpression/char.new.kt new file mode 100644 index 00000000000..2cf034f6f04 --- /dev/null +++ b/j2k/testData/fileOrElement/literalExpression/char.new.kt @@ -0,0 +1,8 @@ +internal class Test { + private val c = 0.toChar() + + fun test() { + val c1 = 'c' + val c2 = 'C' + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/literalExpression/charToNumber.new.kt b/j2k/testData/fileOrElement/literalExpression/charToNumber.new.kt new file mode 100644 index 00000000000..bb9e46c08ae --- /dev/null +++ b/j2k/testData/fileOrElement/literalExpression/charToNumber.new.kt @@ -0,0 +1,8 @@ +class CharToNumber { + private val b = 'c'.toByte() + private val s = 'c'.toShort() + private val i = 'c'.toInt() + private val l = 'c'.toLong() + private val f = 'c'.toFloat() + private val d = 'c'.toDouble() +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/literalExpression/charToString.new.kt b/j2k/testData/fileOrElement/literalExpression/charToString.new.kt new file mode 100644 index 00000000000..951b0c127c8 --- /dev/null +++ b/j2k/testData/fileOrElement/literalExpression/charToString.new.kt @@ -0,0 +1,7 @@ +class CharToString { + private val value: String? = null + + fun test(): String { + return '"'.toString() + value + '"' + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/literalExpression/stringOctalChars.new.kt b/j2k/testData/fileOrElement/literalExpression/stringOctalChars.new.kt new file mode 100644 index 00000000000..f074d513bb4 --- /dev/null +++ b/j2k/testData/fileOrElement/literalExpression/stringOctalChars.new.kt @@ -0,0 +1,7 @@ +class A { + var a: String? = "\u003f0123" + var b: String? = "\u00490123" + var c: String? = "\u00ff0123" + var d: String? = "\u0000Text" + var f: String? = "\u00009" +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/localVariable/conversion.new.kt b/j2k/testData/fileOrElement/localVariable/conversion.new.kt new file mode 100644 index 00000000000..c40e99deb33 --- /dev/null +++ b/j2k/testData/fileOrElement/localVariable/conversion.new.kt @@ -0,0 +1,4 @@ +fun foo(b: Byte) { + var i = b.toInt() + if (p) i = 10 +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/localVariable/object.new.kt b/j2k/testData/fileOrElement/localVariable/object.new.kt new file mode 100644 index 00000000000..406b70ca8e1 --- /dev/null +++ b/j2k/testData/fileOrElement/localVariable/object.new.kt @@ -0,0 +1 @@ +var i: Int \ No newline at end of file diff --git a/j2k/testData/fileOrElement/localVariable/valTypeDoNotMatch.new.kt b/j2k/testData/fileOrElement/localVariable/valTypeDoNotMatch.new.kt new file mode 100644 index 00000000000..d8cce435ddf --- /dev/null +++ b/j2k/testData/fileOrElement/localVariable/valTypeDoNotMatch.new.kt @@ -0,0 +1,3 @@ +fun foo() { + val o: Any = "" +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/methodCallExpression/collectionsMethods.new.kt b/j2k/testData/fileOrElement/methodCallExpression/collectionsMethods.new.kt new file mode 100644 index 00000000000..c5ececd5925 --- /dev/null +++ b/j2k/testData/fileOrElement/methodCallExpression/collectionsMethods.new.kt @@ -0,0 +1,9 @@ +internal class A { + fun foo(): Map { + val list1: List = emptyList() + val list2: List = listOf(1) + val set1: Set = emptySet() + val set2: Set = setOf("a") + return emptyMap() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/methodCallExpression/collectionsMethods2.new.kt b/j2k/testData/fileOrElement/methodCallExpression/collectionsMethods2.new.kt new file mode 100644 index 00000000000..e22979d3554 --- /dev/null +++ b/j2k/testData/fileOrElement/methodCallExpression/collectionsMethods2.new.kt @@ -0,0 +1,6 @@ +internal class A { + fun foo() { + val list: List = listOf(null) + val set: Set = setOf(null) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/mutableCollections/FunctionReturnValue.new.kt b/j2k/testData/fileOrElement/mutableCollections/FunctionReturnValue.new.kt new file mode 100644 index 00000000000..32ebbaa5841 --- /dev/null +++ b/j2k/testData/fileOrElement/mutableCollections/FunctionReturnValue.new.kt @@ -0,0 +1,13 @@ +import java.util.ArrayList + +internal class A { + fun createCollection(): MutableCollection { + return ArrayList() + } + + fun foo(): Collection { + val collection = createCollection() + collection.add("a") + return collection + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/mutableCollections/FunctionReturnValue2.new.kt b/j2k/testData/fileOrElement/mutableCollections/FunctionReturnValue2.new.kt new file mode 100644 index 00000000000..91a95abd5c1 --- /dev/null +++ b/j2k/testData/fileOrElement/mutableCollections/FunctionReturnValue2.new.kt @@ -0,0 +1,21 @@ +import java.util.ArrayList + +internal class A { + private val collection: MutableCollection? + + init { + collection = createCollection() + } + + fun createCollection(): MutableCollection { + return ArrayList() + } + + fun foo() { + collection!!.add("1") + } + + fun getCollection(): Collection? { + return collection + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/mutableCollections/Iterator2.new.kt b/j2k/testData/fileOrElement/mutableCollections/Iterator2.new.kt new file mode 100644 index 00000000000..0beb59fb8c8 --- /dev/null +++ b/j2k/testData/fileOrElement/mutableCollections/Iterator2.new.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() + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/newClassExpression/classWithParam.java b/j2k/testData/fileOrElement/newClassExpression/classWithParam.java index 159a4b16ae1..fa98cec65d3 100644 --- a/j2k/testData/fileOrElement/newClassExpression/classWithParam.java +++ b/j2k/testData/fileOrElement/newClassExpression/classWithParam.java @@ -1,2 +1,9 @@ -//expression -new Foo(param); \ No newline at end of file +//class +class Foo { + Foo(int a, int b) { + } + + void foo() { + Foo f = new Foo(1, 2); + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/newClassExpression/classWithParam.kt b/j2k/testData/fileOrElement/newClassExpression/classWithParam.kt index 9d29e159e31..e127fa03579 100644 --- a/j2k/testData/fileOrElement/newClassExpression/classWithParam.kt +++ b/j2k/testData/fileOrElement/newClassExpression/classWithParam.kt @@ -1 +1,6 @@ -Foo(param) \ No newline at end of file +internal class Foo(a: Int, b: Int) { + + fun foo() { + val f = Foo(1, 2) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/newClassExpression/classWithParams.java b/j2k/testData/fileOrElement/newClassExpression/classWithParams.java index 1baf6a18f37..fa98cec65d3 100644 --- a/j2k/testData/fileOrElement/newClassExpression/classWithParams.java +++ b/j2k/testData/fileOrElement/newClassExpression/classWithParams.java @@ -1,2 +1,9 @@ -//expression -new Foo(param1, param2); \ No newline at end of file +//class +class Foo { + Foo(int a, int b) { + } + + void foo() { + Foo f = new Foo(1, 2); + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/newClassExpression/classWithParams.kt b/j2k/testData/fileOrElement/newClassExpression/classWithParams.kt index e10fb436db2..e127fa03579 100644 --- a/j2k/testData/fileOrElement/newClassExpression/classWithParams.kt +++ b/j2k/testData/fileOrElement/newClassExpression/classWithParams.kt @@ -1 +1,6 @@ -Foo(param1, param2) \ No newline at end of file +internal class Foo(a: Int, b: Int) { + + fun foo() { + val f = Foo(1, 2) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/newClassExpression/classWithoutBody.java b/j2k/testData/fileOrElement/newClassExpression/classWithoutBody.java index 220875444e3..13654b859a2 100644 --- a/j2k/testData/fileOrElement/newClassExpression/classWithoutBody.java +++ b/j2k/testData/fileOrElement/newClassExpression/classWithoutBody.java @@ -1,2 +1,7 @@ -//expression -new Foo(); \ No newline at end of file +//class +class Foo {} +class Bar { + void bar() { + new Foo() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/newClassExpression/classWithoutBody.kt b/j2k/testData/fileOrElement/newClassExpression/classWithoutBody.kt index 17f280dc444..65921d48375 100644 --- a/j2k/testData/fileOrElement/newClassExpression/classWithoutBody.kt +++ b/j2k/testData/fileOrElement/newClassExpression/classWithoutBody.kt @@ -1 +1,6 @@ -Foo() \ No newline at end of file +internal class Foo +internal class Bar { + fun bar() { + Foo() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/newClassExpression/fullQualifiedName.new.kt b/j2k/testData/fileOrElement/newClassExpression/fullQualifiedName.new.kt new file mode 100644 index 00000000000..563b79ef7ce --- /dev/null +++ b/j2k/testData/fileOrElement/newClassExpression/fullQualifiedName.new.kt @@ -0,0 +1,7 @@ +package test + +internal class User { + fun main() { + val list: List<*> = ArrayList() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/newClassExpression/fullQualifiedName2.new.kt b/j2k/testData/fileOrElement/newClassExpression/fullQualifiedName2.new.kt new file mode 100644 index 00000000000..7a8cf4b6bd6 --- /dev/null +++ b/j2k/testData/fileOrElement/newClassExpression/fullQualifiedName2.new.kt @@ -0,0 +1,8 @@ +// ERROR: One type argument expected for interface List +package test + +internal class User { + fun main() { + val list: List<*> = ArrayList() + } +} diff --git a/j2k/testData/fileOrElement/newClassExpression/genericClassInvocation.new.kt b/j2k/testData/fileOrElement/newClassExpression/genericClassInvocation.new.kt new file mode 100644 index 00000000000..5e777eacaf3 --- /dev/null +++ b/j2k/testData/fileOrElement/newClassExpression/genericClassInvocation.new.kt @@ -0,0 +1,5 @@ +internal class User { + fun main() { + val list: List = ArrayList() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/newClassExpression/javaLangObject.new.kt b/j2k/testData/fileOrElement/newClassExpression/javaLangObject.new.kt new file mode 100644 index 00000000000..86eadd67e23 --- /dev/null +++ b/j2k/testData/fileOrElement/newClassExpression/javaLangObject.new.kt @@ -0,0 +1,8 @@ +internal class C { + fun foo() { + val o1: Any = object : Any() { + + } + val o2 = Any() + } +} diff --git a/j2k/testData/fileOrElement/newClassExpression/newAnonymousClass2.new.kt b/j2k/testData/fileOrElement/newClassExpression/newAnonymousClass2.new.kt new file mode 100644 index 00000000000..94de6e0dfc2 --- /dev/null +++ b/j2k/testData/fileOrElement/newClassExpression/newAnonymousClass2.new.kt @@ -0,0 +1,11 @@ +internal abstract class A + +internal class C { + fun foo() { + val a: A = object : A() { + override fun toString(): String { + return "a" + } + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/newClassExpression/newAnonymousClass3.new.kt b/j2k/testData/fileOrElement/newClassExpression/newAnonymousClass3.new.kt new file mode 100644 index 00000000000..210cc6144ac --- /dev/null +++ b/j2k/testData/fileOrElement/newClassExpression/newAnonymousClass3.new.kt @@ -0,0 +1,19 @@ +import kotlinApi.KotlinTrait + +internal class C { + fun foo() { + val t: KotlinTrait = object : KotlinTrait { + override fun nullableFun(): String? { + return null + } + + override fun notNullableFun(): String { + return "" + } + + override fun nonAbstractFun(): Int { + return 0 + } + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/newClassExpression/newListAndNewMember.new.kt b/j2k/testData/fileOrElement/newClassExpression/newListAndNewMember.new.kt new file mode 100644 index 00000000000..e8e7da65641 --- /dev/null +++ b/j2k/testData/fileOrElement/newClassExpression/newListAndNewMember.new.kt @@ -0,0 +1,10 @@ +package org.test + +internal class Member + +internal class User { + fun main() { + val members: MutableList = ArrayList() + members.add(Member()) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/nullability/FieldComparedWithNull.new.kt b/j2k/testData/fileOrElement/nullability/FieldComparedWithNull.new.kt new file mode 100644 index 00000000000..9ab7e1bc62d --- /dev/null +++ b/j2k/testData/fileOrElement/nullability/FieldComparedWithNull.new.kt @@ -0,0 +1,10 @@ +// ERROR: Unresolved reference: x +internal class C { + private val s: String? = x() + + fun foo() { + if (s == null) { + print("null") + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/nullability/IndirectOverride.new.kt b/j2k/testData/fileOrElement/nullability/IndirectOverride.new.kt new file mode 100644 index 00000000000..d9fe13c73f0 --- /dev/null +++ b/j2k/testData/fileOrElement/nullability/IndirectOverride.new.kt @@ -0,0 +1,8 @@ +import javaApi.Derived + +internal class C : Derived() { + override fun foo(s: String?): String? { + + return s + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/nullability/LocalValReassignment.new.kt b/j2k/testData/fileOrElement/nullability/LocalValReassignment.new.kt new file mode 100644 index 00000000000..a4005f1751f --- /dev/null +++ b/j2k/testData/fileOrElement/nullability/LocalValReassignment.new.kt @@ -0,0 +1,30 @@ +internal class A { + + /* rare nullable, handle with caution */ + fun nullableString(): String? { + return if (Math.random() > 0.999) { + "a string" + } else null + } + + fun takesNotNullString(s: String) { + println(s.substring(1)) + } + + fun aVoid() { + var aString: String? + if (nullableString() != null) { + aString = nullableString() + if (aString != null) { + for (i in 0..9) { + takesNotNullString(aString!!) // Bang-bang here + aString = nullableString() + } + } else { + aString = "aaa" + } + } else { + aString = "bbbb" + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/nullability/MethodResultComparedWithNull4.new.kt b/j2k/testData/fileOrElement/nullability/MethodResultComparedWithNull4.new.kt new file mode 100644 index 00000000000..153dd631ca4 --- /dev/null +++ b/j2k/testData/fileOrElement/nullability/MethodResultComparedWithNull4.new.kt @@ -0,0 +1,13 @@ +internal interface I { + val string: String? +} + +internal class C { + fun foo(i: I, b: Boolean) { + var result = i.string + if (b) result = null + if (result != null) { + print(result) + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/nullability/MethodReturnsNullInAnonymousClass.new.kt b/j2k/testData/fileOrElement/nullability/MethodReturnsNullInAnonymousClass.new.kt new file mode 100644 index 00000000000..ba56491f549 --- /dev/null +++ b/j2k/testData/fileOrElement/nullability/MethodReturnsNullInAnonymousClass.new.kt @@ -0,0 +1,15 @@ +// ERROR: Return type of 'get' is not a subtype of the return type of the overridden member 'public abstract fun get(): String defined in Getter' +internal interface Getter { + fun get(): String? +} + +internal class C { + fun foo(b: Boolean): String { + val getter: Getter = object : Getter { + override fun get(): String? { + return null + } + } + return "" + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/nullability/OverrideWithInheritanceLoop.new.kt b/j2k/testData/fileOrElement/nullability/OverrideWithInheritanceLoop.new.kt new file mode 100644 index 00000000000..1c4aa720bab --- /dev/null +++ b/j2k/testData/fileOrElement/nullability/OverrideWithInheritanceLoop.new.kt @@ -0,0 +1,9 @@ +// ERROR: There's a cycle in the inheritance hierarchy for this type +// ERROR: There's a cycle in the inheritance hierarchy for this type +internal open class A : B() { + open fun foo(s: String?) {} +} + +internal open class B : A() { + open fun foo(s: String?) {} +} diff --git a/j2k/testData/fileOrElement/nullability/Overrides.new.kt b/j2k/testData/fileOrElement/nullability/Overrides.new.kt new file mode 100644 index 00000000000..ae0f2827158 --- /dev/null +++ b/j2k/testData/fileOrElement/nullability/Overrides.new.kt @@ -0,0 +1,31 @@ +internal open class Base { + open fun foo(s: String?): String? { + return "" + } + + open fun bar(s: String?): String? { + return if (s != null) s + 1 else null + } + + open fun zoo(o: Any?): String { + return "" + } +} + +internal interface I { + fun zoo(o: Any?): String? +} + +internal class C : Base(), I { + override fun foo(s: String?): String? { + return "" + } + + override fun bar(s: String?): String? { + return "" + } + + override fun zoo(o: Any?): String { + return "" + } +} diff --git a/j2k/testData/fileOrElement/nullability/notNullCast.new.kt b/j2k/testData/fileOrElement/nullability/notNullCast.new.kt new file mode 100644 index 00000000000..07f1a7d9b30 --- /dev/null +++ b/j2k/testData/fileOrElement/nullability/notNullCast.new.kt @@ -0,0 +1,29 @@ +// ERROR: Type mismatch: inferred type is Passenger.PassChild? but Passenger.PassChild was expected +// ERROR: Type mismatch: inferred type is Passenger.PassChild? but Passenger.PassChild was expected +class Passenger { + open class PassParent + + class PassChild : PassParent() + + fun provideNullable(p: Int): PassParent? { + return if (p > 0) PassChild() else null + } + + fun test1() { + val pass = provideNullable(1)!! + accept1(pass as PassChild) + } + + fun test2() { + val pass = provideNullable(1) + if (1 == 2) { + assert(pass != null) + accept2(pass as PassChild?) + } + accept2(pass as PassChild?) + } + + fun accept1(p: PassChild?) {} + + fun accept2(p: PassChild?) {} +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/nullability/nullableInitializer2.new.kt b/j2k/testData/fileOrElement/nullability/nullableInitializer2.new.kt new file mode 100644 index 00000000000..4e8a73f77fe --- /dev/null +++ b/j2k/testData/fileOrElement/nullability/nullableInitializer2.new.kt @@ -0,0 +1,19 @@ +class TestJava { + + var nullableInitializerFieldCast = nullableObj(3) as String? + private val nullableInitializerPrivateFieldCast = nullableObj(3) as String? + fun nullableObj(p: Int): Any? { + return if (p > 0) "response" else null + } + + fun testProperty() { + nullableInitializerFieldCast!![0] + nullableInitializerPrivateFieldCast!![0] + } + + fun testLocalVariable() { + val nullableInitializerValCast = nullableObj(3) as String? + + nullableInitializerValCast!![0] + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/objectLiteral/MyFrame.new.kt b/j2k/testData/fileOrElement/objectLiteral/MyFrame.new.kt new file mode 100644 index 00000000000..06516bb87ca --- /dev/null +++ b/j2k/testData/fileOrElement/objectLiteral/MyFrame.new.kt @@ -0,0 +1,38 @@ +package demo + +internal interface WindowListener { + fun windowClosing() +} + +internal interface EmptyWindowListener + +internal open class EmptyWindowAdapter : EmptyWindowListener + +internal open class WindowAdapter : WindowListener { + override fun windowClosing() {} +} + +internal open class Frame { + fun addWindowListener(listener: WindowListener?) {} +} + +internal class Client : Frame() { + init { + val a: WindowAdapter = object : WindowAdapter() { + override fun windowClosing() {} + } + + addWindowListener(a) + + addWindowListener(object : WindowAdapter() { + override fun windowClosing() {} + }) + + val b: EmptyWindowListener = object : EmptyWindowListener { + + } + val c: EmptyWindowAdapter = object : EmptyWindowAdapter() { + + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/overloads/Override.new.kt b/j2k/testData/fileOrElement/overloads/Override.new.kt new file mode 100644 index 00000000000..b00e48a5652 --- /dev/null +++ b/j2k/testData/fileOrElement/overloads/Override.new.kt @@ -0,0 +1,46 @@ +internal interface I { + fun foo(i: Int, c: Char, s: String?) + fun bar() +} + +internal open class A : I { + override fun foo(i: Int, c: Char, s: String?) { + println("foo$i$c$s") + } + + fun foo(i: Int, c: Char) { + foo(i, c, "") + } + + fun foo(i: Int) { + foo(i, 'a', "") + } + + override fun bar() { + bar(1) + } + + fun bar(i: Int) {} + + open fun x() { + x(1) + } + + fun x(i: Int) {} + + fun y() { + y(1) + } + + open fun y(i: Int) {} +} + +internal class B : A() { + override fun x() { + super.x() + } + + override fun y(i: Int) { + super.y(i) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/overloads/Simple.new.kt b/j2k/testData/fileOrElement/overloads/Simple.new.kt new file mode 100644 index 00000000000..5bbd87a0a32 --- /dev/null +++ b/j2k/testData/fileOrElement/overloads/Simple.new.kt @@ -0,0 +1,12 @@ +internal class A { + @JvmOverloads + fun foo(i: Int, c: Char = 'a', s: String? = "") { + println("foo$i$c$s") + } + + @JvmOverloads + fun bar(s: String? = null): Int { + println("s = $s") + return 0 + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/parenthesizedExpression/parenthesized2.java b/j2k/testData/fileOrElement/parenthesizedExpression/parenthesized2.java index 2b1f91ae256..3ed511322f7 100644 --- a/j2k/testData/fileOrElement/parenthesizedExpression/parenthesized2.java +++ b/j2k/testData/fileOrElement/parenthesizedExpression/parenthesized2.java @@ -1,2 +1,3 @@ -//expression -(str.toString() + "abc").foo() \ No newline at end of file +//statement +Character str = '' +(str.toString() + "abc").length() \ No newline at end of file diff --git a/j2k/testData/fileOrElement/parenthesizedExpression/parenthesized2.kt b/j2k/testData/fileOrElement/parenthesizedExpression/parenthesized2.kt index b46f6389c44..7a5b08ea3d3 100644 --- a/j2k/testData/fileOrElement/parenthesizedExpression/parenthesized2.kt +++ b/j2k/testData/fileOrElement/parenthesizedExpression/parenthesized2.kt @@ -1 +1,2 @@ -(str.toString() + "abc").foo() \ No newline at end of file +val str = '' +(str.toString() + "abc").length \ No newline at end of file diff --git a/j2k/testData/fileOrElement/postProcessing/AnonymousObject.new.kt b/j2k/testData/fileOrElement/postProcessing/AnonymousObject.new.kt new file mode 100644 index 00000000000..8c9455ab12c --- /dev/null +++ b/j2k/testData/fileOrElement/postProcessing/AnonymousObject.new.kt @@ -0,0 +1,7 @@ +import javax.swing.SwingUtilities + +class A { + internal fun foo() { + SwingUtilities.invokeLater { println("a") } + } +} diff --git a/j2k/testData/fileOrElement/postProcessing/GetOperator.new.kt b/j2k/testData/fileOrElement/postProcessing/GetOperator.new.kt new file mode 100644 index 00000000000..22723d71e3f --- /dev/null +++ b/j2k/testData/fileOrElement/postProcessing/GetOperator.new.kt @@ -0,0 +1,26 @@ +import javaApi.JavaClass +import kotlinApi.KotlinClass + +internal class X { + operator fun get(index: Int): Int { + return 0 + } +} + +internal class C { + fun foo(map: HashMap): String? { + return map["a"] + } + + fun foo(x: X): Int { + return x[0] + } + + fun foo(kotlinClass: KotlinClass): Int { + return kotlinClass.get(0) // not operator! + } + + fun foo(javaClass: JavaClass): Int { + return javaClass.get(0) + } +} diff --git a/j2k/testData/fileOrElement/postProcessing/NotIs.new.kt b/j2k/testData/fileOrElement/postProcessing/NotIs.new.kt new file mode 100644 index 00000000000..7560152adb6 --- /dev/null +++ b/j2k/testData/fileOrElement/postProcessing/NotIs.new.kt @@ -0,0 +1,6 @@ +internal class C { + fun foo(o: Any?) { + if (o !is String) return + println("String") + } +} diff --git a/j2k/testData/fileOrElement/postProcessing/RedunduntTypeCastAndProhibitedInline.new.kt b/j2k/testData/fileOrElement/postProcessing/RedunduntTypeCastAndProhibitedInline.new.kt new file mode 100644 index 00000000000..9e18458fcc5 --- /dev/null +++ b/j2k/testData/fileOrElement/postProcessing/RedunduntTypeCastAndProhibitedInline.new.kt @@ -0,0 +1,14 @@ +object C { + fun consume1(c: C?) {} + + fun consume2(c: C?) {} + + fun foo(cList: List) { + val iter: Iterator<*> = cList.iterator() + while (iter.hasNext()) { + val c = iter.next() as C? + consume1(c) + consume2(c) + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/postfixOperator/decrement.java b/j2k/testData/fileOrElement/postfixOperator/decrement.java index d249a6d7961..5189398ae7e 100644 --- a/j2k/testData/fileOrElement/postfixOperator/decrement.java +++ b/j2k/testData/fileOrElement/postfixOperator/decrement.java @@ -1,2 +1,3 @@ //statement +int i = 0 i--; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/postfixOperator/decrement.kt b/j2k/testData/fileOrElement/postfixOperator/decrement.kt index b45bc7f1686..d6e5e727764 100644 --- a/j2k/testData/fileOrElement/postfixOperator/decrement.kt +++ b/j2k/testData/fileOrElement/postfixOperator/decrement.kt @@ -1 +1,2 @@ +var i = 0 i-- \ No newline at end of file diff --git a/j2k/testData/fileOrElement/postfixOperator/increment.java b/j2k/testData/fileOrElement/postfixOperator/increment.java index 1310c60ea0a..5a8e09f4f65 100644 --- a/j2k/testData/fileOrElement/postfixOperator/increment.java +++ b/j2k/testData/fileOrElement/postfixOperator/increment.java @@ -1,2 +1,3 @@ //statement +int i = 0 i++; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/postfixOperator/increment.kt b/j2k/testData/fileOrElement/postfixOperator/increment.kt index f47eebed94d..9fe936fdfe8 100644 --- a/j2k/testData/fileOrElement/postfixOperator/increment.kt +++ b/j2k/testData/fileOrElement/postfixOperator/increment.kt @@ -1 +1,2 @@ +var i = 0 i++ \ No newline at end of file diff --git a/j2k/testData/fileOrElement/prefixOperator/decrement.java b/j2k/testData/fileOrElement/prefixOperator/decrement.java index e159b662001..2dd07c20cfd 100644 --- a/j2k/testData/fileOrElement/prefixOperator/decrement.java +++ b/j2k/testData/fileOrElement/prefixOperator/decrement.java @@ -1,2 +1,3 @@ //statement +int i = 0; --i; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/prefixOperator/decrement.kt b/j2k/testData/fileOrElement/prefixOperator/decrement.kt index 33b7049c8ba..fbc3a74fed2 100644 --- a/j2k/testData/fileOrElement/prefixOperator/decrement.kt +++ b/j2k/testData/fileOrElement/prefixOperator/decrement.kt @@ -1 +1,2 @@ +var i = 0 --i \ No newline at end of file diff --git a/j2k/testData/fileOrElement/prefixOperator/increment.java b/j2k/testData/fileOrElement/prefixOperator/increment.java index b63a2f00e31..bf78fbee89c 100644 --- a/j2k/testData/fileOrElement/prefixOperator/increment.java +++ b/j2k/testData/fileOrElement/prefixOperator/increment.java @@ -1,2 +1,3 @@ //statement +int i = 0; ++i; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/prefixOperator/increment.kt b/j2k/testData/fileOrElement/prefixOperator/increment.kt index de36816d982..ece0285a1fe 100644 --- a/j2k/testData/fileOrElement/prefixOperator/increment.kt +++ b/j2k/testData/fileOrElement/prefixOperator/increment.kt @@ -1 +1,2 @@ +var i = 0 ++i \ No newline at end of file diff --git a/j2k/testData/fileOrElement/projections/projections.new.kt b/j2k/testData/fileOrElement/projections/projections.new.kt new file mode 100644 index 00000000000..3c8ae164438 --- /dev/null +++ b/j2k/testData/fileOrElement/projections/projections.new.kt @@ -0,0 +1,19 @@ +internal class C { + fun foo1(src: Collection) { + val t = src.iterator().next() + } + + fun foo2(src: ArrayList) { + val t = src.iterator().next() + } + + fun foo3(dst: MutableCollection, t: T?) { + dst.add(t) + } + + fun foo4(comparable: Comparable, t: T?): Int { + return comparable.compareTo(t) + } + + fun foo5(w: Collection<*>?) {} +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/protected/constructorProperty.new.kt b/j2k/testData/fileOrElement/protected/constructorProperty.new.kt new file mode 100644 index 00000000000..019a4978c01 --- /dev/null +++ b/j2k/testData/fileOrElement/protected/constructorProperty.new.kt @@ -0,0 +1,15 @@ +package test + +abstract class Base(protected var field: Int) + +class Derived(value: Int) : Base(value) { + private val usage: View = object : View() { + override fun click() { + val activity = field + } + } +} + +internal abstract class View { + internal abstract fun click() +} diff --git a/j2k/testData/fileOrElement/rawGenerics/kt-540-map.new.kt b/j2k/testData/fileOrElement/rawGenerics/kt-540-map.new.kt new file mode 100644 index 00000000000..bad98f69af9 --- /dev/null +++ b/j2k/testData/fileOrElement/rawGenerics/kt-540-map.new.kt @@ -0,0 +1,9 @@ +package demo + +internal class Test { + fun main() { + val commonMap: HashMap = HashMap() + val rawMap: HashMap<*, *> = HashMap() + val superRawMap: HashMap<*, *> = HashMap() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/rawGenerics/kt-540-rawGenericClass.new.kt b/j2k/testData/fileOrElement/rawGenerics/kt-540-rawGenericClass.new.kt new file mode 100644 index 00000000000..b9f1eb0b266 --- /dev/null +++ b/j2k/testData/fileOrElement/rawGenerics/kt-540-rawGenericClass.new.kt @@ -0,0 +1,15 @@ +package demo + +internal class Collection(e: E?) { + init { + println(e) + } +} + +internal class Test { + fun main() { + val raw1 = Collection(1) + val raw2 = Collection(1) + val raw3 = Collection("1") + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/rawGenerics/kt-540.new.kt b/j2k/testData/fileOrElement/rawGenerics/kt-540.new.kt new file mode 100644 index 00000000000..659b44b5303 --- /dev/null +++ b/j2k/testData/fileOrElement/rawGenerics/kt-540.new.kt @@ -0,0 +1,10 @@ +// ERROR: Type inference failed: Not enough information to infer parameter E in constructor ArrayList() Please specify it explicitly. +package demo + +internal class Test { + fun main() { + val common: List = ArrayList() + val raw: List<*> = ArrayList() + val superRaw: List<*> = ArrayList() + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/returnStatement/currentMethodBug.new.kt b/j2k/testData/fileOrElement/returnStatement/currentMethodBug.new.kt new file mode 100644 index 00000000000..7cd7f540aec --- /dev/null +++ b/j2k/testData/fileOrElement/returnStatement/currentMethodBug.new.kt @@ -0,0 +1,19 @@ +internal interface I { + val int: Int +} + +internal class C { + var string: String? = null + val `object`: Any? + get() { + + foo(object : I { + override val int: Int + get() = 0 + }) + return string + } + + fun foo(i: I?) { + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/staticMembers/PrivateStaticMembers.new.kt b/j2k/testData/fileOrElement/staticMembers/PrivateStaticMembers.new.kt new file mode 100644 index 00000000000..7ae50a0303d --- /dev/null +++ b/j2k/testData/fileOrElement/staticMembers/PrivateStaticMembers.new.kt @@ -0,0 +1,14 @@ +internal class A { + + fun foo() { + privateStatic1() + privateStatic2() + } + + companion object { + private const val s = "abc" + + private fun privateStatic1() {} + private fun privateStatic2() {} + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/switch/KT-13552.new.kt b/j2k/testData/fileOrElement/switch/KT-13552.new.kt new file mode 100644 index 00000000000..027154107c6 --- /dev/null +++ b/j2k/testData/fileOrElement/switch/KT-13552.new.kt @@ -0,0 +1,82 @@ +object SwitchDemo { + fun test(i: Int): Int { + var monthString = "" + when (i) { + 1 -> { + print(1) + print(2) + print(3) + print(4) + print(5) + } + 2 -> { + print(2) + print(3) + print(4) + print(5) + } + 3 -> { + print(3) + print(4) + print(5) + } + 4 -> { + print(4) + print(5) + } + 5 -> print(5) + 6 -> { + print(6) + print(7) + print(8) + print(9) + print(10) + print(11) + monthString = "December" + } + 7 -> { + print(7) + print(8) + print(9) + print(10) + print(11) + monthString = "December" + } + 8 -> { + print(8) + print(9) + print(10) + print(11) + monthString = "December" + } + 9 -> { + print(9) + print(10) + print(11) + monthString = "December" + } + 10 -> { + print(10) + print(11) + monthString = "December" + } + 11 -> { + print(11) + monthString = "December" + } + 12 -> monthString = "December" + else -> { + print(4) + print(5) + } + } + val status = "" + return when (status) { + "init", "dial", "transmit" -> 0x111111 + "ok" -> -0xff9a00 + "cancel" -> -0x99999a + "fail", "busy", "error" -> -0x9a0000 + else -> -0x9a0000 + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/switch/comlicatedFallDown.new.kt b/j2k/testData/fileOrElement/switch/comlicatedFallDown.new.kt new file mode 100644 index 00000000000..41ebbf97a1c --- /dev/null +++ b/j2k/testData/fileOrElement/switch/comlicatedFallDown.new.kt @@ -0,0 +1,84 @@ +package demo + +object SwitchDemo { + fun print(o: Any?) { + println(o) + } + + fun test(i: Int) { + var monthString = "" + when (i) { + 1 -> { + print(1) + print(2) + print(3) + print(4) + print(5) + } + 2 -> { + print(2) + print(3) + print(4) + print(5) + } + 3 -> { + print(3) + print(4) + print(5) + } + 4 -> { + print(4) + print(5) + } + 5 -> print(5) + 6 -> { + print(6) + print(7) + print(8) + print(9) + print(10) + print(11) + monthString = "December" + } + 7 -> { + print(7) + print(8) + print(9) + print(10) + print(11) + monthString = "December" + } + 8 -> { + print(8) + print(9) + print(10) + print(11) + monthString = "December" + } + 9 -> { + print(9) + print(10) + print(11) + monthString = "December" + } + 10 -> { + print(10) + print(11) + monthString = "December" + } + 11 -> { + print(11) + monthString = "December" + } + 12 -> monthString = "December" + else -> monthString = "Invalid month" + } + println(monthString) + } + + @JvmStatic + fun main(args: Array) { + for (i in 1..12) + test(i) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/switch/fallDown.new.kt b/j2k/testData/fileOrElement/switch/fallDown.new.kt new file mode 100644 index 00000000000..9a34f0392a5 --- /dev/null +++ b/j2k/testData/fileOrElement/switch/fallDown.new.kt @@ -0,0 +1,14 @@ +package switch_demo + +object SwitchDemo { + @JvmStatic + fun main(args: Array) { + val month = 8 + val monthString: String + monthString = when (month) { + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 -> "December" + else -> "Invalid month" + } + println(monthString) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/switch/kt-539.new.kt b/j2k/testData/fileOrElement/switch/kt-539.new.kt new file mode 100644 index 00000000000..b6d68c8edf1 --- /dev/null +++ b/j2k/testData/fileOrElement/switch/kt-539.new.kt @@ -0,0 +1,26 @@ +package switch_demo + +object SwitchDemo { + @JvmStatic + fun main(args: Array) { + + val month = 8 + val monthString: String + monthString = when (month) { + 1 -> "January" + 2 -> "February" + 3 -> "March" + 4 -> "April" + 5 -> "May" + 6 -> "June" + 7 -> "July" + 8 -> "August" + 9 -> "September" + 10 -> "October" + 11 -> "November" + 12 -> "December" + else -> "Invalid month" + } + println(monthString) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/switch/nestedIf.new.kt b/j2k/testData/fileOrElement/switch/nestedIf.new.kt new file mode 100644 index 00000000000..d9ae9b0a658 --- /dev/null +++ b/j2k/testData/fileOrElement/switch/nestedIf.new.kt @@ -0,0 +1,11 @@ +fun foo(i: Int, j: Int): String { + return when (i) { + 0 -> if (j > 0) { + "1" + } else { + "2" + } + 1 -> "3" + else -> "4" + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/switch/nestedIfFallback.new.kt b/j2k/testData/fileOrElement/switch/nestedIfFallback.new.kt new file mode 100644 index 00000000000..2f15300c493 --- /dev/null +++ b/j2k/testData/fileOrElement/switch/nestedIfFallback.new.kt @@ -0,0 +1,11 @@ +fun foo(i: Int, j: Int): String { + return when (i) { + 0 -> { + if (j > 0) { + "1" + } else "2" + } + 1 -> "2" + else -> "3" + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/switch/nestedSwitch.new.kt b/j2k/testData/fileOrElement/switch/nestedSwitch.new.kt new file mode 100644 index 00000000000..b501ad6e5bf --- /dev/null +++ b/j2k/testData/fileOrElement/switch/nestedSwitch.new.kt @@ -0,0 +1,11 @@ +fun foo(i: Int, j: Int): String { + return when (i) { + 0 -> when (j) { + 1 -> "0, 1" + else -> "0, x" + } + + 1 -> "1, x" + else -> "x, x" + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/switch/returnsAndThrows.new.kt b/j2k/testData/fileOrElement/switch/returnsAndThrows.new.kt new file mode 100644 index 00000000000..bbcba69002e --- /dev/null +++ b/j2k/testData/fileOrElement/switch/returnsAndThrows.new.kt @@ -0,0 +1,20 @@ +fun foo(a: Int): Int { + return when (a) { + 1 -> { + println("1") + 1 + } + 2 -> { + println("2") + 2 + } + 3 -> { + println("3") + throw RuntimeException() + } + else -> { + println("default") + 0 + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/thisExpression/classAdotThisFoo.new.kt b/j2k/testData/fileOrElement/thisExpression/classAdotThisFoo.new.kt new file mode 100644 index 00000000000..40af0a113dc --- /dev/null +++ b/j2k/testData/fileOrElement/thisExpression/classAdotThisFoo.new.kt @@ -0,0 +1,13 @@ +package a.b + +internal open class Base { + open fun foo() {} +} + +internal class A : Base() { + internal inner class C { + fun test() { + foo() + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/toKotlinClasses/TypeParameterBound.new.kt b/j2k/testData/fileOrElement/toKotlinClasses/TypeParameterBound.new.kt new file mode 100644 index 00000000000..c370b02557f --- /dev/null +++ b/j2k/testData/fileOrElement/toKotlinClasses/TypeParameterBound.new.kt @@ -0,0 +1,5 @@ +import java.util.ArrayList + +internal interface I?>?> + +internal class C : I?>?> \ No newline at end of file diff --git a/j2k/testData/fileOrElement/trait/extendsOneClassAndImplementsSeveralInterfaces.java b/j2k/testData/fileOrElement/trait/extendsOneClassAndImplementsSeveralInterfaces.java index 0dbd6f57c0d..2d1e6b2c3a8 100644 --- a/j2k/testData/fileOrElement/trait/extendsOneClassAndImplementsSeveralInterfaces.java +++ b/j2k/testData/fileOrElement/trait/extendsOneClassAndImplementsSeveralInterfaces.java @@ -1,2 +1,5 @@ //class +interface I0 {} +interface I1 {} +interface I2 {} interface A extends I0, I1, I2 {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/trait/extendsOneClassAndImplementsSeveralInterfaces.kt b/j2k/testData/fileOrElement/trait/extendsOneClassAndImplementsSeveralInterfaces.kt index dedefaaf188..61f3a04b5ee 100644 --- a/j2k/testData/fileOrElement/trait/extendsOneClassAndImplementsSeveralInterfaces.kt +++ b/j2k/testData/fileOrElement/trait/extendsOneClassAndImplementsSeveralInterfaces.kt @@ -1 +1,4 @@ +internal interface I0 +internal interface I1 +internal interface I2 internal interface A : I0, I1, I2 \ No newline at end of file diff --git a/j2k/testData/fileOrElement/trait/extendsOneInterface.java b/j2k/testData/fileOrElement/trait/extendsOneInterface.java index 75fd76bf208..749925c7ea4 100644 --- a/j2k/testData/fileOrElement/trait/extendsOneInterface.java +++ b/j2k/testData/fileOrElement/trait/extendsOneInterface.java @@ -1,2 +1,2 @@ -//class +interface I {} interface A extends I {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/trait/extendsOneInterface.kt b/j2k/testData/fileOrElement/trait/extendsOneInterface.kt index 45dcd02b6c8..1ffcfd7c1fb 100644 --- a/j2k/testData/fileOrElement/trait/extendsOneInterface.kt +++ b/j2k/testData/fileOrElement/trait/extendsOneInterface.kt @@ -1 +1,2 @@ +internal interface I internal interface A : I \ No newline at end of file diff --git a/j2k/testData/fileOrElement/trait/interfaceWithFields.java b/j2k/testData/fileOrElement/trait/interfaceWithFields.java index c3fb73f0fdb..5b0b794788e 100644 --- a/j2k/testData/fileOrElement/trait/interfaceWithFields.java +++ b/j2k/testData/fileOrElement/trait/interfaceWithFields.java @@ -1,2 +1,2 @@ //class -interface INode {String IN = "in";String AT = "@";String COMMA_WITH_SPACE = COMMA + SPACE;} \ No newline at end of file +interface INode {String IN = "in";String AT = "@";String COMMA_WITH_SPACE = IN + AT;} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/trait/interfaceWithFields.kt b/j2k/testData/fileOrElement/trait/interfaceWithFields.kt index 09d585c72d9..6838570246b 100644 --- a/j2k/testData/fileOrElement/trait/interfaceWithFields.kt +++ b/j2k/testData/fileOrElement/trait/interfaceWithFields.kt @@ -2,6 +2,6 @@ internal interface INode { companion object { val IN = "in" val AT = "@" - val COMMA_WITH_SPACE = COMMA + SPACE + val COMMA_WITH_SPACE = IN + AT } } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/trait/interfaceWithFields.new.kt b/j2k/testData/fileOrElement/trait/interfaceWithFields.new.kt new file mode 100644 index 00000000000..3f94ea9aa7e --- /dev/null +++ b/j2k/testData/fileOrElement/trait/interfaceWithFields.new.kt @@ -0,0 +1,7 @@ +internal interface INode { + companion object { + const val IN = "in" + const val AT = "@" + const val COMMA_WITH_SPACE = IN + AT + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/trait/interfaceWithMethodDeclaration.new.kt b/j2k/testData/fileOrElement/trait/interfaceWithMethodDeclaration.new.kt new file mode 100644 index 00000000000..795c3a23b54 --- /dev/null +++ b/j2k/testData/fileOrElement/trait/interfaceWithMethodDeclaration.new.kt @@ -0,0 +1,4 @@ +internal interface INode { + val tag: Tag? + fun toKotlin(): String? +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/trait/interfaceWithStaticFields.java b/j2k/testData/fileOrElement/trait/interfaceWithStaticFields.java index ad8d5172998..807f5de02c7 100644 --- a/j2k/testData/fileOrElement/trait/interfaceWithStaticFields.java +++ b/j2k/testData/fileOrElement/trait/interfaceWithStaticFields.java @@ -1,2 +1,2 @@ //class -public interface INode { public static final String IN = "in"; public static final String AT = "@"; public static final String COMMA_WITH_SPACE = COMMA + SPACE;} \ No newline at end of file +public interface INode { public static final String IN = "in"; public static final String AT = "@"; public static final String COMMA_WITH_SPACE = IN + AT;} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/trait/interfaceWithStaticFields.kt b/j2k/testData/fileOrElement/trait/interfaceWithStaticFields.kt index 38478bdeb3d..bb74bb14d57 100644 --- a/j2k/testData/fileOrElement/trait/interfaceWithStaticFields.kt +++ b/j2k/testData/fileOrElement/trait/interfaceWithStaticFields.kt @@ -2,6 +2,6 @@ interface INode { companion object { val IN = "in" val AT = "@" - val COMMA_WITH_SPACE = COMMA + SPACE + val COMMA_WITH_SPACE = IN + AT } } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/trait/interfaceWithStaticFields.new.kt b/j2k/testData/fileOrElement/trait/interfaceWithStaticFields.new.kt new file mode 100644 index 00000000000..b6ad1a60781 --- /dev/null +++ b/j2k/testData/fileOrElement/trait/interfaceWithStaticFields.new.kt @@ -0,0 +1,7 @@ +interface INode { + companion object { + const val IN = "in" + const val AT = "@" + const val COMMA_WITH_SPACE = IN + AT + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/tryWithResource/Multiline.new.kt b/j2k/testData/fileOrElement/tryWithResource/Multiline.new.kt new file mode 100644 index 00000000000..1eb2f1a2cea --- /dev/null +++ b/j2k/testData/fileOrElement/tryWithResource/Multiline.new.kt @@ -0,0 +1,13 @@ +import java.io.ByteArrayInputStream +import java.io.IOException + +class C { + @Throws(IOException::class) + internal fun foo() { + ByteArrayInputStream(ByteArray(10)).use { stream -> + // reading something + val c = stream.read() + println(c) + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/tryWithResource/MultipleResources.new.kt b/j2k/testData/fileOrElement/tryWithResource/MultipleResources.new.kt new file mode 100644 index 00000000000..70bfbf1b3d4 --- /dev/null +++ b/j2k/testData/fileOrElement/tryWithResource/MultipleResources.new.kt @@ -0,0 +1,15 @@ +import java.io.ByteArrayInputStream +import java.io.ByteArrayOutputStream +import java.io.IOException + +class C { + @Throws(IOException::class) + internal fun foo() { + ByteArrayInputStream(ByteArray(10)).use { input -> + ByteArrayOutputStream().use { output -> + output.write(input.read()) + output.write(0) + } + } + } +} diff --git a/j2k/testData/fileOrElement/tryWithResource/Simple.new.kt b/j2k/testData/fileOrElement/tryWithResource/Simple.new.kt new file mode 100644 index 00000000000..092ee31f1d0 --- /dev/null +++ b/j2k/testData/fileOrElement/tryWithResource/Simple.new.kt @@ -0,0 +1,9 @@ +import java.io.ByteArrayInputStream +import java.io.IOException + +class C { + @Throws(IOException::class) + internal fun foo() { + ByteArrayInputStream(ByteArray(10)).use { stream -> println(stream.read()) } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/tryWithResource/WithCatch.new.kt b/j2k/testData/fileOrElement/tryWithResource/WithCatch.new.kt new file mode 100644 index 00000000000..6642cb6a8ad --- /dev/null +++ b/j2k/testData/fileOrElement/tryWithResource/WithCatch.new.kt @@ -0,0 +1,17 @@ +import java.io.ByteArrayInputStream +import java.io.IOException + +class C { + internal fun foo() { + try { + ByteArrayInputStream(ByteArray(10)).use { stream -> + // reading something + val c = stream.read() + println(c) + } + } catch (e: IOException) { + println(e) + } + + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/tryWithResource/WithCatchAndFinally.new.kt b/j2k/testData/fileOrElement/tryWithResource/WithCatchAndFinally.new.kt new file mode 100644 index 00000000000..3a5bdee6506 --- /dev/null +++ b/j2k/testData/fileOrElement/tryWithResource/WithCatchAndFinally.new.kt @@ -0,0 +1,18 @@ +import java.io.ByteArrayInputStream +import java.io.IOException + +class C { + internal fun foo() { + try { + ByteArrayInputStream(ByteArray(10)).use { stream -> + // reading something + val c = stream.read() + println(c) + } + } catch (e: IOException) { + println(e) + } finally { + println("Finally!") + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/tryWithResource/WithCatches.new.kt b/j2k/testData/fileOrElement/tryWithResource/WithCatches.new.kt new file mode 100644 index 00000000000..541ceae690f --- /dev/null +++ b/j2k/testData/fileOrElement/tryWithResource/WithCatches.new.kt @@ -0,0 +1,19 @@ +import java.io.ByteArrayInputStream +import java.io.IOException + +class C { + internal fun foo() { + try { + ByteArrayInputStream(ByteArray(10)).use { stream -> + // reading something + val c = stream.read() + println(c) + } + } catch (e: IOException) { + println(e) + } catch (e: Exception) { + System.err.println(e) + } + + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/tryWithResource/WithFinally.new.kt b/j2k/testData/fileOrElement/tryWithResource/WithFinally.new.kt new file mode 100644 index 00000000000..d74ab529dd3 --- /dev/null +++ b/j2k/testData/fileOrElement/tryWithResource/WithFinally.new.kt @@ -0,0 +1,17 @@ +import java.io.ByteArrayInputStream +import java.io.IOException + +class C { + @Throws(IOException::class) + internal fun foo() { + try { + ByteArrayInputStream(ByteArray(10)).use { stream -> + // reading something + val c = stream.read() + println(c) + } + } finally { + // dispose something else + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/tryWithResource/WithReturnAtEnd.new.kt b/j2k/testData/fileOrElement/tryWithResource/WithReturnAtEnd.new.kt new file mode 100644 index 00000000000..57f6f73506c --- /dev/null +++ b/j2k/testData/fileOrElement/tryWithResource/WithReturnAtEnd.new.kt @@ -0,0 +1,16 @@ +import java.io.ByteArrayInputStream +import java.io.IOException + +class C { + internal fun foo(): Int { + try { + ByteArrayInputStream(ByteArray(10)).use { stream -> + // reading something + return stream.read() + } + } catch (e: IOException) { + println(e) + return -1 + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/tryWithResource/WithReturnInAnonymousClass.new.kt b/j2k/testData/fileOrElement/tryWithResource/WithReturnInAnonymousClass.new.kt new file mode 100644 index 00000000000..c7d5071282b --- /dev/null +++ b/j2k/testData/fileOrElement/tryWithResource/WithReturnInAnonymousClass.new.kt @@ -0,0 +1,27 @@ +import java.io.ByteArrayInputStream +import java.io.IOException +import java.io.InputStream + +internal interface I { + @Throws(IOException::class) + fun doIt(stream: InputStream?): Int +} + +class C { + @Throws(IOException::class) + internal fun foo() { + ByteArrayInputStream(ByteArray(10)).use { stream -> + bar(object : I { + @Throws(IOException::class) + override fun doIt(stream: InputStream): Int { + return stream.available() + } + }, stream) + } + } + + @Throws(IOException::class) + internal fun bar(i: I, stream: InputStream?): Int { + return i.doIt(stream) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/tryWithResource/WithReturnInAnonymousClass2.new.kt b/j2k/testData/fileOrElement/tryWithResource/WithReturnInAnonymousClass2.new.kt new file mode 100644 index 00000000000..7d83b0bd7bb --- /dev/null +++ b/j2k/testData/fileOrElement/tryWithResource/WithReturnInAnonymousClass2.new.kt @@ -0,0 +1,27 @@ +import java.io.ByteArrayInputStream +import java.io.IOException +import java.io.InputStream + +internal interface I { + @Throws(IOException::class) + fun doIt(stream: InputStream?): Int +} + +class C { + @Throws(IOException::class) + internal fun foo(): Int { + ByteArrayInputStream(ByteArray(10)).use { stream -> + return bar(object : I { + @Throws(IOException::class) + override fun doIt(stream: InputStream): Int { + return stream.available() + } + }, stream) + } + } + + @Throws(IOException::class) + internal fun bar(i: I, stream: InputStream?): Int { + return i.doIt(stream) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeCastExpression/castNullObject.java b/j2k/testData/fileOrElement/typeCastExpression/castNullObject.java index ae53b0c9798..7a5ce375aa6 100644 --- a/j2k/testData/fileOrElement/typeCastExpression/castNullObject.java +++ b/j2k/testData/fileOrElement/typeCastExpression/castNullObject.java @@ -1,2 +1,2 @@ -//expression -(Object) null \ No newline at end of file +//statement +Object o = (Object) null \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeCastExpression/castNullObject.kt b/j2k/testData/fileOrElement/typeCastExpression/castNullObject.kt index 42752455b59..b20a23f5426 100644 --- a/j2k/testData/fileOrElement/typeCastExpression/castNullObject.kt +++ b/j2k/testData/fileOrElement/typeCastExpression/castNullObject.kt @@ -1 +1 @@ -null as Any? \ No newline at end of file +val o = null as Any? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeCastExpression/castNullObject.new.kt b/j2k/testData/fileOrElement/typeCastExpression/castNullObject.new.kt new file mode 100644 index 00000000000..a51732738c3 --- /dev/null +++ b/j2k/testData/fileOrElement/typeCastExpression/castNullObject.new.kt @@ -0,0 +1 @@ +valro = null as Any? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeCastExpression/extendsWildcardCast.new.kt b/j2k/testData/fileOrElement/typeCastExpression/extendsWildcardCast.new.kt new file mode 100644 index 00000000000..a1a8984ea76 --- /dev/null +++ b/j2k/testData/fileOrElement/typeCastExpression/extendsWildcardCast.new.kt @@ -0,0 +1 @@ +list as List? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeCastExpression/fooCast.new.kt b/j2k/testData/fileOrElement/typeCastExpression/fooCast.new.kt new file mode 100644 index 00000000000..c3d8f283675 --- /dev/null +++ b/j2k/testData/fileOrElement/typeCastExpression/fooCast.new.kt @@ -0,0 +1 @@ +t as Foo? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeCastExpression/simpleGenericCast.new.kt b/j2k/testData/fileOrElement/typeCastExpression/simpleGenericCast.new.kt new file mode 100644 index 00000000000..e1d2af10984 --- /dev/null +++ b/j2k/testData/fileOrElement/typeCastExpression/simpleGenericCast.new.kt @@ -0,0 +1 @@ +list as List? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeCastExpression/stringCast.new.kt b/j2k/testData/fileOrElement/typeCastExpression/stringCast.new.kt new file mode 100644 index 00000000000..6ab1deb69ce --- /dev/null +++ b/j2k/testData/fileOrElement/typeCastExpression/stringCast.new.kt @@ -0,0 +1 @@ +t as String? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeCastExpression/superWildcardCast.new.kt b/j2k/testData/fileOrElement/typeCastExpression/superWildcardCast.new.kt new file mode 100644 index 00000000000..e199d5d5de5 --- /dev/null +++ b/j2k/testData/fileOrElement/typeCastExpression/superWildcardCast.new.kt @@ -0,0 +1 @@ +list as List? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeCastExpression/wildcardCast.new.kt b/j2k/testData/fileOrElement/typeCastExpression/wildcardCast.new.kt new file mode 100644 index 00000000000..05e19f3a6a8 --- /dev/null +++ b/j2k/testData/fileOrElement/typeCastExpression/wildcardCast.new.kt @@ -0,0 +1 @@ +list as List<*>? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/classDoubleParametrizationWithTwoBoundsWithExtending.java b/j2k/testData/fileOrElement/typeParameters/classDoubleParametrizationWithTwoBoundsWithExtending.java index 1896ee7b7f4..6c0b306dd9a 100644 --- a/j2k/testData/fileOrElement/typeParameters/classDoubleParametrizationWithTwoBoundsWithExtending.java +++ b/j2k/testData/fileOrElement/typeParameters/classDoubleParametrizationWithTwoBoundsWithExtending.java @@ -1,2 +1,4 @@ -//class -final class CC , K extends Node & Collection> extends A {} \ No newline at end of file +interface INode {} +interface Node {} +class A {} +final class CC , K extends Node & Collection> extends A {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/classDoubleParametrizationWithTwoBoundsWithExtending.kt b/j2k/testData/fileOrElement/typeParameters/classDoubleParametrizationWithTwoBoundsWithExtending.kt index 111e7daca53..15a8ff3c948 100644 --- a/j2k/testData/fileOrElement/typeParameters/classDoubleParametrizationWithTwoBoundsWithExtending.kt +++ b/j2k/testData/fileOrElement/typeParameters/classDoubleParametrizationWithTwoBoundsWithExtending.kt @@ -1 +1,4 @@ -internal class CC : A() where T : Comparable, K : Collection \ No newline at end of file +internal interface INode +internal interface Node +internal open class A +internal class CC : A() where T : Comparable, K : Collection \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/classDoubleParametrizationWithTwoBoundsWithExtending.new.kt b/j2k/testData/fileOrElement/typeParameters/classDoubleParametrizationWithTwoBoundsWithExtending.new.kt new file mode 100644 index 00000000000..617bb53be56 --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/classDoubleParametrizationWithTwoBoundsWithExtending.new.kt @@ -0,0 +1,4 @@ +internal interface INode +internal interface Node +internal open class A +internal class CC : A() where T : INode?, T : Comparable?, K : Node?, K : Collection? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBounds.java b/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBounds.java index 24b206eb9b7..fcc883227d0 100644 --- a/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBounds.java +++ b/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBounds.java @@ -1,2 +1,2 @@ -//class +interface INode {} final class C> {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBounds.kt b/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBounds.kt index a3b80286417..a78f3ecd7fb 100644 --- a/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBounds.kt +++ b/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBounds.kt @@ -1 +1,2 @@ +internal interface INode internal class C where T : Comparable \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBounds.new.kt b/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBounds.new.kt new file mode 100644 index 00000000000..d83caf1682f --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBounds.new.kt @@ -0,0 +1,2 @@ +internal interface INode +internal class C where T : INode?, T : Comparable? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBoundsWithExtending.java b/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBoundsWithExtending.java index 4215ba527e8..35ef6b94830 100644 --- a/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBoundsWithExtending.java +++ b/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBoundsWithExtending.java @@ -1,2 +1,4 @@ -//class +interface INode {} +class A {} + final class C> extends A {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBoundsWithExtending.kt b/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBoundsWithExtending.kt index 2f74240f34f..83f5338eca6 100644 --- a/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBoundsWithExtending.kt +++ b/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBoundsWithExtending.kt @@ -1 +1,4 @@ +internal interface INode +internal open class A + internal class C : A() where T : Comparable \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBoundsWithExtending.new.kt b/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBoundsWithExtending.new.kt new file mode 100644 index 00000000000..5e1ec0c8bc6 --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/classParametrizationWithTwoBoundsWithExtending.new.kt @@ -0,0 +1,4 @@ +internal interface INode +internal open class A + +internal class C : A() where T : INode?, T : Comparable? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/complexExampleWithClassExtending.new.kt b/j2k/testData/fileOrElement/typeParameters/complexExampleWithClassExtending.new.kt new file mode 100644 index 00000000000..b712f451cd4 --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/complexExampleWithClassExtending.new.kt @@ -0,0 +1 @@ +internal interface CommandHandler \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/complexExampleWithClassMultiplyExtending.new.kt b/j2k/testData/fileOrElement/typeParameters/complexExampleWithClassMultiplyExtending.new.kt new file mode 100644 index 00000000000..94a46b3413b --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/complexExampleWithClassMultiplyExtending.new.kt @@ -0,0 +1 @@ +internal interface CommandHandler \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/genericParam.new.kt b/j2k/testData/fileOrElement/typeParameters/genericParam.new.kt new file mode 100644 index 00000000000..1080a90d7b6 --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/genericParam.new.kt @@ -0,0 +1 @@ +var l: List \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/manyGenericParams.new.kt b/j2k/testData/fileOrElement/typeParameters/manyGenericParams.new.kt new file mode 100644 index 00000000000..7a2694c3978 --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/manyGenericParams.new.kt @@ -0,0 +1 @@ +var l: List \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/methodDoubleParametrizationWithTwoBounds.new.kt b/j2k/testData/fileOrElement/typeParameters/methodDoubleParametrizationWithTwoBounds.new.kt new file mode 100644 index 00000000000..bfa02633335 --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/methodDoubleParametrizationWithTwoBounds.new.kt @@ -0,0 +1 @@ +fun max(coll: Collection?): T? where T : Any?, T : Comparable?, K : Node?, K : Collection? {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/needTypeArgs.new.kt b/j2k/testData/fileOrElement/typeParameters/needTypeArgs.new.kt new file mode 100644 index 00000000000..5ba7fe26e0d --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/needTypeArgs.new.kt @@ -0,0 +1,16 @@ +internal class A { + fun foo() { + val map1: Map = getMap1() + val map2 = getMap2("a", 1) + } + + fun getMap1(): Map { + return HashMap() + } + + fun getMap2(k: K?, v: V?): Map { + val map: HashMap = HashMap() + map[k] = v + return map + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/rawTypeCast.new.kt b/j2k/testData/fileOrElement/typeParameters/rawTypeCast.new.kt new file mode 100644 index 00000000000..c50a53f1f1b --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/rawTypeCast.new.kt @@ -0,0 +1,10 @@ +// ERROR: Type inference failed. Expected type mismatch: inferred type is HashMap but Map was expected +import java.util.HashMap +import java.util.Properties + +internal object A { + fun foo(): Map { + val props = Properties() + return HashMap(props as Map<*, *>) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/traitDoubleParametrizationWithTwoBoundsWithExtending.java b/j2k/testData/fileOrElement/typeParameters/traitDoubleParametrizationWithTwoBoundsWithExtending.java index fe100723927..8686e02d356 100644 --- a/j2k/testData/fileOrElement/typeParameters/traitDoubleParametrizationWithTwoBoundsWithExtending.java +++ b/j2k/testData/fileOrElement/typeParameters/traitDoubleParametrizationWithTwoBoundsWithExtending.java @@ -1,2 +1,5 @@ -//class -interface I , K extends Node & Collection> extends II {} \ No newline at end of file +interface INode {} +interface Node {} +interface II {} + +interface I , K extends Node & Collection> extends II {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/traitDoubleParametrizationWithTwoBoundsWithExtending.kt b/j2k/testData/fileOrElement/typeParameters/traitDoubleParametrizationWithTwoBoundsWithExtending.kt index 4966cbb3831..7a80232eaff 100644 --- a/j2k/testData/fileOrElement/typeParameters/traitDoubleParametrizationWithTwoBoundsWithExtending.kt +++ b/j2k/testData/fileOrElement/typeParameters/traitDoubleParametrizationWithTwoBoundsWithExtending.kt @@ -1 +1,5 @@ -internal interface I : II where T : Comparable, K : Collection \ No newline at end of file +internal interface INode +internal interface Node +internal interface II + +internal interface I : II where T : Comparable, K : Collection \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/traitDoubleParametrizationWithTwoBoundsWithExtending.new.kt b/j2k/testData/fileOrElement/typeParameters/traitDoubleParametrizationWithTwoBoundsWithExtending.new.kt new file mode 100644 index 00000000000..659a47d1fa2 --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/traitDoubleParametrizationWithTwoBoundsWithExtending.new.kt @@ -0,0 +1,5 @@ +internal interface INode +internal interface Node +internal interface II + +internal interface I : II where T : INode?, T : Comparable?, K : Node?, K : Collection? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/typeFromOtherFile.new.kt b/j2k/testData/fileOrElement/typeParameters/typeFromOtherFile.new.kt new file mode 100644 index 00000000000..169c62baa50 --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/typeFromOtherFile.new.kt @@ -0,0 +1,8 @@ +import javaApi.T +import java.util.Collections + +internal class A { + fun foo(t: T): Any { + return Collections.nCopies(1, t.set) + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/typeParameters/where.new.kt b/j2k/testData/fileOrElement/typeParameters/where.new.kt new file mode 100644 index 00000000000..802ca375545 --- /dev/null +++ b/j2k/testData/fileOrElement/typeParameters/where.new.kt @@ -0,0 +1 @@ +fun max(coll: Collection?): T? where T : Any?, T : Comparable? {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/varArg/ellipsisTypeSeveralParams.new.kt b/j2k/testData/fileOrElement/varArg/ellipsisTypeSeveralParams.new.kt new file mode 100644 index 00000000000..f81a8d2b812 --- /dev/null +++ b/j2k/testData/fileOrElement/varArg/ellipsisTypeSeveralParams.new.kt @@ -0,0 +1 @@ +fun format(pattern: String?, vararg arguments: Any?): String? \ No newline at end of file diff --git a/j2k/testData/fileOrElement/varArg/ellipsisTypeSingleParams.new.kt b/j2k/testData/fileOrElement/varArg/ellipsisTypeSingleParams.new.kt new file mode 100644 index 00000000000..8668bb904ed --- /dev/null +++ b/j2k/testData/fileOrElement/varArg/ellipsisTypeSingleParams.new.kt @@ -0,0 +1 @@ +fun pushAll(vararg objs: Any?) {} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/whileStatement/whileWithBlock.java b/j2k/testData/fileOrElement/whileStatement/whileWithBlock.java index 2bdb159e3e8..8d1084d9c48 100644 --- a/j2k/testData/fileOrElement/whileStatement/whileWithBlock.java +++ b/j2k/testData/fileOrElement/whileStatement/whileWithBlock.java @@ -1,2 +1,4 @@ //statement +int a = 0 +int b = 0 while (a > b) {int i = 1; i = i + 1;} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/whileStatement/whileWithBlock.kt b/j2k/testData/fileOrElement/whileStatement/whileWithBlock.kt index 0c60cdd2577..dcd63bc06d1 100644 --- a/j2k/testData/fileOrElement/whileStatement/whileWithBlock.kt +++ b/j2k/testData/fileOrElement/whileStatement/whileWithBlock.kt @@ -1,3 +1,5 @@ +val a = 0 +val b = 0 while (a > b) { var i = 1 i = i + 1 diff --git a/j2k/testData/fileOrElement/whileStatement/whileWithExpression.java b/j2k/testData/fileOrElement/whileStatement/whileWithExpression.java index 3052dac6d16..2b689fee243 100644 --- a/j2k/testData/fileOrElement/whileStatement/whileWithExpression.java +++ b/j2k/testData/fileOrElement/whileStatement/whileWithExpression.java @@ -1,2 +1,3 @@ //statement +int i = 0; while (true) i = i + 1; \ No newline at end of file diff --git a/j2k/testData/fileOrElement/whileStatement/whileWithExpression.kt b/j2k/testData/fileOrElement/whileStatement/whileWithExpression.kt index 812da3eae13..37195a23035 100644 --- a/j2k/testData/fileOrElement/whileStatement/whileWithExpression.kt +++ b/j2k/testData/fileOrElement/whileStatement/whileWithExpression.kt @@ -1 +1,2 @@ +var i = 0 while (true) i = i + 1 \ No newline at end of file