1 // { dg-do compile }
2 
3 // Copyright (C) 2007 Free Software Foundation, Inc.
4 // Contributed by Nathan Sidwell 21 Jul 2007 <nathan@codesourcery.com>
5 
6 template <typename T> struct A
7 {
8   struct B;
9   typedef typename B::type type;
10 };
11 
12 template <typename T> struct A<T>::B
13 {
14   typedef typename A<T>::type type;
15 
16   type Foo ();
17 };
18 
19 template <typename T>
20 typename A<T>::B::type
21 A<T>::B::Foo ()
22 {
23   return 0;
24 }
25