xref: /llvm-project/clang/test/SemaTemplate/default-arguments-ast-print.cpp (revision 7c1d9b15eee3a34678addab2bab66f3020ac0753)
1*7c1d9b15SFangrui Song // RUN: %clang_cc1 -ast-print %s | FileCheck %s
299d63ccfSPratyush Das 
399d63ccfSPratyush Das template <typename T, typename U = double> class Foo;
499d63ccfSPratyush Das 
599d63ccfSPratyush Das template <> class Foo<int, double> { int method1(); };
699d63ccfSPratyush Das 
799d63ccfSPratyush Das using int_type = int;
899d63ccfSPratyush Das 
method1()999d63ccfSPratyush Das int Foo<int_type, double>::method1() {
1099d63ccfSPratyush Das   // CHECK: int Foo<int_type, double>::method1()
1199d63ccfSPratyush Das   return 10;
1299d63ccfSPratyush Das }
13c33ebad7SPratyush Das 
test_typedef()14c33ebad7SPratyush Das int test_typedef() {
15c33ebad7SPratyush Das   typedef Foo<int, double> TypedefArg;
16c33ebad7SPratyush Das   // CHECK: typedef Foo<int, double> TypedefArg;
17c33ebad7SPratyush Das   return 10;
18c33ebad7SPratyush Das }
19c33ebad7SPratyush Das 
test_typedef2()20c33ebad7SPratyush Das int test_typedef2() {
21c33ebad7SPratyush Das   typedef Foo<int> TypedefArg;
22c33ebad7SPratyush Das   // CHECK: typedef Foo<int> TypedefArg;
23c33ebad7SPratyush Das   return 10;
24c33ebad7SPratyush Das }
25