struct A(T)
{
    T t; // causes A to be SIZEOKfwd b/c B (passed as T) isn't yet done
     // On the 2nd semantic pass through A, _scope of C got set again,
     // even though the struct was already done.
    struct C
    {
    }
}
struct B
{
    A!B* a; // causes instantiation of A!B, but can finish semantic with A!B still being fwdref
}