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

LibJS: Add explicit default copy+move constructors to ThrowCompletionOr

This stops clangd from complaining about not being able to determine the
copy-constructibility of ThrowCompletionOr and Completion.
This commit is contained in:
Hendiadyoin1 2022-03-30 21:37:26 +02:00 committed by Tim Flynn
parent 09a12247fb
commit c79e4961f6

View file

@ -49,6 +49,11 @@ public:
{
}
Completion(Completion const&) = default;
Completion& operator=(Completion const&) = default;
Completion(Completion&&) = default;
Completion& operator=(Completion&&) = default;
[[nodiscard]] Type type() const { return m_type; }
[[nodiscard]] Optional<Value>& value() { return m_value; }
[[nodiscard]] Optional<Value> const& value() const { return m_value; }
@ -112,6 +117,11 @@ public:
VERIFY(!m_value->is_empty());
}
ThrowCompletionOr(ThrowCompletionOr const&) = default;
ThrowCompletionOr& operator=(ThrowCompletionOr const&) = default;
ThrowCompletionOr(ThrowCompletionOr&&) = default;
ThrowCompletionOr& operator=(ThrowCompletionOr&&) = default;
// Allows implicit construction of ThrowCompletionOr<T> from a type U if T(U) is a supported constructor.
// Most commonly: Value from Object* or similar, so we can omit the curly braces from "return { TRY(...) };".
// Disabled for POD types to avoid weird conversion shenanigans.