annotate compile/t/tuple_27_A.d @ 1622:d402aa53926c

Add test for bug 3092 written by Manuel K?nig
author Leandro Lucarella <llucax@gmail.com>
date Tue, 19 Oct 2010 19:18:23 -0300
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1622
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
1 // $HeadURL$
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
2 // $Date$
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
3 // $Author$
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
4
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
5 // @author@ Manuel König <manuelk89@gmx.net>
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
6 // @date@ 2010-10-11
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
7 // @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=3092
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
8 // @desc@ [Issue 3092] Indexing a tuple produces a tuple containing the indexed element (only happens when indexing type items in a non-type-tuple)
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
9
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
10 module dstress.compile.t.tuple_27_A;
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
11
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
12 template TupleBug(values...)
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
13 {
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
14 alias values[0] v0;
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
15 alias values[0][0][0][0][0] chain;
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
16
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
17 /* for debugging this test case
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
18 pragma(msg, "values: ", values);
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
19 pragma(msg, "v0: ", v0);
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
20 pragma(msg, "values[0]: ", values[0]);
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
21 pragma(msg, "chain: ", chain);
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
22
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
23 eg. for TupleBug!(int, 1, char) this should print
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
24
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
25 values: tuple(int, 1, char)
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
26 v0: int
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
27 values[0]: int
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
28 chain: int[0][0][0][0]
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
29
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
30 When v0, values[0 and chain are printed correct, but values
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
31 looks like
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
32
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
33 values: tuple((int), 1, (char))
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
34
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
35 this is most likely only a formatting bug in expToCBuffer in expression.c.
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
36 */
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
37
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
38 static assert(is(v0 == int));
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
39 static assert(is(chain == int[0][0][0][0]));
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
40
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
41 v0 i;
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
42 chain c;
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
43
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
44 static assert(is(typeof(i) == int));
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
45 static assert(is(typeof(c) == int[0][0][0][0]));
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
46 }
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
47
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
48 alias TupleBug!(int) _0;
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
49 alias TupleBug!(int, "foo") _1;
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
50 alias TupleBug!(int, 1, char) _2;
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
51 alias TupleBug!(int, ulong, char[], void*) _3;
d402aa53926c Add test for bug 3092 written by Manuel K?nig
Leandro Lucarella <llucax@gmail.com>
parents:
diff changeset
52