AK: Make String::number() infallible

This API will always succeed in creating a String representing the
provided number in base-10.
This commit is contained in:
Andreas Kling 2024-10-14 10:05:01 +02:00 committed by Andreas Kling
commit dd419b5a8d
Notes: github-actions[bot] 2024-10-14 18:49:07 +00:00
46 changed files with 77 additions and 81 deletions

View file

@ -71,8 +71,8 @@ void generate_table(SourceGenerator generator, StringView name, LookupTable& tab
{
generator.set("name", name);
generator.set("value_type", table.max_code_point > NumericLimits<u16>::max() ? "u32" : "u16");
generator.set("first_pointer", MUST(String::number(table.first_pointer)));
generator.set("size", MUST(String::number(table.code_points.size())));
generator.set("first_pointer", String::number(table.first_pointer));
generator.set("size", String::number(table.code_points.size()));
if (table.first_pointer > 0) {
generator.appendln("static constexpr u32 s_@name@_index_first_pointer = @first_pointer@;");
@ -96,7 +96,7 @@ ErrorOr<void> generate_header_file(LookupTables& tables, Core::File& file)
StringBuilder builder;
SourceGenerator generator { builder };
generator.set("gb18030_ranges_size", MUST(String::number(tables.gb18030_ranges.size())));
generator.set("gb18030_ranges_size", String::number(tables.gb18030_ranges.size()));
generator.append(R"~~~(
#pragma once
@ -133,8 +133,8 @@ static constexpr Array<Gb18030RangeEntry, @gb18030_ranges_size@> s_gb18030_range
void generate_table_accessor(SourceGenerator generator, StringView name, LookupTable& table)
{
generator.set("name", name);
generator.set("first_pointer", MUST(String::number(table.first_pointer)));
generator.set("size", MUST(String::number(table.code_points.size())));
generator.set("first_pointer", String::number(table.first_pointer));
generator.set("size", String::number(table.code_points.size()));
if (table.first_pointer > 0) {
generator.append(R"~~~(
@ -166,8 +166,8 @@ Optional<u32> index_@name@_code_point(u32 pointer)
void generate_inverse_table_accessor(SourceGenerator generator, StringView name, LookupTable& table)
{
generator.set("name", name);
generator.set("first_pointer", MUST(String::number(table.first_pointer)));
generator.set("size", MUST(String::number(table.code_points.size())));
generator.set("first_pointer", String::number(table.first_pointer));
generator.set("size", String::number(table.code_points.size()));
// FIXME - Doing a linear search here is really slow, should be generating
// some kind of reverse lookup table.

View file

@ -3762,7 +3762,7 @@ JS_DEFINE_NATIVE_FUNCTION(@class_name@::@attribute.setter_callback@)
)~~~");
} else if (attribute.type->is_integer() && !attribute.type->is_nullable()) {
attribute_generator.append(R"~~~(
MUST(impl->set_attribute(HTML::AttributeNames::@attribute.reflect_name@, MUST(String::number(cpp_value))));
MUST(impl->set_attribute(HTML::AttributeNames::@attribute.reflect_name@, String::number(cpp_value)));
)~~~");
} else if (attribute.type->is_nullable()) {
attribute_generator.append(R"~~~(

View file

@ -103,7 +103,7 @@ void generate_hash_table_member(SourceGenerator& generator, StringView member_na
member_generator.set("member_name"sv, member_name);
member_generator.set("hash_table_name"sv, hash_table_name);
member_generator.set("enum_class"sv, enum_class);
member_generator.set("hash_table_size"sv, MUST(String::number(values.size())));
member_generator.set("hash_table_size"sv, String::number(values.size()));
if (values.size() == 0) {
member_generator.append(R"~~~(

View file

@ -188,8 +188,8 @@ OwnPtr<CalculationNode> Parser::parse_math_function(PropertyID property_id, Func
if (parameter.get_bool("required"sv) == true)
min_argument_count++;
});
function_generator.set("min_argument_count", MUST(String::number(min_argument_count)));
function_generator.set("max_argument_count", MUST(String::number(max_argument_count)));
function_generator.set("min_argument_count", String::number(min_argument_count));
function_generator.set("max_argument_count", String::number(max_argument_count));
function_generator.append(R"~~~(
if (arguments.size() < @min_argument_count@ || arguments.size() > @max_argument_count@) {
@ -209,7 +209,7 @@ OwnPtr<CalculationNode> Parser::parse_math_function(PropertyID property_id, Func
auto parameter_generator = function_generator.fork();
parameter_generator.set("parameter_name", parameter.get_byte_string("name"sv).value());
parameter_generator.set("parameter_index", MUST(String::number(parameter_index)));
parameter_generator.set("parameter_index", String::number(parameter_index));
bool parameter_is_calculation;
if (parameter_type_string == "<rounding-strategy>") {
@ -319,7 +319,7 @@ OwnPtr<CalculationNode> Parser::parse_math_function(PropertyID property_id, Func
auto parameter_type_string = parameter.get_byte_string("type"sv).value();
auto parameter_generator = function_generator.fork();
parameter_generator.set("parameter_index"sv, MUST(String::number(parameter_index)));
parameter_generator.set("parameter_index"sv, String::number(parameter_index));
if (parameter_type_string == "<rounding-strategy>"sv) {
parameter_generator.set("release_value"sv, ""_string);