refactor(furc): mark AST nodes as final

This commit is contained in:
2026-06-01 17:44:40 +02:00
parent 6ffe1cefbe
commit b6e5f1f5cc
5 changed files with 11 additions and 11 deletions
+1 -1
View File
@@ -42,7 +42,7 @@ protected:
front::token m_name;
};
class function_definition_node : public function_declaration_node {
class function_definition_node final : public function_declaration_node {
public:
function_definition_node(front::token name, body_h&& body)
: function_declaration_node(name), m_body(std::move(body)) {}
+4 -4
View File
@@ -27,7 +27,7 @@ protected:
bool equal(const node& rhs) const override;
};
class var_read_expression_node : public expression_node {
class var_read_expression_node final : public expression_node {
public:
var_read_expression_node(handle<std::string_view>&& name)
: m_name(std::move(name)) {}
@@ -55,7 +55,7 @@ enum class unaryop_expression_node_t {
PostfixDecrement,
};
class unaryop_expression_node : public expression_node {
class unaryop_expression_node final : public expression_node {
public:
unaryop_expression_node(unaryop_expression_node_t type, expression_node_h&& node)
: m_type(type), m_node(std::move(node)) {}
@@ -95,7 +95,7 @@ enum class binop_expression_node_t {
GreaterEqual,
};
class binop_expression_node : public expression_node {
class binop_expression_node final : public expression_node {
public:
binop_expression_node(binop_expression_node_t type, expression_node_h&& lhs, expression_node_h&& rhs)
: m_type(type), m_lhs(std::move(lhs)), m_rhs(std::move(rhs)) {}
@@ -121,7 +121,7 @@ private:
expression_node_h m_rhs;
};
class var_assign_expression_node : public expression_node {
class var_assign_expression_node final : public expression_node {
public:
var_assign_expression_node(expression_node_h&& lhs, expression_node_h&& rhs)
: m_compound(binop_expression_node_t::None), m_lhs(std::move(lhs)), m_rhs(std::move(rhs)) {}
+2 -2
View File
@@ -24,7 +24,7 @@ protected:
bool equal(const node& rhs) const override;
};
class string_literal_node : public literal_node {
class string_literal_node final : public literal_node {
public:
string_literal_node(handle<std::string_view>&& value)
: m_value(std::move(value)) {}
@@ -42,7 +42,7 @@ private:
handle<std::string_view> m_value;
};
class integer_literal_node : public literal_node {
class integer_literal_node final : public literal_node {
public:
integer_literal_node(handle<front::integer_token>&& value)
: m_value(std::move(value)) {}
+1 -1
View File
@@ -9,7 +9,7 @@
namespace furc {
namespace ast {
class program_node : public node {
class program_node final : public node {
public:
program_node() = default;
+3 -3
View File
@@ -23,7 +23,7 @@ protected:
bool equal(const node& rhs) const override;
};
class return_statement_node : public statement_node {
class return_statement_node final : public statement_node {
public:
return_statement_node() = default;
@@ -43,7 +43,7 @@ private:
expression_node_h m_value;
};
class if_statement_node : public statement_node {
class if_statement_node final : public statement_node {
public:
if_statement_node(expression_node_h&& cond, statement_node_h&& then)
: m_cond(std::move(cond)), m_then(std::move(then)) {}
@@ -68,7 +68,7 @@ private:
statement_node_h m_else;
};
class compound_statement_node : public statement_node {
class compound_statement_node final : public statement_node {
public:
compound_statement_node(body_h&& body)
: m_body(std::move(body)) {}