@@ -836,16 +836,40 @@ TEST(FunctionReflectionTest, GetFunctionArgDefault) {
836
836
std::string code = R"(
837
837
void f1(int i, double d = 4.0, const char *s = "default", char ch = 'c') {}
838
838
void f2(float i = 0.0, double d = 3.123, long m = 34126) {}
839
+
840
+ template<class A, class B>
841
+ long get_size(A, B, int i = 0) {}
842
+
843
+ template<class A = int, class B = char>
844
+ long get_size(int i, A a = A(), B b = B()) {}
845
+
846
+ template<class A>
847
+ void get_size(long k, A, char ch = 'a', double l = 0.0) {}
848
+
839
849
)" ;
840
850
841
851
GetAllTopLevelDecls (code, Decls);
852
+
842
853
EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[0 ], 0 ), " " );
843
854
EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[0 ], 1 ), " 4." );
844
855
EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[0 ], 2 ), " \" default\" " );
845
856
EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[0 ], 3 ), " \' c\' " );
846
857
EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[1 ], 0 ), " 0." );
847
858
EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[1 ], 1 ), " 3.123" );
848
859
EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[1 ], 2 ), " 34126" );
860
+
861
+ EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[2 ], 0 ), " " );
862
+ EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[2 ], 1 ), " " );
863
+ EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[2 ], 2 ), " 0" );
864
+
865
+ EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[3 ], 0 ), " " );
866
+ EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[3 ], 1 ), " A()" );
867
+ EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[3 ], 2 ), " B()" );
868
+
869
+ EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[4 ], 0 ), " " );
870
+ EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[4 ], 1 ), " " );
871
+ EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[4 ], 2 ), " \' a\' " );
872
+ EXPECT_EQ (Cpp::GetFunctionArgDefault (Decls[4 ], 3 ), " 0." );
849
873
}
850
874
851
875
TEST (FunctionReflectionTest, Construct) {
0 commit comments