annotate run/b/bug_declaration_440_B.d @ 1630:d0efa3ae5522 default tip

run/mini/naked_asm5: New x86_64 ABI passes the arguments in reverse order.
author David Nadlinger <code@klickverbot.at>
date Sat, 23 Apr 2011 22:57:32 +0200
parents 20d8ee6523e1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1137
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
1 // $HeadURL$
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
2 // $Date$
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
3 // $Author$
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
4
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
5 // @author@ simon hudon <simon_member@pathlink.com>
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
6 // @date@ 2006-07-17
1489
b8c0195059d9 changed nntp: URLs to http: URLs
thomask
parents: 1137
diff changeset
7 // @uri@ http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D.bugs&artnum=7907
1137
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
8 // @desc@ foreach on aggregate class in some delegate litterals
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
9
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
10 module dstress.run.b.bug_declaration_440_B;
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
11
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
12 int[] status;
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
13
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
14 class Container {
1535
20d8ee6523e1 updated to DMD-1.013
thomask
parents: 1489
diff changeset
15 int opApply (int delegate (ref int) dg) {
1137
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
16 int counter = 3;
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
17 dg(counter);
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
18 counter--;
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
19 dg(counter);
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
20 return 0;
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
21 }
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
22 }
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
23
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
24 int main() {
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
25 auto a = (
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
26 delegate{
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
27 foreach (i ; new Container()){
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
28 status ~= i;
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
29 }
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
30 }
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
31 );
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
32
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
33 if(status.length != 0){
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
34 assert(0);
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
35 }
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
36
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
37 a();
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
38
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
39 if(status.length != 2){
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
40 assert(0);
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
41 }
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
42 if((status[0] != 3) || (status[1] != 2)){
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
43 assert(0);
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
44 }
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
45
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
46 return 0;
679105b449a6 foreach on aggregate class in some delegate litterals
thomask
parents:
diff changeset
47 }