// RUN: %clang_cc1 -fsyntax-only -verify %s // PR3990 namespace N { struct Wibble { }; typedef Wibble foo; } using namespace N; foo::bar x; // expected-error{{no type named 'bar' in 'N::Wibble'}} void f() { foo::bar = 4; // expected-error{{no member named 'bar' in 'N::Wibble'}} } template struct A { typedef T type; type f(); }; template A::type g(T t) { return t; } // expected-error{{missing 'typename'}} template A::type A::f() { return type(); } // expected-error{{missing 'typename'}}