mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-12 19:03:13 +01:00
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.
32 lines
594 B
D
32 lines
594 B
D
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);
|
|
}
|