http://d.puremagic.com/issues/show_bug.cgi?id=1667
------- Comment #3 from [EMAIL PROTECTED] 2008-11-13 20:03 -------
(In reply to comment #2)
> Is this really a forward reference issue? There is no forward reference in
> the
> code. Moreover, under DMD 1.036 it generates a quite different set of errors:
>
> bz1667.d(8): template instance identifier 'Tuple' is not defined
> bz1667.d(11): template instance bz1667.Foo!(S) error instantiating
> bz1667.d(11): template instance identifier 'Tuple' is not defined
>
> It's true that the errors change if the pieces are swapped around - if the
> alias t is moved to the top
>
> bz1667.d(1): template instance forward reference to template declaration
> Foo(T)
> bz1667.d(1): template instance identifier 'Tuple' is not defined
>
> but that's not the problem being reported here.
My bad, I didn't include the definition of Tuple.
struct S
{
int x;
}
template Tuple(T...)
{
alias T Tuple;
}
template Foo(T)
{
alias Tuple!(T.init) Foo;
}
alias Tuple!(Foo!(S)) t;
That gives the reported error, even in 1.036.
--