1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2
3 // PR3990
4 namespace N {
5 struct Wibble {
6 };
7
8 typedef Wibble foo;
9 }
10 using namespace N;
11
12 foo::bar x; // expected-error{{no type named 'bar' in 'N::Wibble'}}
13
f()14 void f() {
15 foo::bar = 4; // expected-error{{no member named 'bar' in 'N::Wibble'}}
16 }
17
18 template<typename T>
19 struct A {
20 typedef T type;
21
22 type f();
23 };
24
25 template<typename T>
g(T t)26 A<T>::type g(T t) { return t; } // expected-error{{missing 'typename'}}
27
28 template<typename T>
f()29 A<T>::type A<T>::f() { return type(); } // expected-error{{missing 'typename'}}
30