D-Programming-Language/dmd — pull request #1539 by 9rnsr (2013-01-23 03:52:33+00:00)
Title: Issue 6538 - ICE(mangle.c) Invalid template constraints

http://d.puremagic.com/issues/show_bug.cgi?id=6538

From the comment:
> In template constraint, each function parameters, 'this', and 'super' is *pseudo* symbol. If it is passed to other template through alias/tuple parameter, it will cause an error. Because such symbol does not have the actual entity yet.
```d
Example:
template Sym(alias A) { enum Sym = true; }
struct S {
void foo() if (Sym!(this)) {} // Sym!(this) always make an error,
} // because Sym template cannot
void main() { S s; s.foo(); } // access to the valid 'this' symbol.
```

---
Requires: https://github.com/D-Programming-Language/dmd/pull/1538