1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:57:35 +00:00

LibWeb: Make sure we do not generate duplicate variable names

This commit is contained in:
Kenneth Myhra 2023-07-06 19:35:12 +02:00 committed by Andreas Kling
parent 12ff48047f
commit 90fdd598c2

View file

@ -776,12 +776,14 @@ static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter
@parameter.type.name@ @cpp_name@ {};
)~~~");
auto* current_dictionary = &interface.dictionaries.find(parameter.type->name())->value;
// FIXME: This (i) is a hack to make sure we don't generate duplicate variable names.
static auto i = 0;
while (true) {
for (auto& member : current_dictionary->members) {
dictionary_generator.set("member_key", member.name);
auto member_js_name = make_input_acceptable_cpp(member.name.to_snakecase());
auto member_value_name = DeprecatedString::formatted("{}_value", member_js_name);
auto member_property_value_name = DeprecatedString::formatted("{}_property_value", member_js_name);
auto member_property_value_name = DeprecatedString::formatted("{}_property_value_{}", member_js_name, i);
dictionary_generator.set("member_name", member_js_name);
dictionary_generator.set("member_value_name", member_value_name);
dictionary_generator.set("member_property_value_name", member_property_value_name);
@ -821,6 +823,7 @@ static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter
}
)~~~");
}
i++;
}
if (current_dictionary->parent_name.is_null())
break;