Fixed KT-5315 J2K: Generate local var when parameter is being assigned

#KT-5315 Fixed
This commit is contained in:
Valentin Kipyatkov
2014-06-25 00:48:53 +04:00
parent 427280a365
commit 8512eac768
10 changed files with 120 additions and 28 deletions
@@ -2,6 +2,7 @@ class C(p: Int) {
private val p: Int
{
var p = p
this.p = p
System.out.println(p++)
System.out.println(p)
@@ -0,0 +1,28 @@
//file
class C {
private val field;
C(int arg1, int arg2, int arg3) {
arg1++;
System.out.print(arg1 + arg2);
field = arg3;
arg3++;
}
C(int arg1, int arg2) {
this(arg1, arg2, 0);
arg2++;
}
C(int arg1) {
this(arg1, 0, 0);
}
}
public class User {
public static void main() {
C c1 = new C(100, 100, 100);
C c2 = new C(100, 100);
C c3 = new C(100);
}
}
@@ -0,0 +1,37 @@
class C(arg1: Int, arg2: Int, arg3: Int) {
private val field: `val`
{
var arg1 = arg1
var arg3 = arg3
arg1++
System.out.print(arg1 + arg2)
field = arg3
arg3++
}
class object {
fun create(arg1: Int, arg2: Int): C {
var arg2 = arg2
val __ = C(arg1, arg2, 0)
arg2++
return __
}
fun create(arg1: Int): C {
val __ = C(arg1, 0, 0)
return __
}
}
}
public class User() {
class object {
public fun main() {
val c1 = C(100, 100, 100)
val c2 = C.create(100, 100)
val c3 = C.create(100)
}
}
}
@@ -0,0 +1,6 @@
//method
int foo(int p1, int p2, int p3) {
p1++;
if (p2 > 0) p3 = 0;
return p1 + p2 + p3;
}
@@ -0,0 +1,7 @@
fun foo(p1: Int, p2: Int, p3: Int): Int {
var p1 = p1
var p3 = p3
p1++
if (p2 > 0) p3 = 0
return p1 + p2 + p3
}
@@ -2,6 +2,7 @@ package demo
class Test() {
fun test(vararg args: Any) {
var args = args
args = array<Int>(1, 2, 3)
}
}
@@ -1,9 +0,0 @@
//file
package demo;
class Test {
int test(int i) {
i = 10;
return i + 20;
}
}
@@ -1,8 +0,0 @@
package demo
class Test() {
fun test(i: Int): Int {
i = 10
return i + 20
}
}