llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-tidy @llvm/pr-subscribers-clang-tools-extra Author: Victor Chernyakin (localspook) <details> <summary>Changes</summary> `llvm::split` is compatible with all containers (not just `SmallVector`), doesn't use out parameters, and is lazy, making it the more ergonomic option in basically all scenarios. --- Full diff: https://github.com/llvm/llvm-project/pull/174129.diff 9 Files Affected: - (modified) clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp (+2-3) - (modified) clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp (+2-3) - (modified) clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp (+7-14) - (modified) clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp (+2-3) - (modified) clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp (+2-3) - (modified) clang-tools-extra/clang-tidy/openmp/ExceptionEscapeCheck.cpp (+2-6) - (modified) clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp (+2-9) - (modified) clang-tools-extra/clang-tidy/utils/OptionsUtils.cpp (+6-11) - (modified) clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp (+1-3) ``````````diff diff --git a/clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp b/clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp index c42f069b487c3..173aa6900c099 100644 --- a/clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp +++ b/clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp @@ -18,9 +18,8 @@ namespace clang::tidy::android { ComparisonInTempFailureRetryCheck::ComparisonInTempFailureRetryCheck( StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), - RawRetryList(Options.get("RetryMacros", "TEMP_FAILURE_RETRY")) { - RawRetryList.split(RetryMacros, ",", -1, false); -} + RawRetryList(Options.get("RetryMacros", "TEMP_FAILURE_RETRY")), + RetryMacros(llvm::split(RawRetryList, ',')) {} void ComparisonInTempFailureRetryCheck::storeOptions( ClangTidyOptions::OptionMap &Opts) { diff --git a/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp index 632f536a5b20b..a958d3350514e 100644 --- a/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp @@ -90,9 +90,8 @@ AssertSideEffectCheck::AssertSideEffectCheck(StringRef Name, CheckFunctionCalls(Options.get("CheckFunctionCalls", false)), RawAssertList(Options.get("AssertMacros", "assert,NSAssert,NSCAssert")), IgnoredFunctions(utils::options::parseListPair( - "__builtin_expect;", Options.get("IgnoredFunctions", ""))) { - RawAssertList.split(AssertMacros, ",", -1, false); -} + "__builtin_expect;", Options.get("IgnoredFunctions", ""))), + AssertMacros(llvm::split(RawAssertList, ',')) {} // The options are explained in AssertSideEffectCheck.h. void AssertSideEffectCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { diff --git a/clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp index 1cfb1511fa94e..572ce5d9ea5f6 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp @@ -42,20 +42,13 @@ ExceptionEscapeCheck::ExceptionEscapeCheck(StringRef Name, CheckDestructors(Options.get("CheckDestructors", true)), CheckMoveMemberFunctions(Options.get("CheckMoveMemberFunctions", true)), CheckMain(Options.get("CheckMain", true)), - CheckNothrowFunctions(Options.get("CheckNothrowFunctions", true)) { - llvm::SmallVector<StringRef, 8> FunctionsThatShouldNotThrowVec, - IgnoredExceptionsVec, CheckedSwapFunctionsVec; - RawFunctionsThatShouldNotThrow.split(FunctionsThatShouldNotThrowVec, ",", -1, - false); - FunctionsThatShouldNotThrow.insert_range(FunctionsThatShouldNotThrowVec); - - RawCheckedSwapFunctions.split(CheckedSwapFunctionsVec, ",", -1, false); - CheckedSwapFunctions.insert_range(CheckedSwapFunctionsVec); - - llvm::StringSet<> IgnoredExceptions; - RawIgnoredExceptions.split(IgnoredExceptionsVec, ",", -1, false); - IgnoredExceptions.insert_range(IgnoredExceptionsVec); - Tracer.ignoreExceptions(std::move(IgnoredExceptions)); + CheckNothrowFunctions(Options.get("CheckNothrowFunctions", true)), + FunctionsThatShouldNotThrow( + llvm::from_range, llvm::split(RawFunctionsThatShouldNotThrow, ',')), + CheckedSwapFunctions(llvm::from_range, + llvm::split(RawCheckedSwapFunctions, ',')) { + Tracer.ignoreExceptions( + {llvm::from_range, llvm::split(RawIgnoredExceptions, ',')}); Tracer.ignoreBadAlloc(true); } diff --git a/clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp index 3e32e9b8a704c..de614d0bedc1c 100644 --- a/clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp @@ -19,9 +19,8 @@ RandomGeneratorSeedCheck::RandomGeneratorSeedCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), RawDisallowedSeedTypes( - Options.get("DisallowedSeedTypes", "time_t,std::time_t")) { - RawDisallowedSeedTypes.split(DisallowedSeedTypes, ','); -} + Options.get("DisallowedSeedTypes", "time_t,std::time_t")), + DisallowedSeedTypes(llvm::split(RawDisallowedSeedTypes, ',')) {} void RandomGeneratorSeedCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { Options.store(Opts, "DisallowedSeedTypes", RawDisallowedSeedTypes); diff --git a/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp index cc371a1ab55a7..96bf36c96205d 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp @@ -495,9 +495,8 @@ UseNullptrCheck::UseNullptrCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), NullMacrosStr(Options.get("NullMacros", "NULL")), IgnoredTypes(utils::options::parseStringList(Options.get( - "IgnoredTypes", "_CmpUnspecifiedParam;^std::__cmp_cat::__unspec"))) { - NullMacrosStr.split(NullMacros, ","); -} + "IgnoredTypes", "_CmpUnspecifiedParam;^std::__cmp_cat::__unspec"))), + NullMacros(llvm::split(NullMacrosStr, ',')) {} void UseNullptrCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { Options.store(Opts, "NullMacros", NullMacrosStr); diff --git a/clang-tools-extra/clang-tidy/openmp/ExceptionEscapeCheck.cpp b/clang-tools-extra/clang-tidy/openmp/ExceptionEscapeCheck.cpp index 3801fc0f420e5..a0e3ee060f06f 100644 --- a/clang-tools-extra/clang-tidy/openmp/ExceptionEscapeCheck.cpp +++ b/clang-tools-extra/clang-tidy/openmp/ExceptionEscapeCheck.cpp @@ -20,13 +20,9 @@ ExceptionEscapeCheck::ExceptionEscapeCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), RawIgnoredExceptions(Options.get("IgnoredExceptions", "")) { - llvm::SmallVector<StringRef, 8> IgnoredExceptionsVec; - llvm::StringSet<> IgnoredExceptions; - RawIgnoredExceptions.split(IgnoredExceptionsVec, ",", -1, false); - llvm::transform(IgnoredExceptionsVec, IgnoredExceptionsVec.begin(), - [](StringRef S) { return S.trim(); }); - IgnoredExceptions.insert_range(IgnoredExceptionsVec); + for (const StringRef S : llvm::split(RawIgnoredExceptions, ',')) + IgnoredExceptions.insert(S.trim()); Tracer.ignoreExceptions(std::move(IgnoredExceptions)); Tracer.ignoreBadAlloc(true); } diff --git a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp index 9cee6ddb93d4d..948d8dccfc232 100644 --- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp @@ -660,13 +660,9 @@ std::string IdentifierNamingCheck::HungarianNotation::getEnumPrefix( static const llvm::Regex Splitter( "([a-z0-9A-Z]*)(_+)|([A-Z]?[a-z0-9]+)([A-Z]|$)|([A-Z]+)([A-Z]|$)"); - const StringRef EnumName(Name); - SmallVector<StringRef, 8> Substrs; - EnumName.split(Substrs, "_", -1, false); - SmallVector<StringRef, 8> Words; SmallVector<StringRef, 8> Groups; - for (auto Substr : Substrs) { + for (StringRef Substr : llvm::split(Name, '_')) { while (!Substr.empty()) { Groups.clear(); if (!Splitter.match(Substr, &Groups)) @@ -910,12 +906,9 @@ std::string IdentifierNamingCheck::fixupWithCase( static const llvm::Regex Splitter( "([a-z0-9A-Z]*)(_+)|([A-Z]?[a-z0-9]+)([A-Z]|$)|([A-Z]+)([A-Z]|$)"); - SmallVector<StringRef, 8> Substrs; - Name.split(Substrs, "_", -1, false); - SmallVector<StringRef, 8> Words; SmallVector<StringRef, 8> Groups; - for (auto Substr : Substrs) { + for (auto Substr : llvm::split(Name, '_')) { while (!Substr.empty()) { Groups.clear(); if (!Splitter.match(Substr, &Groups)) diff --git a/clang-tools-extra/clang-tidy/utils/OptionsUtils.cpp b/clang-tools-extra/clang-tidy/utils/OptionsUtils.cpp index ad536b6290ca0..61a0448cf58c4 100644 --- a/clang-tools-extra/clang-tidy/utils/OptionsUtils.cpp +++ b/clang-tools-extra/clang-tidy/utils/OptionsUtils.cpp @@ -11,7 +11,7 @@ namespace clang::tidy::utils::options { -static constexpr char StringsDelimiter[] = ";"; +static constexpr char StringsDelimiter = ';'; std::vector<StringRef> parseStringList(StringRef Option) { Option = Option.trim().trim(StringsDelimiter); @@ -19,16 +19,11 @@ std::vector<StringRef> parseStringList(StringRef Option) { return {}; std::vector<StringRef> Result; Result.reserve(Option.count(StringsDelimiter) + 1); - StringRef Cur; - while (std::tie(Cur, Option) = Option.split(StringsDelimiter), - !Option.empty()) { - Cur = Cur.trim(); - if (!Cur.empty()) - Result.push_back(Cur); + for (StringRef SubStr : llvm::split(Option, StringsDelimiter)) { + SubStr = SubStr.trim(); + if (!SubStr.empty()) + Result.push_back(SubStr); } - Cur = Cur.trim(); - if (!Cur.empty()) - Result.push_back(Cur); return Result; } @@ -57,7 +52,7 @@ std::vector<StringRef> parseListPair(StringRef L, StringRef R) { } std::string serializeStringList(ArrayRef<StringRef> Strings) { - return llvm::join(Strings, StringsDelimiter); + return llvm::join(Strings, {&StringsDelimiter, 1}); } } // namespace clang::tidy::utils::options diff --git a/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp b/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp index 064e04c932de8..496ded3d74536 100644 --- a/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp +++ b/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp @@ -102,9 +102,7 @@ template <int Indirections> void RunTest(StringRef Snippet) { )"; std::string Code = (CommonCode + Snippet).str(); - - llvm::SmallVector<StringRef, 1> Parts; - StringRef(Code).split(Parts, "/*const*/"); + llvm::SmallVector<StringRef, 1> Parts(llvm::split(Code, "/*const*/")); EXPECT_EQ(Code, runCheckOnCode<ConstReferenceDeclRefExprsTransform<Indirections>>( `````````` </details> https://github.com/llvm/llvm-project/pull/174129 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
