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
);
9 template<> template<class X
>
12 template<> template<> template<class T
>
13 void A
<int>::B
<double>::mf1(T t
) { }
15 template<> template<> template<class T
>
16 void A
<long>::B
<double>::mf1(T t
) { } // expected-error{{does not match}}
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}}