A(T)1 struct A(T)
2 {
3     T t; // causes A to be SIZEOKfwd b/c B (passed as T) isn't yet done
4 
5      // On the 2nd semantic pass through A, _scope of C got set again,
6      // even though the struct was already done.
7     struct C
8     {
9     }
10 }
11 
12 struct B
13 {
14     A!B* a; // causes instantiation of A!B, but can finish semantic with A!B still being fwdref
15 }
16