[clang-tools-extra] [clang-tools-extra] Apply modernize-use-string-view to the code (PR #179514)
Zinovy Nis via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 3 20:18:32 PST 2026
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 <zinovy.nis at gmail.com>
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());
More information about the cfe-commits
mailing list