fix #49 for anonymous unions (#50)

* fix #49 for anonymous unions

* fix formatting

* fix mypy and tests

* fix for structs

* fix formatting
This commit is contained in:
Tomaž Šuštar
2023-06-14 19:31:10 +02:00
committed by GitHub
parent 9bf99db87b
commit 3938d0ffef
3 changed files with 111 additions and 3 deletions

View File

@@ -1633,6 +1633,83 @@ def test_class_anon_struct_as_classvar() -> None:
)
def test_class_anon_struct_as_unnamed_classvar() -> None:
content = """
struct AnonHolderClass {
struct {
int x;
int y;
};
int z;
};
"""
data = parse_string(content, cleandoc=True)
assert data == ParsedData(
namespace=NamespaceScope(
classes=[
ClassScope(
class_decl=ClassDecl(
typename=PQName(
segments=[NameSpecifier(name="AnonHolderClass")],
classkey="struct",
)
),
classes=[
ClassScope(
class_decl=ClassDecl(
typename=PQName(
segments=[AnonymousName(id=1)], classkey="struct"
),
access="public",
),
fields=[
Field(
access="public",
type=Type(
typename=PQName(
segments=[FundamentalSpecifier(name="int")]
)
),
name="x",
),
Field(
access="public",
type=Type(
typename=PQName(
segments=[FundamentalSpecifier(name="int")]
)
),
name="y",
),
],
)
],
fields=[
Field(
access="public",
type=Type(
typename=PQName(
segments=[AnonymousName(id=1)], classkey="struct"
)
),
),
Field(
access="public",
type=Type(
typename=PQName(
segments=[FundamentalSpecifier(name="int")]
)
),
name="z",
),
],
)
]
)
)
def test_initializer_with_initializer_list_1() -> None:
content = """
struct ComplexInit : SomeBase {

View File

@@ -138,6 +138,14 @@ def test_union_anon_in_struct() -> None:
)
],
fields=[
Field(
access="public",
type=Type(
typename=PQName(
segments=[AnonymousName(id=1)], classkey="union"
)
),
),
Field(
access="public",
type=Type(
@@ -146,7 +154,7 @@ def test_union_anon_in_struct() -> None:
)
),
name="z",
)
),
],
)
]