From 7e95bf224448fb4524245ff11127e2085b9bb39f Mon Sep 17 00:00:00 2001 From: Jakub Kuderski Date: Tue, 14 Oct 2025 10:23:32 -0400 Subject: [PATCH] [ADT] Mark StringSwitch Cases 6+ arguments as deprecated. NFC. Switch to the `.Cases({S0, S1, ...}, Value)` overload instead. --- llvm/include/llvm/ADT/StringSwitch.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/llvm/include/llvm/ADT/StringSwitch.h b/llvm/include/llvm/ADT/StringSwitch.h index 1bb07e39bcaa5..f7a220f111909 100644 --- a/llvm/include/llvm/ADT/StringSwitch.h +++ b/llvm/include/llvm/ADT/StringSwitch.h @@ -14,6 +14,7 @@ #define LLVM_ADT_STRINGSWITCH_H #include "llvm/ADT/StringRef.h" +#include "llvm/Support/Compiler.h" #include "llvm/Support/ErrorHandling.h" #include #include @@ -38,7 +39,7 @@ namespace llvm { /// .Case("green", Green) /// .Case("blue", Blue) /// .Case("indigo", Indigo) -/// .Cases("violet", "purple", Violet) +/// .Cases({"violet", "purple"}, Violet) /// .Default(UnknownColor); /// \endcode template @@ -107,24 +108,28 @@ class StringSwitch { return CasesImpl(Value, {S0, S1, S2, S3, S4}); } + [[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(Value, {S0, S1, S2, S3, S4, S5}); } + [[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(Value, {S0, S1, S2, S3, S4, S5, S6}); } + [[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(Value, {S0, S1, S2, S3, S4, S5, S6, S7}); } + [[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, @@ -132,6 +137,7 @@ class StringSwitch { return CasesImpl(Value, {S0, S1, S2, S3, S4, S5, S6, S7, S8}); } + [[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,