[clang] b0de363 - [clang] Remove uses of ::testing::Matcher<const Optional<T> &>
Fangrui Song via cfe-commits
cfe-commits at lists.llvm.org
Tue Dec 13 22:42:41 PST 2022
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);
More information about the cfe-commits
mailing list