Fixed handling of multiple dimension arrays in class fields (#278)
This commit is contained in:
@@ -53,8 +53,8 @@ TEST_CASE("t00006")
|
||||
REQUIRE(IsAssociation<Public>(src, "R", "G", "g"));
|
||||
REQUIRE(IsAggregation<Public>(src, "R", "H", "h"));
|
||||
REQUIRE(IsAssociation<Public>(src, "R", "I", "i"));
|
||||
REQUIRE(IsAggregation<Public>(src, "R", "J", "j"));
|
||||
REQUIRE(IsAssociation<Public>(src, "R", "K", "k"));
|
||||
REQUIRE(IsAggregation<Public>(src, "R", "J", "j", "", "10"));
|
||||
REQUIRE(IsAssociation<Public>(src, "R", "K", "k", "", "20"));
|
||||
REQUIRE(IsAggregation<Public>(src, "R", "L", "lm"));
|
||||
REQUIRE(IsAggregation<Public>(src, "R", "M", "lm"));
|
||||
REQUIRE(IsAggregation<Public>(src, "R", "N", "ns"));
|
||||
|
||||
@@ -3,6 +3,11 @@ namespace t00037 {
|
||||
|
||||
constexpr auto LENGTH{10ULL};
|
||||
|
||||
struct S {
|
||||
double x;
|
||||
double y;
|
||||
};
|
||||
|
||||
class ST {
|
||||
public:
|
||||
struct {
|
||||
@@ -22,6 +27,8 @@ private:
|
||||
double c{1.0};
|
||||
double h{1.0};
|
||||
} units;
|
||||
|
||||
S s[4][3][2];
|
||||
};
|
||||
|
||||
struct A {
|
||||
|
||||
@@ -35,6 +35,15 @@ TEST_CASE("t00037")
|
||||
REQUIRE(
|
||||
IsAggregation<Public>(src, "ST", "ST::(dimensions)", "dimensions"));
|
||||
REQUIRE(IsAggregation<Private>(src, "ST", "ST::(units)", "units"));
|
||||
REQUIRE(IsAggregation<Public>(src, "ST", "ST::(bars)", "bars"));
|
||||
REQUIRE(
|
||||
IsAggregation<Public>(src, "ST", "ST::(bars)", "bars", "", "10"));
|
||||
REQUIRE(IsAggregation<Private>(
|
||||
src, "ST", "S", "s", "", std::to_string(4 * 3 * 2)));
|
||||
|
||||
REQUIRE(IsField<Private>(src, "ST", "s", "S[4][3][2]"));
|
||||
|
||||
REQUIRE(IsField<Public>(src, "ST", "bars", "ST::(bars)[10]"));
|
||||
REQUIRE(IsField<Public>(src, "ST", "dimensions", "ST::(dimensions)"));
|
||||
REQUIRE(IsField<Private>(src, "ST", "units", "ST::(units)"));
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user