Files
codeql/swift/codegen/templates/cpp_classes_cpp.mustache
Paolo Tranquilli 7175869518 Swift: add missing newlines in trap
This is mostly cosmetic and for debugging, as the trap importer is
perfectly happy with trap entries on the same line without spaces
between them.
2022-06-28 15:17:18 +02:00

38 lines
1.0 KiB
Plaintext

// generated by {{generator}} from {{source}}
// clang-format off
#include "./TrapClasses.h"
namespace codeql {
{{#classes}}
void {{name}}::emit({{^final}}TrapLabel<{{name}}Tag> id, {{/final}}std::ostream& out) const {
{{#trap_name}}
out << {{.}}Trap{id{{#single_fields}}, {{field_name}}{{/single_fields}}} << '\n';
{{/trap_name}}
{{#bases}}
{{ref.name}}::emit(id, out);
{{/bases}}
{{#fields}}
{{#is_predicate}}
if ({{field_name}}) out << {{trap_name}}Trap{id} << '\n';
{{/is_predicate}}
{{#is_optional}}
{{^is_repeated}}
if ({{field_name}}) out << {{trap_name}}Trap{id, *{{field_name}}} << '\n';
{{/is_repeated}}
{{/is_optional}}
{{#is_repeated}}
for (auto i = 0u; i < {{field_name}}.size(); ++i) {
{{^is_optional}}
out << {{trap_name}}Trap{id, i, {{field_name}}[i]} << '\n';
{{/is_optional}}
{{#is_optional}}
if ({{field_name}}[i]) out << {{trap_name}}Trap{id, i, *{{field_name}}[i]} << '\n';
{{/is_optional}}
}
{{/is_repeated}}
{{/fields}}
}
{{/classes}}
}