1 // PR c++/70635 2 // { dg-options "-fpermissive -w" } 3 4 template < typename T > 5 struct A 6 { 7 struct B; 8 typedef typename B::type type; 9 }; 10 11 template < typename T > 12 struct A < T >::B 13 { 14 typedef typename A < type >::type type; // { dg-error "type" } 15 type Foo (); 16 }; 17 18 template < typename T > 19 typename A < T >::B::type 20 A < T >::B::Foo () 21 { 22 return 0; 23 } 24 25 template class A<int>; 26