1*99451b44SJordan Rupprecht struct OuterX {
2*99451b44SJordan Rupprecht   template<typename T>
3*99451b44SJordan Rupprecht   struct Inner {
4*99451b44SJordan Rupprecht     int oX_inner = 42;
5*99451b44SJordan Rupprecht   };
6*99451b44SJordan Rupprecht };
7*99451b44SJordan Rupprecht 
8*99451b44SJordan Rupprecht struct OuterY {
9*99451b44SJordan Rupprecht   template<typename T>
10*99451b44SJordan Rupprecht   struct Inner {
11*99451b44SJordan Rupprecht     typename OuterX::Inner<T> oY_inner;
12*99451b44SJordan Rupprecht   };
13*99451b44SJordan Rupprecht };
14*99451b44SJordan Rupprecht 
15*99451b44SJordan Rupprecht struct WrapperB;
16*99451b44SJordan Rupprecht 
17*99451b44SJordan Rupprecht WrapperB* foo();
18