diff tests/mini/nested16.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/nested16.d	Sun Aug 10 08:37:38 2008 +0200
@@ -0,0 +1,31 @@
+module mini.nested16;
+
+void main()
+{
+    int idx = 123;
+    int func(int* idp)
+    {
+        void foo()
+        {
+            void bar(int* idp)
+            {
+                auto c = new class
+                {
+                    void mem()
+                    {
+                        scope(exit) ++*idp;
+                    }
+                };
+                auto dg = () {
+                    c.mem();
+                };
+                dg();
+            }
+            bar(idp);
+            ++*idp;
+        }
+        foo();
+        return ++*idp;
+    }
+    assert(func(&idx) == 126);
+}