Mercurial > projects > ldc
annotate tangotests/nested2.d @ 291:068cb3c60afb trunk
[svn r312] Changed assert codegen to insert an unreachable terminator after the call to the assert function, which currently calls abort().
Changed array comparison runtime support to pass the array typeinfo instead of the element typeinfo. This allows a cleaner and faster implementation.
author | lindquist |
---|---|
date | Sat, 21 Jun 2008 21:16:26 +0200 |
parents | 88252a1af660 |
children |
rev | line source |
---|---|
259
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
1 module tangotests.nested2; |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
2 |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
3 extern(C) int printf(char*, ...); |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
4 |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
5 void main() |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
6 { |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
7 int var = 2; |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
8 |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
9 void exec(void delegate() dg) |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
10 { |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
11 printf("var = %d\n", var); |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
12 dg(); |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
13 } |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
14 |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
15 void foo() |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
16 { |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
17 printf("var = %d\n", var); |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
18 assert(var == 5); |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
19 } |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
20 |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
21 void bar() |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
22 { |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
23 printf("var = %d\n", var); |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
24 var += 3; |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
25 exec(&foo); |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
26 } |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
27 |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
28 printf("var = %d\n", var); |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
29 exec(&bar); |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
30 |
2e652b8ad1fd
[svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were
lindquist
parents:
diff
changeset
|
31 return 0; |
262
88252a1af660
[svn r280] Fixed a bunch of issues with switch statements. Ended up a bit far reaching...
lindquist
parents:
259
diff
changeset
|
32 } |