Test case:
------------------------
template J(A) {
static if (is(A P == super))
alias P J;
}
alias J!(A) Z;
class X {}
class A : X {}
------------------------
y.d(6): Error: forward reference to '(in X)'
------------------------
The template J is basically std.traits.BaseTypeTuple. Because of this bug, any use of BaseTypeTuple!A before A is defined (not just X) will result in a forward-reference bug.