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
6template <typename T> struct A
7{
8  struct B;
9  typedef typename B::type type;
10};
11
12template <typename T> struct A<T>::B
13{
14  typedef typename A<T>::type type;
15
16  type Foo ();
17};
18
19template <typename T>
20typename A<T>::B::type
21A<T>::B::Foo ()
22{
23  return 0;
24}
25