@@ -818,6 +818,15 @@ TEST(FunctionReflectionTest, GetFunctionArgName) {
818818 std::string code = R"(
819819 void f1(int i, double d, long l, char ch) {}
820820 void f2(const int i, double d[], long *l, char ch[4]) {}
821+
822+ template<class A, class B>
823+ long get_size(A, B, int i = 0) {}
824+
825+ template<class A = int, class B = char>
826+ long get_size(int i, A a = A(), B b = B()) {}
827+
828+ template<class A>
829+ void get_size(long k, A, char ch = 'a', double l = 0.0) {}
821830 )" ;
822831
823832 GetAllTopLevelDecls (code, Decls);
@@ -829,6 +838,19 @@ TEST(FunctionReflectionTest, GetFunctionArgName) {
829838 EXPECT_EQ (Cpp::GetFunctionArgName (Decls[1 ], 1 ), " d" );
830839 EXPECT_EQ (Cpp::GetFunctionArgName (Decls[1 ], 2 ), " l" );
831840 EXPECT_EQ (Cpp::GetFunctionArgName (Decls[1 ], 3 ), " ch" );
841+
842+ EXPECT_EQ (Cpp::GetFunctionArgName (Decls[2 ], 0 ), " " );
843+ EXPECT_EQ (Cpp::GetFunctionArgName (Decls[2 ], 1 ), " " );
844+ EXPECT_EQ (Cpp::GetFunctionArgName (Decls[2 ], 2 ), " i" );
845+
846+ EXPECT_EQ (Cpp::GetFunctionArgName (Decls[3 ], 0 ), " i" );
847+ EXPECT_EQ (Cpp::GetFunctionArgName (Decls[3 ], 1 ), " a" );
848+ EXPECT_EQ (Cpp::GetFunctionArgName (Decls[3 ], 2 ), " b" );
849+
850+ EXPECT_EQ (Cpp::GetFunctionArgName (Decls[4 ], 0 ), " k" );
851+ EXPECT_EQ (Cpp::GetFunctionArgName (Decls[4 ], 1 ), " " );
852+ EXPECT_EQ (Cpp::GetFunctionArgName (Decls[4 ], 2 ), " ch" );
853+ EXPECT_EQ (Cpp::GetFunctionArgName (Decls[4 ], 3 ), " l" );
832854}
833855
834856TEST (FunctionReflectionTest, GetFunctionArgDefault) {
0 commit comments