[llvm] f441746 - [ADT] Remove deprecated variadic `StringSwitch::Cases` and `CasesLower` (#185191)
via llvm-commits
llvm-commits at lists.llvm.org
Sat Mar 7 07:36:27 PST 2026
Author: Jakub Kuderski
Date: 2026-03-07T15:36:22Z
New Revision: f441746a7b3986d2fcb1f973745b53e33e6c68e4
URL: https://github.com/llvm/llvm-project/commit/f441746a7b3986d2fcb1f973745b53e33e6c68e4
DIFF: https://github.com/llvm/llvm-project/commit/f441746a7b3986d2fcb1f973745b53e33e6c68e4.diff
LOG: [ADT] Remove deprecated variadic `StringSwitch::Cases` and `CasesLower` (#185191)
These overloads have been deprecated since October 2025.
Use the `std::initializer_list` overload instead: `.Cases({"a", "b"},
Value)`.
For more context, see https://github.com/llvm/llvm-project/pull/163117.
Assisted-by: claude
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Added:
Modified:
llvm/include/llvm/ADT/StringSwitch.h
Removed:
################################################################################
diff --git a/llvm/include/llvm/ADT/StringSwitch.h b/llvm/include/llvm/ADT/StringSwitch.h
index 5da6076c27390..b144d51364855 100644
--- a/llvm/include/llvm/ADT/StringSwitch.h
+++ b/llvm/include/llvm/ADT/StringSwitch.h
@@ -87,67 +87,11 @@ class StringSwitch {
StringSwitch &Cases(std::initializer_list<StringLiteral> CaseStrings,
T Value) {
- return CasesImpl(CaseStrings, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &Cases(StringLiteral S0, StringLiteral S1, T Value) {
- return CasesImpl({S0, S1}, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
- T Value) {
- return CasesImpl({S0, S1, S2}, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
- StringLiteral S3, T Value) {
- return CasesImpl({S0, S1, S2, S3}, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
- StringLiteral S3, StringLiteral S4, T Value) {
- return CasesImpl({S0, S1, S2, S3, S4}, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
- StringLiteral S3, StringLiteral S4, StringLiteral S5,
- T Value) {
- return CasesImpl({S0, S1, S2, S3, S4, S5}, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
- StringLiteral S3, StringLiteral S4, StringLiteral S5,
- StringLiteral S6, T Value) {
- return CasesImpl({S0, S1, S2, S3, S4, S5, S6}, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
- StringLiteral S3, StringLiteral S4, StringLiteral S5,
- StringLiteral S6, StringLiteral S7, T Value) {
- return CasesImpl({S0, S1, S2, S3, S4, S5, S6, S7}, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
- StringLiteral S3, StringLiteral S4, StringLiteral S5,
- StringLiteral S6, StringLiteral S7, StringLiteral S8,
- T Value) {
- return CasesImpl({S0, S1, S2, S3, S4, S5, S6, S7, S8}, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &Cases(StringLiteral S0, StringLiteral S1, StringLiteral S2,
- StringLiteral S3, StringLiteral S4, StringLiteral S5,
- StringLiteral S6, StringLiteral S7, StringLiteral S8,
- StringLiteral S9, T Value) {
- return CasesImpl({S0, S1, S2, S3, S4, S5, S6, S7, S8, S9}, Value);
+ // Stop matching after the string is found.
+ for (StringLiteral S : CaseStrings)
+ if (CaseImpl(S, Value))
+ break;
+ return *this;
}
// Case-insensitive case matchers.
@@ -172,30 +116,11 @@ class StringSwitch {
StringSwitch &CasesLower(std::initializer_list<StringLiteral> CaseStrings,
T Value) {
- return CasesLowerImpl(CaseStrings, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &CasesLower(StringLiteral S0, StringLiteral S1, T Value) {
- return CasesLowerImpl({S0, S1}, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &CasesLower(StringLiteral S0, StringLiteral S1, StringLiteral S2,
- T Value) {
- return CasesLowerImpl({S0, S1, S2}, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &CasesLower(StringLiteral S0, StringLiteral S1, StringLiteral S2,
- StringLiteral S3, T Value) {
- return CasesLowerImpl({S0, S1, S2, S3}, Value);
- }
-
- [[deprecated("Pass cases in std::initializer_list instead")]]
- StringSwitch &CasesLower(StringLiteral S0, StringLiteral S1, StringLiteral S2,
- StringLiteral S3, StringLiteral S4, T Value) {
- return CasesLowerImpl({S0, S1, S2, S3, S4}, Value);
+ // Stop matching after the string is found.
+ for (StringLiteral S : CaseStrings)
+ if (CaseLowerImpl(S, Value))
+ break;
+ return *this;
}
[[nodiscard]] R Default(T Value) {
@@ -240,24 +165,6 @@ class StringSwitch {
Result = std::move(Value);
return true;
}
-
- StringSwitch &CasesImpl(std::initializer_list<StringLiteral> Cases,
- T &Value) {
- // Stop matching after the string is found.
- for (StringLiteral S : Cases)
- if (CaseImpl(S, Value))
- break;
- return *this;
- }
-
- StringSwitch &CasesLowerImpl(std::initializer_list<StringLiteral> Cases,
- T &Value) {
- // Stop matching after the string is found.
- for (StringLiteral S : Cases)
- if (CaseLowerImpl(S, Value))
- break;
- return *this;
- }
};
} // end namespace llvm
More information about the llvm-commits
mailing list