Skip to content

Commit 3f22184

Browse files
Vipul-Cariappaaaronj0
authored andcommitted
resolve static attributes of records
1 parent 33546ba commit 3f22184

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

lib/Interpreter/CppInterOp.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,6 +1155,9 @@ namespace Cpp {
11551155
stack_begin.back()++;
11561156
}
11571157

1158+
// static field member
1159+
GetClassDecls<VarDecl>(scope, datamembers);
1160+
11581161
return datamembers;
11591162
}
11601163

unittests/CppInterOp/VariableReflectionTest.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,15 @@ TEST(VariableReflectionTest, GetDatamembers) {
3232
auto datamembers = Cpp::GetDatamembers(Decls[0]);
3333
auto datamembers1 = Cpp::GetDatamembers(Decls[1]);
3434

35+
// non static field first
3536
EXPECT_EQ(Cpp::GetQualifiedName(datamembers[0]), "C::a");
3637
EXPECT_EQ(Cpp::GetQualifiedName(datamembers[1]), "C::c");
3738
EXPECT_EQ(Cpp::GetQualifiedName(datamembers[2]), "C::e");
38-
EXPECT_EQ(datamembers.size(), 3);
39+
// static fields
40+
EXPECT_EQ(Cpp::GetQualifiedName(datamembers[3]), "C::b");
41+
EXPECT_EQ(Cpp::GetQualifiedName(datamembers[4]), "C::d");
42+
EXPECT_EQ(Cpp::GetQualifiedName(datamembers[5]), "C::f");
43+
EXPECT_EQ(datamembers.size(), 6);
3944
EXPECT_EQ(datamembers1.size(), 0);
4045
}
4146

0 commit comments

Comments
 (0)