diff tests/mini/nested17.d @ 486:a34078905d01

Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in. Reimplemented support for nested functions/class using a new approach. Added error on taking address of intrinsic. Fixed problems with the ->syntaxCopy of TypeFunction delegate exp. Removed DtoDType and replaced all uses with ->toBasetype() instead. Removed unused inplace stuff. Fixed a bunch of issues in the runtime unittests, not complete yet. Added mini tests.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Sun, 10 Aug 2008 08:37:38 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested17.d	Sun Aug 10 08:37:38 2008 +0200
@@ -0,0 +1,45 @@
+// $HeadURL: svn://svn.berlios.de/dstress/trunk/run/n/nested_class_03_A.d $
+// $Date: 2005-06-18 09:15:32 +0200 (Sat, 18 Jun 2005) $
+// $Author: thomask $
+
+// @author@ John C <johnch_atms@hotmail.com>
+// @date@   2005-06-09
+// @uri@    news:d88vta$vak$1@digitaldaemon.com
+
+//module dstress.run.n.nested_class_03_A;
+module mini.nested17;
+
+interface Inner{
+    int value();        
+}
+
+class Outer{
+    int x;
+
+    Inner test(){
+        printf("val = %d\n", x);
+        return new class Inner {
+            int y;
+
+            this(){
+                printf("val = %d\n", x);
+                y=x;
+            }
+
+            int value(){
+                return y;
+            }
+        };
+    }
+}
+
+int main(){
+    Outer o = new Outer();
+    o.x=2;  
+    int val = o.test().value();
+    printf("val = %d\n", val);
+    assert(val == o.x);
+    return 0;
+}
+
+extern(C) int printf(char*, ...);