From 4f26edd5e9eb3b6cea19e15ca8fb2c8416b82fa8 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 23 Jan 2025 03:56:51 -0800 Subject: [PATCH] [NFC][YAML] Add `IO::error()` (#123475) For #123280 --- llvm/include/llvm/Support/YAMLTraits.h | 4 +++- llvm/lib/Support/YAMLTraits.cpp | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/llvm/include/llvm/Support/YAMLTraits.h b/llvm/include/llvm/Support/YAMLTraits.h index eca26e90845bf..e707a445012b5 100644 --- a/llvm/include/llvm/Support/YAMLTraits.h +++ b/llvm/include/llvm/Support/YAMLTraits.h @@ -819,6 +819,7 @@ class IO { virtual NodeKind getNodeKind() = 0; virtual void setError(const Twine &) = 0; + virtual std::error_code error() = 0; virtual void setAllowUnknownKeys(bool Allow); template @@ -1448,7 +1449,7 @@ class Input : public IO { ~Input() override; // Check if there was an syntax or semantic error during parsing. - std::error_code error(); + std::error_code error() override; private: bool outputting() const override; @@ -1631,6 +1632,7 @@ class Output : public IO { void scalarTag(std::string &) override; NodeKind getNodeKind() override; void setError(const Twine &message) override; + std::error_code error() override; bool canElideEmptySequence() override; // These are only used by operator<<. They could be private diff --git a/llvm/lib/Support/YAMLTraits.cpp b/llvm/lib/Support/YAMLTraits.cpp index f326422138488..28642e004c4f4 100644 --- a/llvm/lib/Support/YAMLTraits.cpp +++ b/llvm/lib/Support/YAMLTraits.cpp @@ -750,6 +750,8 @@ void Output::scalarTag(std::string &Tag) { void Output::setError(const Twine &message) { } +std::error_code Output::error() { return {}; } + bool Output::canElideEmptySequence() { // Normally, with an optional key/value where the value is an empty sequence, // the whole key/value can be not written. But, that produces wrong yaml