Author: Fangrui Song Date: 2022-12-14T06:42:35Z New Revision: b0de3630249aedb6910b4ec287ba152b32fd7f19
URL: https://github.com/llvm/llvm-project/commit/b0de3630249aedb6910b4ec287ba152b32fd7f19 DIFF: https://github.com/llvm/llvm-project/commit/b0de3630249aedb6910b4ec287ba152b32fd7f19.diff LOG: [clang] Remove uses of ::testing::Matcher<const Optional<T> &> Change a few functions (getCheckTraversalKind, some clang/Tooling/ API, etc) from llvm::Optional to std::optional. Added: Modified: clang-tools-extra/clang-tidy/bugprone/InaccurateEraseCheck.h clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.h clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.h clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.h clang-tools-extra/clang-tidy/bugprone/ThrowKeywordMissingCheck.h clang-tools-extra/clang-tidy/bugprone/UnusedRaiiCheck.h clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h clang-tools-extra/clang-tidy/modernize/ReturnBracedInitListCheck.h clang-tools-extra/clang-tidy/modernize/ShrinkToFitCheck.h clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.h clang-tools-extra/clang-tidy/performance/InefficientAlgorithmCheck.h clang-tools-extra/clang-tidy/readability/AvoidConstParamsInDecls.h clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.h clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.h clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.h clang-tools-extra/clang-tidy/readability/DeleteNullPointerCheck.h clang-tools-extra/clang-tidy/readability/ElseAfterReturnCheck.h clang-tools-extra/clang-tidy/readability/FunctionCognitiveComplexityCheck.h clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h clang-tools-extra/clang-tidy/readability/MisleadingIndentationCheck.h clang-tools-extra/clang-tidy/readability/NamedParameterCheck.h clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.h clang-tools-extra/clang-tidy/readability/RedundantControlFlowCheck.h clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.h clang-tools-extra/clang-tidy/readability/RedundantSmartptrGetCheck.h clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.h clang-tools-extra/clang-tidy/readability/SimplifySubscriptExprCheck.h clang-tools-extra/clang-tidy/readability/StaticAccessedThroughInstanceCheck.h clang-tools-extra/clang-tidy/readability/UniqueptrDeleteReleaseCheck.h clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.h clang-tools-extra/clangd/FindSymbols.cpp clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h clang/include/clang/AST/ParentMapContext.h clang/include/clang/ASTMatchers/ASTMatchFinder.h clang/include/clang/ASTMatchers/ASTMatchersInternal.h clang/include/clang/Tooling/Syntax/Tokens.h clang/include/clang/Tooling/Transformer/SourceCode.h clang/include/clang/Tooling/Transformer/SourceCodeBuilders.h clang/lib/ASTMatchers/ASTMatchFinder.cpp clang/lib/ASTMatchers/ASTMatchersInternal.cpp clang/lib/Tooling/DumpTool/ASTSrcLocProcessor.h clang/lib/Tooling/Syntax/Tokens.cpp clang/lib/Tooling/Transformer/RewriteRule.cpp clang/lib/Tooling/Transformer/SourceCode.cpp clang/lib/Tooling/Transformer/SourceCodeBuilders.cpp clang/lib/Tooling/Transformer/Stencil.cpp clang/unittests/ASTMatchers/ASTMatchersInternalTest.cpp clang/unittests/Tooling/SourceCodeBuildersTest.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clang-tidy/bugprone/InaccurateEraseCheck.h b/clang-tools-extra/clang-tidy/bugprone/InaccurateEraseCheck.h index dd6eb80a41d17..76216109540ea 100644 --- a/clang-tools-extra/clang-tidy/bugprone/InaccurateEraseCheck.h +++ b/clang-tools-extra/clang-tidy/bugprone/InaccurateEraseCheck.h @@ -31,7 +31,7 @@ class InaccurateEraseCheck : public ClangTidyCheck { } void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } }; diff --git a/clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.h b/clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.h index 334eb2ac4204c..40e1898fd5eef 100644 --- a/clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.h +++ b/clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.h @@ -26,7 +26,7 @@ class RedundantBranchConditionCheck : public ClangTidyCheck { : ClangTidyCheck(Name, Context) {} void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } }; diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.h b/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.h index 2591de5c6b9c2..644f68dc7ac28 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.h +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.h @@ -25,7 +25,7 @@ class SuspiciousEnumUsageCheck : public ClangTidyCheck { void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; void storeOptions(ClangTidyOptions::OptionMap &Opts) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.h b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.h index 3a5e082175f7a..0b77a541483f8 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.h +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.h @@ -25,7 +25,7 @@ class SuspiciousMemsetUsageCheck : public ClangTidyCheck { : ClangTidyCheck(Name, Context) {} void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } }; diff --git a/clang-tools-extra/clang-tidy/bugprone/ThrowKeywordMissingCheck.h b/clang-tools-extra/clang-tidy/bugprone/ThrowKeywordMissingCheck.h index 12d41426743fc..442caabe735d7 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ThrowKeywordMissingCheck.h +++ b/clang-tools-extra/clang-tidy/bugprone/ThrowKeywordMissingCheck.h @@ -29,7 +29,7 @@ class ThrowKeywordMissingCheck : public ClangTidyCheck { } void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } }; diff --git a/clang-tools-extra/clang-tidy/bugprone/UnusedRaiiCheck.h b/clang-tools-extra/clang-tidy/bugprone/UnusedRaiiCheck.h index adde299ecca3a..9a13fa277a1df 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UnusedRaiiCheck.h +++ b/clang-tools-extra/clang-tidy/bugprone/UnusedRaiiCheck.h @@ -28,7 +28,7 @@ class UnusedRaiiCheck : public ClangTidyCheck { } void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } }; diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h index 7ff2a19192e1e..ff2b438ca7f34 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h @@ -32,7 +32,7 @@ class SpecialMemberFunctionsCheck : public ClangTidyCheck { void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; void onEndOfTranslationUnit() override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } enum class SpecialMemberFunctionKind : uint8_t { diff --git a/clang-tools-extra/clang-tidy/modernize/ReturnBracedInitListCheck.h b/clang-tools-extra/clang-tidy/modernize/ReturnBracedInitListCheck.h index abf6e406697d2..0597327d1ca53 100644 --- a/clang-tools-extra/clang-tidy/modernize/ReturnBracedInitListCheck.h +++ b/clang-tools-extra/clang-tidy/modernize/ReturnBracedInitListCheck.h @@ -29,7 +29,7 @@ class ReturnBracedInitListCheck : public ClangTidyCheck { } void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } }; diff --git a/clang-tools-extra/clang-tidy/modernize/ShrinkToFitCheck.h b/clang-tools-extra/clang-tidy/modernize/ShrinkToFitCheck.h index 6ea0522d65712..185d74856e788 100644 --- a/clang-tools-extra/clang-tidy/modernize/ShrinkToFitCheck.h +++ b/clang-tools-extra/clang-tidy/modernize/ShrinkToFitCheck.h @@ -30,7 +30,7 @@ class ShrinkToFitCheck : public ClangTidyCheck { } void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } }; diff --git a/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.h b/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.h index b66fac6fbd5ee..a49735cd0505e 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.h +++ b/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.h @@ -30,7 +30,7 @@ class UseDefaultMemberInitCheck : public ClangTidyCheck { void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/performance/InefficientAlgorithmCheck.h b/clang-tools-extra/clang-tidy/performance/InefficientAlgorithmCheck.h index 5a7536ad76aa4..8830d7103af93 100644 --- a/clang-tools-extra/clang-tidy/performance/InefficientAlgorithmCheck.h +++ b/clang-tools-extra/clang-tidy/performance/InefficientAlgorithmCheck.h @@ -29,7 +29,7 @@ class InefficientAlgorithmCheck : public ClangTidyCheck { } void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } }; diff --git a/clang-tools-extra/clang-tidy/readability/AvoidConstParamsInDecls.h b/clang-tools-extra/clang-tidy/readability/AvoidConstParamsInDecls.h index a7637a9c3050e..8cd9882c655ef 100644 --- a/clang-tools-extra/clang-tidy/readability/AvoidConstParamsInDecls.h +++ b/clang-tools-extra/clang-tidy/readability/AvoidConstParamsInDecls.h @@ -26,7 +26,7 @@ class AvoidConstParamsInDecls : public ClangTidyCheck { void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.h b/clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.h index 1270cfe10d193..51f828a53a0d9 100644 --- a/clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.h +++ b/clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.h @@ -55,7 +55,7 @@ class BracesAroundStatementsCheck : public ClangTidyCheck { template <typename IfOrWhileStmt> SourceLocation findRParenLoc(const IfOrWhileStmt *S, const SourceManager &SM, const ASTContext *Context); - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.h b/clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.h index e11bd627614f9..5ed1489d134de 100644 --- a/clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.h +++ b/clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.h @@ -34,7 +34,7 @@ class ContainerDataPointerCheck : public ClangTidyCheck { void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } }; diff --git a/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.h b/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.h index 6a4236065f438..af3b35c2344ce 100644 --- a/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.h +++ b/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.h @@ -33,7 +33,7 @@ class ContainerSizeEmptyCheck : public ClangTidyCheck { } void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } }; diff --git a/clang-tools-extra/clang-tidy/readability/DeleteNullPointerCheck.h b/clang-tools-extra/clang-tidy/readability/DeleteNullPointerCheck.h index 9d5aae5b92e40..32d6ae1bd5b2d 100644 --- a/clang-tools-extra/clang-tidy/readability/DeleteNullPointerCheck.h +++ b/clang-tools-extra/clang-tidy/readability/DeleteNullPointerCheck.h @@ -26,7 +26,7 @@ class DeleteNullPointerCheck : public ClangTidyCheck { : ClangTidyCheck(Name, Context) {} void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } }; diff --git a/clang-tools-extra/clang-tidy/readability/ElseAfterReturnCheck.h b/clang-tools-extra/clang-tidy/readability/ElseAfterReturnCheck.h index d3fbc0ac0abe0..8962426114648 100644 --- a/clang-tools-extra/clang-tidy/readability/ElseAfterReturnCheck.h +++ b/clang-tools-extra/clang-tidy/readability/ElseAfterReturnCheck.h @@ -28,7 +28,7 @@ class ElseAfterReturnCheck : public ClangTidyCheck { Preprocessor *ModuleExpanderPP) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/FunctionCognitiveComplexityCheck.h b/clang-tools-extra/clang-tidy/readability/FunctionCognitiveComplexityCheck.h index 02c1107b9aeb3..a67c3492364d4 100644 --- a/clang-tools-extra/clang-tidy/readability/FunctionCognitiveComplexityCheck.h +++ b/clang-tools-extra/clang-tidy/readability/FunctionCognitiveComplexityCheck.h @@ -38,7 +38,7 @@ class FunctionCognitiveComplexityCheck : public ClangTidyCheck { void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h b/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h index 1bca9bc0028a1..3dcfd3833e631 100644 --- a/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h +++ b/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h @@ -33,7 +33,7 @@ class InconsistentDeclarationParameterNameCheck : public ClangTidyCheck { void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/MisleadingIndentationCheck.h b/clang-tools-extra/clang-tidy/readability/MisleadingIndentationCheck.h index 3aa427e6a109f..73b6ac853bb97 100644 --- a/clang-tools-extra/clang-tidy/readability/MisleadingIndentationCheck.h +++ b/clang-tools-extra/clang-tidy/readability/MisleadingIndentationCheck.h @@ -27,7 +27,7 @@ class MisleadingIndentationCheck : public ClangTidyCheck { : ClangTidyCheck(Name, Context) {} void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/NamedParameterCheck.h b/clang-tools-extra/clang-tidy/readability/NamedParameterCheck.h index f946e00a00444..0e7244ede7263 100644 --- a/clang-tools-extra/clang-tidy/readability/NamedParameterCheck.h +++ b/clang-tools-extra/clang-tidy/readability/NamedParameterCheck.h @@ -32,7 +32,7 @@ class NamedParameterCheck : public ClangTidyCheck { : ClangTidyCheck(Name, Context) {} void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } }; diff --git a/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.h b/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.h index 63cf781f4e237..cab3876125b81 100644 --- a/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.h +++ b/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.h @@ -26,7 +26,7 @@ class NonConstParameterCheck : public ClangTidyCheck { void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; void onEndOfTranslationUnit() override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/RedundantControlFlowCheck.h b/clang-tools-extra/clang-tidy/readability/RedundantControlFlowCheck.h index ef50434c59fc4..2e70f22f02266 100644 --- a/clang-tools-extra/clang-tidy/readability/RedundantControlFlowCheck.h +++ b/clang-tools-extra/clang-tidy/readability/RedundantControlFlowCheck.h @@ -29,7 +29,7 @@ class RedundantControlFlowCheck : public ClangTidyCheck { void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.h b/clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.h index 49d676030e644..5eab69b84238e 100644 --- a/clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.h +++ b/clang-tools-extra/clang-tidy/readability/RedundantMemberInitCheck.h @@ -32,7 +32,7 @@ class RedundantMemberInitCheck : public ClangTidyCheck { void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/RedundantSmartptrGetCheck.h b/clang-tools-extra/clang-tidy/readability/RedundantSmartptrGetCheck.h index 37c09b871d44c..5b4275e357380 100644 --- a/clang-tools-extra/clang-tidy/readability/RedundantSmartptrGetCheck.h +++ b/clang-tools-extra/clang-tidy/readability/RedundantSmartptrGetCheck.h @@ -35,7 +35,7 @@ class RedundantSmartptrGetCheck : public ClangTidyCheck { void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.h b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.h index 17da86e27131c..bbadfc484f0a7 100644 --- a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.h +++ b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.h @@ -27,7 +27,7 @@ class SimplifyBooleanExprCheck : public ClangTidyCheck { void storeOptions(ClangTidyOptions::OptionMap &Options) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/SimplifySubscriptExprCheck.h b/clang-tools-extra/clang-tidy/readability/SimplifySubscriptExprCheck.h index fd1dda8afbc62..0bd61738d39ee 100644 --- a/clang-tools-extra/clang-tidy/readability/SimplifySubscriptExprCheck.h +++ b/clang-tools-extra/clang-tidy/readability/SimplifySubscriptExprCheck.h @@ -28,7 +28,7 @@ class SimplifySubscriptExprCheck : public ClangTidyCheck { void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; void storeOptions(ClangTidyOptions::OptionMap& Opts) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/StaticAccessedThroughInstanceCheck.h b/clang-tools-extra/clang-tidy/readability/StaticAccessedThroughInstanceCheck.h index 01e1c810043bb..490a6582f4e74 100644 --- a/clang-tools-extra/clang-tidy/readability/StaticAccessedThroughInstanceCheck.h +++ b/clang-tools-extra/clang-tidy/readability/StaticAccessedThroughInstanceCheck.h @@ -30,7 +30,7 @@ class StaticAccessedThroughInstanceCheck : public ClangTidyCheck { void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/UniqueptrDeleteReleaseCheck.h b/clang-tools-extra/clang-tidy/readability/UniqueptrDeleteReleaseCheck.h index 5f99082a40b0c..26c15223ae2bc 100644 --- a/clang-tools-extra/clang-tidy/readability/UniqueptrDeleteReleaseCheck.h +++ b/clang-tools-extra/clang-tidy/readability/UniqueptrDeleteReleaseCheck.h @@ -26,7 +26,7 @@ class UniqueptrDeleteReleaseCheck : public ClangTidyCheck { void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; void storeOptions(ClangTidyOptions::OptionMap &Opts) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.h b/clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.h index 5a57c3657a9b0..25af7cdf6c778 100644 --- a/clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.h +++ b/clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.h @@ -28,7 +28,7 @@ class UppercaseLiteralSuffixCheck : public ClangTidyCheck { void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; void storeOptions(ClangTidyOptions::OptionMap &Opts) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang-tools-extra/clangd/FindSymbols.cpp b/clang-tools-extra/clangd/FindSymbols.cpp index 982c57c52e6b8..0a18d5b4528d9 100644 --- a/clang-tools-extra/clangd/FindSymbols.cpp +++ b/clang-tools-extra/clangd/FindSymbols.cpp @@ -325,7 +325,7 @@ class DocumentOutline { // - a macro symbol child of this (either new or previously created) // - this scope itself, if it *is* the macro symbol or is nested within it SymBuilder &inMacro(const syntax::Token &Tok, const SourceManager &SM, - llvm::Optional<syntax::TokenBuffer::Expansion> Exp) { + std::optional<syntax::TokenBuffer::Expansion> Exp) { if (llvm::is_contained(EnclosingMacroLoc, Tok.location())) return *this; // If there's an existing child for this macro, we expect it to be last. diff --git a/clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h b/clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h index f704ae464d8e8..65d5fbfc5cbfe 100644 --- a/clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h +++ b/clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h @@ -75,14 +75,14 @@ class LRTable { // Returns the state after we reduce a nonterminal. // Expected to be called by LR parsers. // If the nonterminal is invalid here, returns std::nullopt. - llvm::Optional<StateID> getGoToState(StateID State, + std::optional<StateID> getGoToState(StateID State, SymbolID Nonterminal) const { return Gotos.get(gotoIndex(State, Nonterminal, numStates())); } // Returns the state after we shift a terminal. // Expected to be called by LR parsers. // If the terminal is invalid here, returns std::nullopt. - llvm::Optional<StateID> getShiftState(StateID State, + std::optional<StateID> getShiftState(StateID State, SymbolID Terminal) const { return Shifts.get(shiftIndex(State, Terminal, numStates())); } @@ -217,7 +217,7 @@ class LRTable { } } - llvm::Optional<StateID> get(unsigned Key) const { + std::optional<StateID> get(unsigned Key) const { // Do we have a value for this key? Word KeyMask = Word(1) << (Key % WordBits); unsigned KeyWord = Key / WordBits; diff --git a/clang/include/clang/AST/ParentMapContext.h b/clang/include/clang/AST/ParentMapContext.h index 3c2e2f9640ca3..d3b2e3986a993 100644 --- a/clang/include/clang/AST/ParentMapContext.h +++ b/clang/include/clang/AST/ParentMapContext.h @@ -77,7 +77,7 @@ class TraversalKindScope { TraversalKind TK = TK_AsIs; public: - TraversalKindScope(ASTContext &ASTCtx, llvm::Optional<TraversalKind> ScopeTK) + TraversalKindScope(ASTContext &ASTCtx, std::optional<TraversalKind> ScopeTK) : Ctx(ASTCtx.getParentMapContext()) { TK = Ctx.getTraversalKind(); if (ScopeTK) diff --git a/clang/include/clang/ASTMatchers/ASTMatchFinder.h b/clang/include/clang/ASTMatchers/ASTMatchFinder.h index e40e688c9eaa6..9a1aad656fbef 100644 --- a/clang/include/clang/ASTMatchers/ASTMatchFinder.h +++ b/clang/include/clang/ASTMatchers/ASTMatchFinder.h @@ -115,7 +115,7 @@ class MatchFinder { /// the result nodes. This API is temporary to facilitate /// third parties porting existing code to the default /// behavior of clang-tidy. - virtual llvm::Optional<TraversalKind> getCheckTraversalKind() const; + virtual std::optional<TraversalKind> getCheckTraversalKind() const; }; /// Called when parsing is finished. Intended for testing only. @@ -289,7 +289,7 @@ class CollectMatchesCallback : public MatchFinder::MatchCallback { Nodes.push_back(Result.Nodes); } - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return std::nullopt; } diff --git a/clang/include/clang/ASTMatchers/ASTMatchersInternal.h b/clang/include/clang/ASTMatchers/ASTMatchersInternal.h index a21de561f0259..04213dcf48083 100644 --- a/clang/include/clang/ASTMatchers/ASTMatchersInternal.h +++ b/clang/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -350,7 +350,7 @@ class DynMatcherInterface virtual bool dynMatches(const DynTypedNode &DynNode, ASTMatchFinder *Finder, BoundNodesTreeBuilder *Builder) const = 0; - virtual llvm::Optional<clang::TraversalKind> TraversalKind() const { + virtual std::optional<clang::TraversalKind> TraversalKind() const { return std::nullopt; } }; @@ -536,7 +536,7 @@ class DynTypedMatcher { /// /// Most matchers will not have a traversal kind set, instead relying on the /// surrounding context. For those, \c std::nullopt is returned. - llvm::Optional<clang::TraversalKind> getTraversalKind() const { + std::optional<clang::TraversalKind> getTraversalKind() const { return Implementation->TraversalKind(); } @@ -648,7 +648,7 @@ class Matcher { Builder); } - llvm::Optional<clang::TraversalKind> TraversalKind() const override { + std::optional<clang::TraversalKind> TraversalKind() const override { return this->InnerMatcher.getTraversalKind(); } }; @@ -1515,7 +1515,7 @@ template <typename T> class TraversalMatcher : public MatcherInterface<T> { Builder); } - llvm::Optional<clang::TraversalKind> TraversalKind() const override { + std::optional<clang::TraversalKind> TraversalKind() const override { if (auto NestedKind = this->InnerMatcher.getTraversalKind()) return NestedKind; return Traversal; diff --git a/clang/include/clang/Tooling/Syntax/Tokens.h b/clang/include/clang/Tooling/Syntax/Tokens.h index 37c309219f616..65f3adc6d04ba 100644 --- a/clang/include/clang/Tooling/Syntax/Tokens.h +++ b/clang/include/clang/Tooling/Syntax/Tokens.h @@ -229,7 +229,7 @@ class TokenBuffer { /// /// EXPECTS: \p Expanded is a subrange of expandedTokens(). /// Complexity is logarithmic. - llvm::Optional<llvm::ArrayRef<syntax::Token>> + std::optional<llvm::ArrayRef<syntax::Token>> spelledForExpanded(llvm::ArrayRef<syntax::Token> Expanded) const; /// Find the subranges of expanded tokens, corresponding to \p Spelled. @@ -278,7 +278,7 @@ class TokenBuffer { /// If \p Spelled starts a mapping (e.g. if it's a macro name or '#' starting /// a preprocessor directive) return the subrange of expanded tokens that the /// macro expands to. - llvm::Optional<Expansion> + std::optional<Expansion> expansionStartingAt(const syntax::Token *Spelled) const; /// Returns all expansions (partially) expanded from the specified tokens. /// This is the expansions whose Spelled range intersects \p Spelled. diff --git a/clang/include/clang/Tooling/Transformer/SourceCode.h b/clang/include/clang/Tooling/Transformer/SourceCode.h index 911c1bdb0f5dd..d95cb9b4ae187 100644 --- a/clang/include/clang/Tooling/Transformer/SourceCode.h +++ b/clang/include/clang/Tooling/Transformer/SourceCode.h @@ -16,6 +16,7 @@ #include "clang/AST/ASTContext.h" #include "clang/Basic/SourceLocation.h" #include "clang/Basic/TokenKinds.h" +#include <optional> namespace clang { namespace tooling { @@ -102,10 +103,10 @@ llvm::Error validateEditRange(const CharSourceRange &Range, /// foo(DO_NOTHING(3)) /// will be rewritten to /// foo(6) -llvm::Optional<CharSourceRange> +std::optional<CharSourceRange> getRangeForEdit(const CharSourceRange &EditRange, const SourceManager &SM, const LangOptions &LangOpts, bool IncludeMacroExpansion = true); -inline llvm::Optional<CharSourceRange> +inline std::optional<CharSourceRange> getRangeForEdit(const CharSourceRange &EditRange, const ASTContext &Context, bool IncludeMacroExpansion = true) { return getRangeForEdit(EditRange, Context.getSourceManager(), diff --git a/clang/include/clang/Tooling/Transformer/SourceCodeBuilders.h b/clang/include/clang/Tooling/Transformer/SourceCodeBuilders.h index ab0eb71ef44e2..22fc644dfac5c 100644 --- a/clang/include/clang/Tooling/Transformer/SourceCodeBuilders.h +++ b/clang/include/clang/Tooling/Transformer/SourceCodeBuilders.h @@ -59,18 +59,18 @@ bool isKnownPointerLikeType(QualType Ty, ASTContext &Context); /// Builds source for an expression, adding parens if needed for unambiguous /// parsing. -llvm::Optional<std::string> buildParens(const Expr &E, - const ASTContext &Context); +std::optional<std::string> buildParens(const Expr &E, + const ASTContext &Context); /// Builds idiomatic source for the dereferencing of `E`: prefix with `*` but /// simplify when it already begins with `&`. \returns empty string on failure. -llvm::Optional<std::string> buildDereference(const Expr &E, - const ASTContext &Context); +std::optional<std::string> buildDereference(const Expr &E, + const ASTContext &Context); /// Builds idiomatic source for taking the address of `E`: prefix with `&` but /// simplify when it already begins with `*`. \returns empty string on failure. -llvm::Optional<std::string> buildAddressOf(const Expr &E, - const ASTContext &Context); +std::optional<std::string> buildAddressOf(const Expr &E, + const ASTContext &Context); /// Adds a dot to the end of the given expression, but adds parentheses when /// needed by the syntax, and simplifies to `->` when possible, e.g.: @@ -80,7 +80,7 @@ llvm::Optional<std::string> buildAddressOf(const Expr &E, /// `a+b` becomes `(a+b).` /// /// DEPRECATED. Use `buildAccess`. -llvm::Optional<std::string> buildDot(const Expr &E, const ASTContext &Context); +std::optional<std::string> buildDot(const Expr &E, const ASTContext &Context); /// Adds an arrow to the end of the given expression, but adds parentheses /// when needed by the syntax, and simplifies to `.` when possible, e.g.: @@ -90,8 +90,7 @@ llvm::Optional<std::string> buildDot(const Expr &E, const ASTContext &Context); /// `a+b` becomes `(a+b)->` /// /// DEPRECATED. Use `buildAccess`. -llvm::Optional<std::string> buildArrow(const Expr &E, - const ASTContext &Context); +std::optional<std::string> buildArrow(const Expr &E, const ASTContext &Context); /// Specifies how to classify pointer-like types -- like values or like pointers /// -- with regard to generating member-access syntax. @@ -111,7 +110,7 @@ enum class PLTClass : bool { /// `a+b` becomes `(a+b)->` or `(a+b).`, depending on `E`'s type /// `&a` becomes `a.` /// `*a` becomes `a->` -llvm::Optional<std::string> +std::optional<std::string> buildAccess(const Expr &E, ASTContext &Context, PLTClass Classification = PLTClass::Pointer); /// @} diff --git a/clang/lib/ASTMatchers/ASTMatchFinder.cpp b/clang/lib/ASTMatchers/ASTMatchFinder.cpp index c8db29229a5f9..a27fac62bdef3 100644 --- a/clang/lib/ASTMatchers/ASTMatchFinder.cpp +++ b/clang/lib/ASTMatchers/ASTMatchFinder.cpp @@ -1562,7 +1562,7 @@ MatchFinder::~MatchFinder() {} void MatchFinder::addMatcher(const DeclarationMatcher &NodeMatch, MatchCallback *Action) { - llvm::Optional<TraversalKind> TK; + std::optional<TraversalKind> TK; if (Action) TK = Action->getCheckTraversalKind(); if (TK) @@ -1580,7 +1580,7 @@ void MatchFinder::addMatcher(const TypeMatcher &NodeMatch, void MatchFinder::addMatcher(const StatementMatcher &NodeMatch, MatchCallback *Action) { - llvm::Optional<TraversalKind> TK; + std::optional<TraversalKind> TK; if (Action) TK = Action->getCheckTraversalKind(); if (TK) @@ -1685,7 +1685,7 @@ void MatchFinder::registerTestCallbackAfterParsing( StringRef MatchFinder::MatchCallback::getID() const { return "<unknown>"; } -llvm::Optional<TraversalKind> +std::optional<TraversalKind> MatchFinder::MatchCallback::getCheckTraversalKind() const { return std::nullopt; } diff --git a/clang/lib/ASTMatchers/ASTMatchersInternal.cpp b/clang/lib/ASTMatchers/ASTMatchersInternal.cpp index be9270c2af218..f9a1a59401aca 100644 --- a/clang/lib/ASTMatchers/ASTMatchersInternal.cpp +++ b/clang/lib/ASTMatchers/ASTMatchersInternal.cpp @@ -139,7 +139,7 @@ class IdDynMatcher : public DynMatcherInterface { return Result; } - llvm::Optional<clang::TraversalKind> TraversalKind() const override { + std::optional<clang::TraversalKind> TraversalKind() const override { return InnerMatcher->TraversalKind(); } @@ -175,7 +175,7 @@ class DynTraversalMatcherImpl : public DynMatcherInterface { return this->InnerMatcher->dynMatches(DynNode, Finder, Builder); } - llvm::Optional<clang::TraversalKind> TraversalKind() const override { + std::optional<clang::TraversalKind> TraversalKind() const override { return TK; } diff --git a/clang/lib/Tooling/DumpTool/ASTSrcLocProcessor.h b/clang/lib/Tooling/DumpTool/ASTSrcLocProcessor.h index 05c4f92676e88..5f2b48173f281 100644 --- a/clang/lib/Tooling/DumpTool/ASTSrcLocProcessor.h +++ b/clang/lib/Tooling/DumpTool/ASTSrcLocProcessor.h @@ -35,7 +35,7 @@ class ASTSrcLocProcessor : public ast_matchers::MatchFinder::MatchCallback { private: void run(const ast_matchers::MatchFinder::MatchResult &Result) override; - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } diff --git a/clang/lib/Tooling/Syntax/Tokens.cpp b/clang/lib/Tooling/Syntax/Tokens.cpp index 0bdda4ad6bd5d..500d074e9d4ba 100644 --- a/clang/lib/Tooling/Syntax/Tokens.cpp +++ b/clang/lib/Tooling/Syntax/Tokens.cpp @@ -451,7 +451,7 @@ std::string TokenBuffer::Mapping::str() const { BeginSpelled, EndSpelled, BeginExpanded, EndExpanded)); } -llvm::Optional<llvm::ArrayRef<syntax::Token>> +std::optional<llvm::ArrayRef<syntax::Token>> TokenBuffer::spelledForExpanded(llvm::ArrayRef<syntax::Token> Expanded) const { // Mapping an empty range is ambiguous in case of empty mappings at either end // of the range, bail out in that case. @@ -532,7 +532,7 @@ TokenBuffer::fileForSpelled(llvm::ArrayRef<syntax::Token> Spelled) const { return File; } -llvm::Optional<TokenBuffer::Expansion> +std::optional<TokenBuffer::Expansion> TokenBuffer::expansionStartingAt(const syntax::Token *Spelled) const { assert(Spelled); const auto &File = fileForSpelled(*Spelled); diff --git a/clang/lib/Tooling/Transformer/RewriteRule.cpp b/clang/lib/Tooling/Transformer/RewriteRule.cpp index b8acab5327a41..c475f515ae8b0 100644 --- a/clang/lib/Tooling/Transformer/RewriteRule.cpp +++ b/clang/lib/Tooling/Transformer/RewriteRule.cpp @@ -39,7 +39,7 @@ translateEdits(const MatchResult &Result, ArrayRef<ASTEdit> ASTEdits) { Expected<CharSourceRange> Range = E.TargetRange(Result); if (!Range) return Range.takeError(); - llvm::Optional<CharSourceRange> EditRange = + std::optional<CharSourceRange> EditRange = tooling::getRangeForEdit(*Range, *Result.Context); // FIXME: let user specify whether to treat this case as an error or ignore // it as is currently done. This behavior is problematic in that it hides @@ -450,7 +450,7 @@ SourceLocation transformer::detail::getRuleMatchLoc(const MatchResult &Result) { auto &NodesMap = Result.Nodes.getMap(); auto Root = NodesMap.find(RootID); assert(Root != NodesMap.end() && "Transformation failed: missing root node."); - llvm::Optional<CharSourceRange> RootRange = tooling::getRangeForEdit( + std::optional<CharSourceRange> RootRange = tooling::getRangeForEdit( CharSourceRange::getTokenRange(Root->second.getSourceRange()), *Result.Context); if (RootRange) diff --git a/clang/lib/Tooling/Transformer/SourceCode.cpp b/clang/lib/Tooling/Transformer/SourceCode.cpp index 1aff94ac50775..008a83cde42c4 100644 --- a/clang/lib/Tooling/Transformer/SourceCode.cpp +++ b/clang/lib/Tooling/Transformer/SourceCode.cpp @@ -93,7 +93,7 @@ static bool SpelledInMacroDefinition(SourceLocation Loc, return false; } -llvm::Optional<CharSourceRange> clang::tooling::getRangeForEdit( +std::optional<CharSourceRange> clang::tooling::getRangeForEdit( const CharSourceRange &EditRange, const SourceManager &SM, const LangOptions &LangOpts, bool IncludeMacroExpansion) { CharSourceRange Range; diff --git a/clang/lib/Tooling/Transformer/SourceCodeBuilders.cpp b/clang/lib/Tooling/Transformer/SourceCodeBuilders.cpp index d1de04ba39e0f..10588a383da0b 100644 --- a/clang/lib/Tooling/Transformer/SourceCodeBuilders.cpp +++ b/clang/lib/Tooling/Transformer/SourceCodeBuilders.cpp @@ -72,8 +72,8 @@ bool tooling::isKnownPointerLikeType(QualType Ty, ASTContext &Context) { return match(PointerLikeTy, Ty, Context).size() > 0; } -llvm::Optional<std::string> tooling::buildParens(const Expr &E, - const ASTContext &Context) { +std::optional<std::string> tooling::buildParens(const Expr &E, + const ASTContext &Context) { StringRef Text = getText(E, Context); if (Text.empty()) return std::nullopt; @@ -82,7 +82,7 @@ llvm::Optional<std::string> tooling::buildParens(const Expr &E, return Text.str(); } -llvm::Optional<std::string> +std::optional<std::string> tooling::buildDereference(const Expr &E, const ASTContext &Context) { if (const auto *Op = dyn_cast<UnaryOperator>(&E)) if (Op->getOpcode() == UO_AddrOf) { @@ -103,8 +103,8 @@ tooling::buildDereference(const Expr &E, const ASTContext &Context) { return ("*" + Text).str(); } -llvm::Optional<std::string> tooling::buildAddressOf(const Expr &E, - const ASTContext &Context) { +std::optional<std::string> tooling::buildAddressOf(const Expr &E, + const ASTContext &Context) { if (E.isImplicitCXXThis()) return std::string("this"); if (const auto *Op = dyn_cast<UnaryOperator>(&E)) @@ -128,7 +128,7 @@ llvm::Optional<std::string> tooling::buildAddressOf(const Expr &E, // Append the appropriate access operation (syntactically) to `E`, assuming `E` // is a non-pointer value. -static llvm::Optional<std::string> +static std::optional<std::string> buildAccessForValue(const Expr &E, const ASTContext &Context) { if (const auto *Op = llvm::dyn_cast<UnaryOperator>(&E)) if (Op->getOpcode() == UO_Deref) { @@ -154,7 +154,7 @@ buildAccessForValue(const Expr &E, const ASTContext &Context) { // Append the appropriate access operation (syntactically) to `E`, assuming `E` // is a pointer value. -static llvm::Optional<std::string> +static std::optional<std::string> buildAccessForPointer(const Expr &E, const ASTContext &Context) { if (const auto *Op = llvm::dyn_cast<UnaryOperator>(&E)) if (Op->getOpcode() == UO_AddrOf) { @@ -177,13 +177,13 @@ buildAccessForPointer(const Expr &E, const ASTContext &Context) { return (Text + "->").str(); } -llvm::Optional<std::string> tooling::buildDot(const Expr &E, - const ASTContext &Context) { +std::optional<std::string> tooling::buildDot(const Expr &E, + const ASTContext &Context) { return buildAccessForValue(E, Context); } -llvm::Optional<std::string> tooling::buildArrow(const Expr &E, - const ASTContext &Context) { +std::optional<std::string> tooling::buildArrow(const Expr &E, + const ASTContext &Context) { return buildAccessForPointer(E, Context); } @@ -210,9 +210,9 @@ static bool treatLikePointer(QualType Ty, PLTClass C, ASTContext &Context) { // FIXME: move over the other `maybe` functionality from Stencil. Should all be // in one place. -llvm::Optional<std::string> tooling::buildAccess(const Expr &RawExpression, - ASTContext &Context, - PLTClass Classification) { +std::optional<std::string> tooling::buildAccess(const Expr &RawExpression, + ASTContext &Context, + PLTClass Classification) { if (RawExpression.isImplicitCXXThis()) // Return the empty string, because `std::nullopt` signifies some sort of // failure. diff --git a/clang/lib/Tooling/Transformer/Stencil.cpp b/clang/lib/Tooling/Transformer/Stencil.cpp index 82dd4a2587b5f..2198aefddc9f1 100644 --- a/clang/lib/Tooling/Transformer/Stencil.cpp +++ b/clang/lib/Tooling/Transformer/Stencil.cpp @@ -152,7 +152,7 @@ class UnaryOperationStencil : public StencilInterface { if (E == nullptr) return llvm::make_error<StringError>(errc::invalid_argument, "Id not bound or not Expr: " + Id); - llvm::Optional<std::string> Source; + std::optional<std::string> Source; switch (Op) { case UnaryNodeOperator::Parens: Source = tooling::buildParens(*E, *Match.Context); @@ -277,7 +277,7 @@ class AccessStencil : public StencilInterface { if (E == nullptr) return llvm::make_error<StringError>(errc::invalid_argument, "Id not bound: " + BaseId); - llvm::Optional<std::string> S = tooling::buildAccess(*E, *Match.Context); + std::optional<std::string> S = tooling::buildAccess(*E, *Match.Context); if (!S) return llvm::make_error<StringError>( errc::invalid_argument, diff --git a/clang/unittests/ASTMatchers/ASTMatchersInternalTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersInternalTest.cpp index c123f71dc5278..8f28d3bab9043 100644 --- a/clang/unittests/ASTMatchers/ASTMatchersInternalTest.cpp +++ b/clang/unittests/ASTMatchers/ASTMatchersInternalTest.cpp @@ -63,7 +63,7 @@ static void crashTestNodeDump(MatcherT Matcher, struct CrashCallback : public MatchFinder::MatchCallback { void run(const MatchFinder::MatchResult &Result) override { abort(); } - llvm::Optional<TraversalKind> getCheckTraversalKind() const override { + std::optional<TraversalKind> getCheckTraversalKind() const override { return TK_IgnoreUnlessSpelledInSource; } StringRef getID() const override { return "CrashTester"; } diff --git a/clang/unittests/Tooling/SourceCodeBuildersTest.cpp b/clang/unittests/Tooling/SourceCodeBuildersTest.cpp index a65f6d961185a..647ead4c77f0e 100644 --- a/clang/unittests/Tooling/SourceCodeBuildersTest.cpp +++ b/clang/unittests/Tooling/SourceCodeBuildersTest.cpp @@ -188,7 +188,7 @@ TEST(SourceCodeBuildersTest, isKnownPointerLikeTypeNormalTypeFalse) { } static void testBuilder( - llvm::Optional<std::string> (*Builder)(const Expr &, const ASTContext &), + std::optional<std::string> (*Builder)(const Expr &, const ASTContext &), StringRef Snippet, StringRef Expected) { auto StmtMatch = matchStmt(Snippet, expr().bind("expr")); ASSERT_TRUE(StmtMatch); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits