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()) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits