// PR c++/37140 struct X { typedef int nested_type; }; template struct A { typedef X type; }; template struct B : A { using typename A::type; typename type::nested_type x; }; template struct C : B { using typename B::type; typename type::nested_type y; }; struct D : C { using C::type; type::nested_type z; };