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
|