Mercurial > projects > ldc
comparison 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 |
comparison
equal
deleted
inserted
replaced
485:50f6e2337a6b | 486:a34078905d01 |
---|---|
1 module mini.nested16; | |
2 | |
3 void main() | |
4 { | |
5 int idx = 123; | |
6 int func(int* idp) | |
7 { | |
8 void foo() | |
9 { | |
10 void bar(int* idp) | |
11 { | |
12 auto c = new class | |
13 { | |
14 void mem() | |
15 { | |
16 scope(exit) ++*idp; | |
17 } | |
18 }; | |
19 auto dg = () { | |
20 c.mem(); | |
21 }; | |
22 dg(); | |
23 } | |
24 bar(idp); | |
25 ++*idp; | |
26 } | |
27 foo(); | |
28 return ++*idp; | |
29 } | |
30 assert(func(&idx) == 126); | |
31 } |