supported two cases for constructor calling

This commit is contained in:
Sergey Ignatov
2011-11-09 15:07:02 +04:00
parent 54265da366
commit 1bc527cd92
14 changed files with 299 additions and 30 deletions
@@ -0,0 +1,20 @@
class C {
C(int arg1, int arg2, int arg3) {
}
C(int arg1, int arg2) {
this(arg1, arg2, 0);
}
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,23 @@
open class C(arg1 : Int, arg2 : Int, arg3 : Int) {
{
}
class object {
open fun init(arg1 : Int, arg2 : Int) : C {
val __ = C(arg1, arg2, 0)
return __
}
open fun init(arg1 : Int) : C {
val __ = C(arg1, 0, 0)
return __
}
}
}
public open class User() {
class object {
open public fun main() : Unit {
var c1 : C? = C(100, 100, 100)
var c2 : C? = C.init(100, 100)
var c3 : C? = C.init(100)
}
}
}
@@ -0,0 +1,31 @@
class C {
final int myArg1;
int myArg2;
int myArg3;
C(int arg1, int arg2, int arg3) {
this(arg1);
myArg2 = arg2;
myArg3 = arg3;
}
C(int arg1, int arg2) {
this(arg1);
myArg2 = arg2;
myArg3 = 0;
}
C(int arg1) {
myArg1 = arg1;
myArg2 = 0;
myArg3 = 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,33 @@
open class C(arg1 : Int) {
val myArg1 : Int
var myArg2 : Int
var myArg3 : Int
{
$myArg1 = arg1
$myArg2 = 0
$myArg3 = 0
}
class object {
open fun init(arg1 : Int, arg2 : Int, arg3 : Int) : C {
val __ = C(arg1)
__.myArg2 = arg2
__.myArg3 = arg3
return __
}
open fun init(arg1 : Int, arg2 : Int) : C {
val __ = C(arg1)
__.myArg2 = arg2
__.myArg3 = 0
return __
}
}
}
public open class User() {
class object {
open public fun main() : Unit {
var c1 : C? = C.init(100, 100, 100)
var c2 : C? = C.init(100, 100)
var c3 : C? = C(100)
}
}
}
@@ -6,7 +6,7 @@ YELLOW(24)
BLUE(25)
private var code : Int
open private (c : Int) {
code = c
$code = c
}
open public fun getCode() : Int {
return code