1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 05:08:13 +00:00

AK: Propagate errors from SourceGenerator::fork()

This commit is contained in:
Sam Atkins 2023-06-17 13:12:36 +01:00 committed by Sam Atkins
parent 540cc42618
commit 8e53e5afc4
12 changed files with 136 additions and 129 deletions

View file

@ -261,7 +261,7 @@ void generate_lookup_table(StateMachine const& machine, SourceGenerator& generat
)~~~");
auto generate_for_state = [&](State const& s) {
auto table_generator = generator.fork();
auto table_generator = generator.fork().release_value_but_fixme_should_propagate_errors();
table_generator.set("active_state", s.name);
table_generator.append("/* @active_state@ */ { ");
VERIFY(!s.name.is_empty());
@ -274,7 +274,7 @@ void generate_lookup_table(StateMachine const& machine, SourceGenerator& generat
}
}
for (int i = 0; i < 256; ++i) {
auto cell_generator = table_generator.fork();
auto cell_generator = table_generator.fork().release_value_but_fixme_should_propagate_errors();
cell_generator.set("cell_new_state", row[i].new_state.value_or(s.name));
cell_generator.set("cell_action", row[i].action.value_or("_Ignore"));
cell_generator.append(" {State::@cell_new_state@, Action::@cell_action@}, ");
@ -320,7 +320,7 @@ public:
for (auto a : actions(machine)) {
if (a.is_empty())
continue;
auto action_generator = generator.fork();
auto action_generator = generator.fork().release_value_but_fixme_should_propagate_errors();
action_generator.set("action.name", a);
action_generator.append(R"~~~(
@action.name@,
@ -347,7 +347,7 @@ public:
switch (m_state) {
)~~~");
for (auto s : machine.states) {
auto state_generator = generator.fork();
auto state_generator = generator.fork().release_value_but_fixme_should_propagate_errors();
if (s.exit_action.has_value()) {
state_generator.set("state_name", s.name);
state_generator.set("action", s.exit_action.value());
@ -375,7 +375,7 @@ public:
{
)~~~");
for (auto state : machine.states) {
auto state_generator = generator.fork();
auto state_generator = generator.fork().release_value_but_fixme_should_propagate_errors();
if (state.entry_action.has_value()) {
state_generator.set("state_name", state.name);
state_generator.set("action", state.entry_action.value());
@ -399,7 +399,7 @@ private:
)~~~");
for (auto s : machine.states) {
auto state_generator = generator.fork();
auto state_generator = generator.fork().release_value_but_fixme_should_propagate_errors();
state_generator.set("state.name", s.name);
state_generator.append(R"~~~(
@state.name@,
@ -434,7 +434,7 @@ private:
}
)~~~");
auto table_generator = generator.fork();
auto table_generator = generator.fork().release_value_but_fixme_should_propagate_errors();
generate_lookup_table(machine, table_generator);
generator.append(R"~~~(
}; // end @class_name@