Mercurial > projects > ldc
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*, ...);