aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-10-08 01:29:37 +0200
committerEugen Wissner <belka@caraus.de>2026-10-08 01:29:37 +0200
commitd4b7f5e52a33f2d15aafca7f1b040f3f2821fd0c (patch)
treec4d2f2ea44bbcb26108e86270a4454cd04f7873a /include
parent12e304fd56f054ba7296ab538eecd4280a67832a (diff)
downloadelna-d4b7f5e52a33f2d15aafca7f1b040f3f2821fd0c.tar.gz
Move record constructor type into the braces
Diffstat (limited to 'include')
-rw-r--r--include/elna/boot/ast.h16
1 files changed, 5 insertions, 11 deletions
diff --git a/include/elna/boot/ast.h b/include/elna/boot/ast.h
index c3b43bb..35cfc8d 100644
--- a/include/elna/boot/ast.h
+++ b/include/elna/boot/ast.h
@@ -559,24 +559,18 @@ namespace elna::boot
class record_constructor_expression : public expression
{
+ type_expression *m_record_type;
+
public:
- const identifier type_name;
const std::vector<field_initializer> field_initializers;
- /**
- * Type arguments naming the instantiation being constructed. Empty
- * when no argument list was written.
- */
- const std::vector<type_expression *> arguments;
record_constructor_expression(const source_position position,
- identifier&& type_name,
- std::vector<field_initializer>&& field_initializers);
- record_constructor_expression(const source_position position,
- identifier&& type_name, std::vector<type_expression *>&& arguments,
- std::vector<field_initializer>&& field_initializers);
+ type_expression *record_type, std::vector<field_initializer>&& field_initializers);
~record_constructor_expression() override;
void accept(parser_visitor *visitor) override;
record_constructor_expression *is_record_constructor() override;
+
+ type_expression& record_type();
};
class array_constructor_expression : public expression