------- 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
> 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
> 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.
alias T Tuple;
alias Tuple!(T.init) Foo;
alias Tuple!(Foo!(S)) t;
That gives the reported error, even in 1.036.