aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gdc.test/fail_compilation/test16188.d
blob: 87c55ea4b2f0b6fc3b9155791100c5648c5bf261 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
TEST_OUTPUT:
---
fail_compilation/test16188.d(1): Error: no identifier for declarator `TEST_OUTPUT`
fail_compilation/test16188.d(1): Error: declaration expected, not `:`
fail_compilation/test16188.d(18): Error: unmatched closing brace
---
 */

// https://issues.dlang.org/show_bug.cgi?id=16188

/* This produces the message:
 *   Error: no property 'name' for type 'Where'
 * when the actual error is 'getMember is undefined'.
 * This happens because errors are gagged when opDispatch() is compiled,
 * I don't understand why.
 */

void where() { Where().name; }

struct Where
{
    void opDispatch(string name)()
    {
        alias FieldType = typeof(getMember);
        WhereField!FieldType;
    }
}

struct WhereField(FieldType) {}