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.
This commit is contained in:
Tomas Lindquist Olsen
2008-08-10 08:37:38 +02:00
parent b2d860374b
commit 9d7f16b967
39 changed files with 693 additions and 455 deletions

31
tests/mini/nested16.d Normal file
View File

@@ -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);
}