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

AK+Everywhere: Remove the null state of DeprecatedString

This commit removes DeprecatedString's "null" state, and replaces all
its users with one of the following:
- A normal, empty DeprecatedString
- Optional<DeprecatedString>

Note that null states of DeprecatedFlyString/StringView/etc are *not*
affected by this commit. However, DeprecatedString::empty() is now
considered equal to a null StringView.
This commit is contained in:
Ali Mohammad Pur 2023-10-10 15:00:58 +03:30 committed by Ali Mohammad Pur
parent daf6d8173c
commit aeee98b3a1
189 changed files with 597 additions and 652 deletions

View file

@ -210,7 +210,7 @@ Vector<CodeComprehension::AutocompleteResultEntry> CppComprehensionEngine::autoc
{
VERIFY(parent.object());
auto type = type_of(document, *parent.object());
if (type.is_null()) {
if (type.is_empty()) {
dbgln_if(CPP_LANGUAGE_SERVER_DEBUG, "Could not infer type of object");
return {};
}
@ -385,7 +385,7 @@ DeprecatedString CppComprehensionEngine::document_path_from_include_path(StringV
};
auto result = document_path_for_library_include(include_path);
if (result.is_null())
if (result.is_empty())
result = document_path_for_user_defined_include(include_path);
return result;
@ -703,7 +703,7 @@ Optional<Vector<CodeComprehension::AutocompleteResultEntry>> CppComprehensionEng
partial_include = partial_include.substring_view(0, partial_include.length() - 1).trim_whitespace();
}
} else if (partial_include.starts_with('"')) {
include_root = filedb().project_root();
include_root = filedb().project_root().value_or("");
if (partial_include.length() > 1 && partial_include.ends_with('\"')) {
already_has_suffix = true;
partial_include = partial_include.substring_view(0, partial_include.length() - 1).trim_whitespace();

View file

@ -52,8 +52,8 @@ public:
virtual Optional<DeprecatedString> get_or_read_from_filesystem(StringView filename) const override
{
DeprecatedString target_filename = filename;
if (!project_root().is_null() && filename.starts_with(project_root())) {
target_filename = LexicalPath::relative_path(filename, project_root());
if (project_root().has_value() && filename.starts_with(*project_root())) {
target_filename = LexicalPath::relative_path(filename, *project_root());
}
return m_map.get(target_filename);
}

View file

@ -14,9 +14,9 @@ DeprecatedString FileDB::to_absolute_path(StringView filename) const
if (LexicalPath { filename }.is_absolute()) {
return filename;
}
if (m_project_root.is_null())
if (!m_project_root.has_value())
return filename;
return LexicalPath { DeprecatedString::formatted("{}/{}", m_project_root, filename) }.string();
return LexicalPath { DeprecatedString::formatted("{}/{}", *m_project_root, filename) }.string();
}
}

View file

@ -19,15 +19,21 @@ public:
virtual ~FileDB() = default;
virtual Optional<DeprecatedString> get_or_read_from_filesystem(StringView filename) const = 0;
void set_project_root(StringView project_root) { m_project_root = project_root; }
DeprecatedString const& project_root() const { return m_project_root; }
void set_project_root(StringView project_root)
{
if (project_root.is_null())
m_project_root.clear();
else
m_project_root = project_root;
}
Optional<DeprecatedString> const& project_root() const { return m_project_root; }
DeprecatedString to_absolute_path(StringView filename) const;
protected:
FileDB() = default;
private:
DeprecatedString m_project_root;
Optional<DeprecatedString> m_project_root;
};
}