https://github.com/irishrover updated https://github.com/llvm/llvm-project/pull/179514
>From 9812414918044e9da9a8ab5011bc3b3588c1e140 Mon Sep 17 00:00:00 2001 From: Zinovy Nis <[email protected]> Date: Tue, 3 Feb 2026 21:01:56 +0300 Subject: [PATCH] [clang-tools-extra] Apply modernize-use-string-view to the code --- clang-tools-extra/clang-doc/Generators.cpp | 2 +- clang-tools-extra/clang-doc/Generators.h | 2 +- .../clang-doc/tool/ClangDocMain.cpp | 4 ++-- .../readability/IdentifierNamingCheck.cpp | 2 +- .../readability/IdentifierNamingCheck.h | 2 +- clang-tools-extra/clangd/DumpAST.cpp | 20 +++++++++---------- clang-tools-extra/clangd/Feature.cpp | 2 +- clang-tools-extra/clangd/Feature.h | 3 ++- .../clangd/SymbolDocumentation.cpp | 6 ++++-- 9 files changed, 23 insertions(+), 20 deletions(-) diff --git a/clang-tools-extra/clang-doc/Generators.cpp b/clang-tools-extra/clang-doc/Generators.cpp index fafe41eebb779..eca1f288d5ba1 100644 --- a/clang-tools-extra/clang-doc/Generators.cpp +++ b/clang-tools-extra/clang-doc/Generators.cpp @@ -32,7 +32,7 @@ findGeneratorByName(llvm::StringRef Format) { // Enum conversion -std::string getTagType(TagTypeKind AS) { +llvm::StringRef getTagType(TagTypeKind AS) { switch (AS) { case TagTypeKind::Class: return "class"; diff --git a/clang-tools-extra/clang-doc/Generators.h b/clang-tools-extra/clang-doc/Generators.h index a50f1ac25eda9..ade0bb53eba7e 100644 --- a/clang-tools-extra/clang-doc/Generators.h +++ b/clang-tools-extra/clang-doc/Generators.h @@ -51,7 +51,7 @@ typedef llvm::Registry<Generator> GeneratorRegistry; llvm::Expected<std::unique_ptr<Generator>> findGeneratorByName(llvm::StringRef Format); -std::string getTagType(TagTypeKind AS); +llvm::StringRef getTagType(TagTypeKind AS); llvm::Error createFileOpenError(StringRef FileName, std::error_code EC); diff --git a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp index ee4c449718871..bc30f61264174 100644 --- a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp +++ b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp @@ -128,7 +128,7 @@ static llvm::cl::opt<OutputFormatTy> static llvm::ExitOnError ExitOnErr; -static std::string getFormatString() { +static llvm::StringRef getFormatString() { switch (FormatEnum) { case OutputFormatTy::yaml: return "yaml"; @@ -263,7 +263,7 @@ Example usage for a project using a compile commands database: llvm::TimeTraceScope("main"); // Fail early if an invalid format was provided. - std::string Format = getFormatString(); + llvm::StringRef Format = getFormatString(); llvm::outs() << "Emiting docs in " << Format << " format.\n"; auto G = ExitOnErr(doc::findGeneratorByName(Format)); diff --git a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp index e8c1e3a610fae..83fc3727cb5c8 100644 --- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp @@ -634,7 +634,7 @@ std::string IdentifierNamingCheck::HungarianNotation::getDataTypePrefix( return PrefixStr; } -std::string IdentifierNamingCheck::HungarianNotation::getClassPrefix( +llvm::StringRef IdentifierNamingCheck::HungarianNotation::getClassPrefix( const CXXRecordDecl *CRD, const IdentifierNamingCheck::HungarianNotationOption &HNOption) const { if (CRD->isUnion()) diff --git a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h index 87735808dff39..b016556cc2ab8 100644 --- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h +++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h @@ -116,7 +116,7 @@ class IdentifierNamingCheck final : public RenamerClangTidyCheck { StringRef TypeName, const NamedDecl *ND, const IdentifierNamingCheck::HungarianNotationOption &HNOption) const; - std::string getClassPrefix( + llvm::StringRef getClassPrefix( const CXXRecordDecl *CRD, const IdentifierNamingCheck::HungarianNotationOption &HNOption) const; diff --git a/clang-tools-extra/clangd/DumpAST.cpp b/clang-tools-extra/clangd/DumpAST.cpp index cd409a2b930ef..27e18680616be 100644 --- a/clang-tools-extra/clangd/DumpAST.cpp +++ b/clang-tools-extra/clangd/DumpAST.cpp @@ -128,7 +128,7 @@ class DumpVisitor : public RecursiveASTVisitor<DumpVisitor> { return "Qualified"; return TL.getType()->getTypeClassName(); } - std::string getKind(const TemplateArgumentLoc &TAL) { + llvm::StringRef getKind(const TemplateArgumentLoc &TAL) { switch (TAL.getArgument().getKind()) { #define TEMPLATE_ARGUMENT_KIND(X) \ case TemplateArgument::X: \ @@ -147,7 +147,7 @@ class DumpVisitor : public RecursiveASTVisitor<DumpVisitor> { } llvm_unreachable("Unhandled ArgKind enum"); } - std::string getKind(NestedNameSpecifierLoc NNSL) { + llvm::StringRef getKind(NestedNameSpecifierLoc NNSL) { switch (NNSL.getNestedNameSpecifier().getKind()) { case NestedNameSpecifier::Kind::Null: llvm_unreachable("unexpected null nested name specifier"); @@ -162,7 +162,7 @@ class DumpVisitor : public RecursiveASTVisitor<DumpVisitor> { } llvm_unreachable("Unhandled SpecifierKind enum"); } - std::string getKind(const CXXCtorInitializer *CCI) { + llvm::StringRef getKind(const CXXCtorInitializer *CCI) { if (CCI->isBaseInitializer()) return "BaseInitializer"; if (CCI->isDelegatingInitializer()) @@ -171,7 +171,7 @@ class DumpVisitor : public RecursiveASTVisitor<DumpVisitor> { return "MemberInitializer"; llvm_unreachable("Unhandled CXXCtorInitializer type"); } - std::string getKind(const TemplateName &TN) { + llvm::StringRef getKind(const TemplateName &TN) { switch (TN.getKind()) { #define TEMPLATE_KIND(X) \ case TemplateName::X: \ @@ -189,7 +189,7 @@ class DumpVisitor : public RecursiveASTVisitor<DumpVisitor> { } llvm_unreachable("Unhandled NameKind enum"); } - std::string getKind(const Attr *A) { + llvm::StringRef getKind(const Attr *A) { switch (A->getKind()) { #define ATTR(X) \ case attr::X: \ @@ -204,7 +204,7 @@ class DumpVisitor : public RecursiveASTVisitor<DumpVisitor> { // To avoid special cases in the API/UI, use public/private as the kind. return getAccessSpelling(CBS.getAccessSpecifier()).str(); } - std::string getKind(const ConceptReference *CR) { + llvm::StringRef getKind(const ConceptReference *CR) { // Again there are no variants here. // Kind is "Concept", role is "reference" return "Concept"; @@ -299,7 +299,7 @@ class DumpVisitor : public RecursiveASTVisitor<DumpVisitor> { std::string getDetail(const Attr *A) { return A->getAttrName() ? A->getNormalizedFullName() : A->getSpelling(); } - std::string getDetail(const CXXBaseSpecifier &CBS) { + llvm::StringRef getDetail(const CXXBaseSpecifier &CBS) { return CBS.isVirtual() ? "virtual" : ""; } std::string getDetail(const ConceptReference *CR) { @@ -317,9 +317,9 @@ class DumpVisitor : public RecursiveASTVisitor<DumpVisitor> { template <typename T> std::string getArcana(const T &N) { return dump([&](TextNodeDumper &D) { D.Visit(N); }); } - std::string getArcana(const NestedNameSpecifierLoc &NNS) { return ""; } - std::string getArcana(const TemplateName &NNS) { return ""; } - std::string getArcana(const CXXBaseSpecifier &CBS) { return ""; } + llvm::StringRef getArcana(const NestedNameSpecifierLoc &NNS) { return ""; } + llvm::StringRef getArcana(const TemplateName &NNS) { return ""; } + llvm::StringRef getArcana(const CXXBaseSpecifier &CBS) { return ""; } std::string getArcana(const TemplateArgumentLoc &TAL) { return dump([&](TextNodeDumper &D) { D.Visit(TAL.getArgument(), TAL.getSourceRange()); diff --git a/clang-tools-extra/clangd/Feature.cpp b/clang-tools-extra/clangd/Feature.cpp index ec707a33f656b..fbae381911b89 100644 --- a/clang-tools-extra/clangd/Feature.cpp +++ b/clang-tools-extra/clangd/Feature.cpp @@ -30,7 +30,7 @@ std::string platformString() { return PlatformString; } -std::string featureString() { +llvm::StringRef featureString() { return #if defined(_WIN32) "windows" diff --git a/clang-tools-extra/clangd/Feature.h b/clang-tools-extra/clangd/Feature.h index ba958fc49c020..7705a6b83a7d3 100644 --- a/clang-tools-extra/clangd/Feature.h +++ b/clang-tools-extra/clangd/Feature.h @@ -11,6 +11,7 @@ #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_FEATURE_H #define LLVM_CLANG_TOOLS_EXTRA_CLANGD_FEATURE_H +#include "llvm/ADT/StringRef.h" #include <string> // Export constants like CLANGD_BUILD_XPC @@ -28,7 +29,7 @@ std::string platformString(); // Returns a string describing the compile-time configuration. // e.g. mac+debug+asan+grpc -std::string featureString(); +llvm::StringRef featureString(); } // namespace clangd } // namespace clang diff --git a/clang-tools-extra/clangd/SymbolDocumentation.cpp b/clang-tools-extra/clangd/SymbolDocumentation.cpp index a50d7a565b1bc..928b287fd7647 100644 --- a/clang-tools-extra/clangd/SymbolDocumentation.cpp +++ b/clang-tools-extra/clangd/SymbolDocumentation.cpp @@ -15,12 +15,14 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/StringExtras.h" #include "llvm/ADT/StringRef.h" +#include "llvm/ADT/Twine.h" namespace clang { namespace clangd { namespace { -std::string commandMarkerAsString(comments::CommandMarkerKind CommandMarker) { +llvm::StringRef +commandMarkerAsString(comments::CommandMarkerKind CommandMarker) { switch (CommandMarker) { case comments::CommandMarkerKind::CMK_At: return "@"; @@ -33,7 +35,7 @@ std::string commandMarkerAsString(comments::CommandMarkerKind CommandMarker) { void commandToMarkup(markup::Paragraph &Out, StringRef Command, comments::CommandMarkerKind CommandMarker, StringRef Args) { - Out.appendBoldText(commandMarkerAsString(CommandMarker) + Command.str()); + Out.appendBoldText(((commandMarkerAsString(CommandMarker)) + Command).str()); Out.appendSpace(); if (!Args.empty()) Out.appendCode(Args.str()); _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
