[clang] b1d2d7c - [Clang][Parse][NFC] Use `llvm::function_ref<>` instead of `std::optional<llvm::function_ref<>>` (#142906)
via cfe-commits
cfe-commits at lists.llvm.org
Sat Jun 7 06:52:51 PDT 2025
Author: Yanzuo Liu
Date: 2025-06-07T15:52:48+02:00
New Revision: b1d2d7c1285b4f8a9bce3ad519164bd0351ef979
URL: https://github.com/llvm/llvm-project/commit/b1d2d7c1285b4f8a9bce3ad519164bd0351ef979
DIFF: https://github.com/llvm/llvm-project/commit/b1d2d7c1285b4f8a9bce3ad519164bd0351ef979.diff
LOG: [Clang][Parse][NFC] Use `llvm::function_ref<>` instead of `std::optional<llvm::function_ref<>>` (#142906)
There is no need to distinguish between null `optional` and null
`function_ref` in this case.
Added:
Modified:
clang/include/clang/Parse/Parser.h
clang/lib/Parse/ParseDecl.cpp
clang/lib/Parse/ParseDeclCXX.cpp
Removed:
################################################################################
diff --git a/clang/include/clang/Parse/Parser.h b/clang/include/clang/Parse/Parser.h
index 98db8201390be..0b2fab4a45c96 100644
--- a/clang/include/clang/Parse/Parser.h
+++ b/clang/include/clang/Parse/Parser.h
@@ -2598,8 +2598,7 @@ class Parser : public CodeCompletionHandler {
void ParseTypeQualifierListOpt(
DeclSpec &DS, unsigned AttrReqs = AR_AllAttributesParsed,
bool AtomicOrPtrauthAllowed = true, bool IdentifierRequired = false,
- std::optional<llvm::function_ref<void()>> CodeCompletionHandler =
- std::nullopt);
+ llvm::function_ref<void()> CodeCompletionHandler = {});
/// ParseDirectDeclarator
/// \verbatim
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp
index d6c36616bab47..f469e466e4634 100644
--- a/clang/lib/Parse/ParseDecl.cpp
+++ b/clang/lib/Parse/ParseDecl.cpp
@@ -6124,8 +6124,7 @@ bool Parser::isConstructorDeclarator(bool IsUnqualified, bool DeductionGuide,
void Parser::ParseTypeQualifierListOpt(
DeclSpec &DS, unsigned AttrReqs, bool AtomicOrPtrauthAllowed,
- bool IdentifierRequired,
- std::optional<llvm::function_ref<void()>> CodeCompletionHandler) {
+ bool IdentifierRequired, llvm::function_ref<void()> CodeCompletionHandler) {
if ((AttrReqs & AR_CXX11AttributesParsed) &&
isAllowedCXX11AttributeSpecifier()) {
ParsedAttributes Attrs(AttrFactory);
@@ -6145,7 +6144,7 @@ void Parser::ParseTypeQualifierListOpt(
case tok::code_completion:
cutOffParsing();
if (CodeCompletionHandler)
- (*CodeCompletionHandler)();
+ CodeCompletionHandler();
else
Actions.CodeCompletion().CodeCompleteTypeQualifiers(DS);
return;
@@ -7236,9 +7235,9 @@ void Parser::ParseFunctionDeclarator(Declarator &D,
ParseTypeQualifierListOpt(
DS, AR_NoAttributesParsed,
/*AtomicOrPtrauthAllowed=*/false,
- /*IdentifierRequired=*/false, llvm::function_ref<void()>([&]() {
+ /*IdentifierRequired=*/false, [&]() {
Actions.CodeCompletion().CodeCompleteFunctionQualifiers(DS, D);
- }));
+ });
if (!DS.getSourceRange().getEnd().isInvalid()) {
EndLoc = DS.getSourceRange().getEnd();
}
diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp
index 2cf33a856c4f4..0b5f56fea0b14 100644
--- a/clang/lib/Parse/ParseDeclCXX.cpp
+++ b/clang/lib/Parse/ParseDeclCXX.cpp
@@ -2649,9 +2649,9 @@ void Parser::MaybeParseAndDiagnoseDeclSpecAfterCXX11VirtSpecifierSeq(
// handled by the caller. Diagnose everything else.
ParseTypeQualifierListOpt(
DS, AR_NoAttributesParsed, /*AtomicOrPtrauthAllowed=*/false,
- /*IdentifierRequired=*/false, llvm::function_ref<void()>([&]() {
+ /*IdentifierRequired=*/false, [&]() {
Actions.CodeCompletion().CodeCompleteFunctionQualifiers(DS, D, &VS);
- }));
+ });
D.ExtendWithDeclSpec(DS);
if (D.isFunctionDeclarator()) {
More information about the cfe-commits
mailing list