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