@@ -161,6 +161,15 @@ TEST(FunctionReflectionTest, HasDefaultConstructor) {
161161 EXPECT_TRUE (Cpp::HasDefaultConstructor (Decls[0 ]));
162162 EXPECT_TRUE (Cpp::HasDefaultConstructor (Decls[1 ]));
163163 EXPECT_FALSE (Cpp::HasDefaultConstructor (Decls[3 ]));
164+
165+ // C API
166+ auto I = clang_createInterpreterFromRawPtr (Cpp::GetInterpreter ());
167+ EXPECT_TRUE (clang_hasDefaultConstructor (make_scope (Decls[0 ], I)));
168+ EXPECT_TRUE (clang_hasDefaultConstructor (make_scope (Decls[1 ], I)));
169+ EXPECT_FALSE (clang_hasDefaultConstructor (make_scope (Decls[3 ], I)));
170+ // Clean up resources
171+ clang_Interpreter_takeInterpreterAsPtr (I);
172+ clang_Interpreter_dispose (I);
164173}
165174
166175TEST (FunctionReflectionTest, GetDestructor) {
@@ -189,6 +198,14 @@ TEST(FunctionReflectionTest, GetDestructor) {
189198 EXPECT_TRUE (DeletedDtor);
190199 EXPECT_TRUE (Cpp::IsFunctionDeleted (DeletedDtor));
191200 EXPECT_FALSE (Cpp::GetDestructor (Decls[3 ]));
201+
202+ // C API
203+ auto I = clang_createInterpreterFromRawPtr (Cpp::GetInterpreter ());
204+ EXPECT_TRUE (clang_getDestructor (make_scope (Decls[0 ], I)).data [0 ]);
205+ EXPECT_TRUE (clang_getDestructor (make_scope (Decls[1 ], I)).data [0 ]);
206+ // Clean up resources
207+ clang_Interpreter_takeInterpreterAsPtr (I);
208+ clang_Interpreter_dispose (I);
192209}
193210
194211TEST (FunctionReflectionTest, GetFunctionsUsingName) {
@@ -509,6 +526,17 @@ TEST(FunctionReflectionTest, IsTemplatedFunction) {
509526 EXPECT_FALSE (Cpp::IsTemplatedFunction (Decls[3 ]));
510527 EXPECT_FALSE (Cpp::IsTemplatedFunction (SubDeclsC1[1 ]));
511528 EXPECT_TRUE (Cpp::IsTemplatedFunction (SubDeclsC1[2 ]));
529+
530+ // C API
531+ auto I = clang_createInterpreterFromRawPtr (Cpp::GetInterpreter ());
532+ EXPECT_FALSE (clang_isTemplatedFunction (make_scope (Decls[0 ], I)));
533+ EXPECT_TRUE (clang_isTemplatedFunction (make_scope (Decls[1 ], I)));
534+ EXPECT_FALSE (clang_isTemplatedFunction (make_scope (Decls[3 ], I)));
535+ EXPECT_FALSE (clang_isTemplatedFunction (make_scope (SubDeclsC1[1 ], I)));
536+ EXPECT_TRUE (clang_isTemplatedFunction (make_scope (SubDeclsC1[2 ], I)));
537+ // Clean up resources
538+ clang_Interpreter_takeInterpreterAsPtr (I);
539+ clang_Interpreter_dispose (I);
512540}
513541
514542TEST (FunctionReflectionTest, ExistsFunctionTemplate) {
@@ -529,6 +557,14 @@ TEST(FunctionReflectionTest, ExistsFunctionTemplate) {
529557 EXPECT_TRUE (Cpp::ExistsFunctionTemplate (" f" , 0 ));
530558 EXPECT_TRUE (Cpp::ExistsFunctionTemplate (" f" , Decls[1 ]));
531559 EXPECT_FALSE (Cpp::ExistsFunctionTemplate (" f" , Decls[2 ]));
560+
561+ // C API
562+ auto I = clang_createInterpreterFromRawPtr (Cpp::GetInterpreter ());
563+ EXPECT_TRUE (clang_existsFunctionTemplate (" f" , make_scope (Decls[1 ], I)));
564+ EXPECT_FALSE (clang_existsFunctionTemplate (" f" , make_scope (Decls[2 ], I)));
565+ // Clean up resources
566+ clang_Interpreter_takeInterpreterAsPtr (I);
567+ clang_Interpreter_dispose (I);
532568}
533569
534570TEST (FunctionReflectionTest, InstantiateTemplateFunctionFromString) {
0 commit comments