Ver código fonte

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.
Hendiadyoin1 3 anos atrás
pai
commit
c79e4961f6
1 arquivos alterados com 10 adições e 0 exclusões
  1. 10 0
      Userland/Libraries/LibJS/Runtime/Completion.h

+ 10 - 0
Userland/Libraries/LibJS/Runtime/Completion.h

@@ -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.