Merge branch 'main' into redsun82/swift-type-repr-collapse

This commit is contained in:
Paolo Tranquilli
2022-07-18 14:05:43 +02:00
237 changed files with 8131 additions and 2703 deletions

View File

@@ -65,7 +65,7 @@ class Processor:
return cpp.Class(
name=name,
bases=[self._get_class(b) for b in cls.bases],
fields=[_get_field(cls, p) for p in cls.properties],
fields=[_get_field(cls, p) for p in cls.properties if "cpp_skip" not in p.pragmas],
final=not cls.derived,
trap_name=trap_name,
)

View File

@@ -12,14 +12,18 @@ _directories:
stmt: Stmt$
Element:
is_unknown: predicate
is_unknown:
type: predicate
_pragma: cpp_skip # this is emitted using trap entries directly
_pragma: qltest_skip
File:
name: string
Locatable:
location: Location?
location:
type: Location?
_pragma: cpp_skip # this is emitted using trap entries directly
_pragma: qltest_skip
Location:
@@ -270,6 +274,16 @@ EnumCaseDecl:
IfConfigDecl:
_extends: Decl
_children:
clauses: IfConfigClause*
IfConfigClause:
_extends: Locatable
_children:
condition: Expr?
elements: AstNode*
is_active: predicate
_dir: decl
ImportDecl:
_extends: Decl
@@ -319,6 +333,7 @@ AppliedPropertyWrapperExpr:
_extends: Expr
Argument:
_extends: Locatable
label: string
_children:
expr: Expr
@@ -544,7 +559,6 @@ TypeExpr:
UnresolvedDeclRefExpr:
_extends: Expr
name: string?
_pragma: qltest_skip # we should really never extract these
UnresolvedDotExpr:
_extends: Expr
@@ -559,7 +573,8 @@ UnresolvedMemberExpr:
UnresolvedPatternExpr:
_extends: Expr
_pragma: qltest_skip # we should really never extract these
_children:
sub_pattern: Pattern
UnresolvedSpecializeExpr:
_extends: Expr

View File

@@ -165,5 +165,18 @@ def test_classes_with_dirs(generate_grouped):
}
def test_cpp_skip_pragma(generate):
assert generate([
schema.Class(name="A", properties=[
schema.SingleProperty("x", "foo"),
schema.SingleProperty("y", "bar", pragmas=["x", "cpp_skip", "y"]),
])
]) == [
cpp.Class(name="A", final=True, trap_name="As", fields=[
cpp.Field("x", "foo"),
]),
]
if __name__ == '__main__':
sys.exit(pytest.main([__file__] + sys.argv[1:]))