diff options
Diffstat (limited to 'clang/lib/ASTMatchers/Dynamic/VariantValue.cpp')
-rw-r--r-- | clang/lib/ASTMatchers/Dynamic/VariantValue.cpp | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp b/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp index 813eb1597756..4f6b021b26f0 100644 --- a/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp +++ b/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp @@ -14,6 +14,7 @@ #include "clang/ASTMatchers/Dynamic/VariantValue.h" #include "clang/Basic/LLVM.h" #include "llvm/ADT/STLExtras.h" +#include <optional> namespace clang { namespace ast_matchers { @@ -66,7 +67,7 @@ DynTypedMatcher VariantMatcher::MatcherOps::convertMatcher( return Matcher.dynCastTo(NodeKind); } -llvm::Optional<DynTypedMatcher> +std::optional<DynTypedMatcher> VariantMatcher::MatcherOps::constructVariadicOperator( DynTypedMatcher::VariadicOperator Op, ArrayRef<VariantMatcher> InnerMatchers) const { @@ -75,11 +76,11 @@ VariantMatcher::MatcherOps::constructVariadicOperator( // Abort if any of the inner matchers can't be converted to // Matcher<T>. if (!InnerMatcher.Value) - return llvm::None; - llvm::Optional<DynTypedMatcher> Inner = + return std::nullopt; + std::optional<DynTypedMatcher> Inner = InnerMatcher.Value->getTypedMatcher(*this); if (!Inner) - return llvm::None; + return std::nullopt; DynMatchers.push_back(*Inner); } return DynTypedMatcher::constructVariadic(Op, NodeKind, DynMatchers); @@ -91,7 +92,7 @@ class VariantMatcher::SinglePayload : public VariantMatcher::Payload { public: SinglePayload(const DynTypedMatcher &Matcher) : Matcher(Matcher) {} - llvm::Optional<DynTypedMatcher> getSingleMatcher() const override { + std::optional<DynTypedMatcher> getSingleMatcher() const override { return Matcher; } @@ -100,12 +101,12 @@ public: .str(); } - llvm::Optional<DynTypedMatcher> + std::optional<DynTypedMatcher> getTypedMatcher(const MatcherOps &Ops) const override { bool Ignore; if (Ops.canConstructFrom(Matcher, Ignore)) return Matcher; - return llvm::None; + return std::nullopt; } bool isConvertibleTo(ASTNodeKind Kind, unsigned *Specificity) const override { @@ -124,9 +125,9 @@ public: ~PolymorphicPayload() override {} - llvm::Optional<DynTypedMatcher> getSingleMatcher() const override { + std::optional<DynTypedMatcher> getSingleMatcher() const override { if (Matchers.size() != 1) - return llvm::Optional<DynTypedMatcher>(); + return std::nullopt; return Matchers[0]; } @@ -140,7 +141,7 @@ public: return (Twine("Matcher<") + Inner + ">").str(); } - llvm::Optional<DynTypedMatcher> + std::optional<DynTypedMatcher> getTypedMatcher(const MatcherOps &Ops) const override { bool FoundIsExact = false; const DynTypedMatcher *Found = nullptr; @@ -162,7 +163,7 @@ public: // We only succeed if we found exactly one, or if we found an exact match. if (Found && (FoundIsExact || NumFound == 1)) return *Found; - return llvm::None; + return std::nullopt; } bool isConvertibleTo(ASTNodeKind Kind, unsigned *Specificity) const override { @@ -189,8 +190,8 @@ public: std::vector<VariantMatcher> Args) : Op(Op), Args(std::move(Args)) {} - llvm::Optional<DynTypedMatcher> getSingleMatcher() const override { - return llvm::Optional<DynTypedMatcher>(); + std::optional<DynTypedMatcher> getSingleMatcher() const override { + return std::nullopt; } std::string getTypeAsString() const override { @@ -203,7 +204,7 @@ public: return Inner; } - llvm::Optional<DynTypedMatcher> + std::optional<DynTypedMatcher> getTypedMatcher(const MatcherOps &Ops) const override { return Ops.constructVariadicOperator(Op, Args); } @@ -240,8 +241,8 @@ VariantMatcher VariantMatcher::VariadicOperatorMatcher( std::make_shared<VariadicOpPayload>(Op, std::move(Args))); } -llvm::Optional<DynTypedMatcher> VariantMatcher::getSingleMatcher() const { - return Value ? Value->getSingleMatcher() : llvm::Optional<DynTypedMatcher>(); +std::optional<DynTypedMatcher> VariantMatcher::getSingleMatcher() const { + return Value ? Value->getSingleMatcher() : std::optional<DynTypedMatcher>(); } void VariantMatcher::reset() { Value.reset(); } |