[Nice-commit] Nice/testsuite/compiler/classes/constructors custom.testsuite,1.2,1.3
Brought to you by:
bonniot
From: <bo...@us...> - 2003-12-14 16:52:35
|
Update of /cvsroot/nice/Nice/testsuite/compiler/classes/constructors In directory sc8-pr-cvs1:/tmp/cvs-serv3719/testsuite/compiler/classes/constructors Modified Files: custom.testsuite Log Message: Resolve, typecheck and generate code for custom constructors. Index: custom.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/classes/constructors/custom.testsuite,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** custom.testsuite 13 Dec 2003 14:54:08 -0000 1.2 --- custom.testsuite 14 Dec 2003 16:52:32 -0000 1.3 *************** *** 2,12 **** class Point { double x; double y; } ! /// PASS bug /// Toplevel /* Use the custom constructor before its declaration. */ ! let Point origin = new Point(angle: 0, distance: 0); new Point(double angle, double distance) { this(x: distance * cos(angle), y: distance * sin(angle)); } /// PASS bug --- 2,34 ---- class Point { double x; double y; } ! /// PASS ! assert abs(p.x - 1) < 0.01 && abs(p.y) < 0.01; ! /// Toplevel /* Use the custom constructor before its declaration. */ ! let Point p = new Point(angle: 0, distance: 1); ! ! new Point(double angle, double distance) ! { this(x: distance * cos(angle), y: distance * sin(angle)); } ! ! /// PASS ! /// Toplevel ! /* Use the custom constructor before the declaration of the class. */ ! let Point2 origin = new Point2(angle: 0, distance: 0); + class Point2 { double x; double y; } + new Point2(double angle, double distance) + { this(x: distance * cos(angle), y: distance * sin(angle)); } + + /// PASS bug + /// Toplevel new Point(double angle, double distance) { this(x: distance * cos(angle), y: distance * sin(angle)); } + + new Point((double angle, double distance) polarCoordinates) + { + // Forward to another custom constructor. + this(angle: angle, distance: distance); + } /// PASS bug |