1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 template<class T1> class A { 3 template<class T2> class B { 4 template<class T3> void mf1(T3); 5 void mf2(); 6 }; 7 }; 8 9 template<> template<class X> 10 class A<long>::B { }; 11 12 template<> template<> template<class T> 13 void A<int>::B<double>::mf1(T t) { } 14 15 template<> template<> template<class T> 16 void A<long>::B<double>::mf1(T t) { } // expected-error{{does not match}} 17 18 // FIXME: This diagnostic could probably be better. 19 template<class Y> template<> 20 void A<Y>::B<double>::mf2() { } // expected-error{{does not refer}} 21