labath added a comment.
In D61231#1481804 <https://reviews.llvm.org/D61231#1481804>, @teemperor wrote: > Yeah, I'm also just like 60% confident that this more readable/expressive. I'm about 70% against this ( :P ), and the main reason for that opinion is that there is nothing like this in llvm, and if llvm was able to get away without it, then I don't see why shouldn't we be able to do it too. The way these kinds of things are usually done in llvm is via the `StringSwitch` class, and it seems to me that `StringSwitch` could be directly used in at least half of the motivating use cases you show here (and in the rest, it could be used after a mild code refactor, which that code needs anyway). (And yeah, I am aware that going through StringSwitch will mean we lose the fast string comparison that ConstString was meant to provide, but I am sure that this will have no impact on the overall performance here.) ================ Comment at: lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp:133-139 + if (name.oneOf("ptr", "pointer")) return 0; - if (name == "del" || name == "deleter") + if (name.oneOf("del", "deleter")) return 1; - if (name == "obj" || name == "object" || name == "$$dereference$$") + if (name.oneOf("obj", "object", "$$dereference$$")) return 2; return UINT32_MAX; ---------------- This is a prime example for a `StringSwitch`, which is how these kinds of things are usually done in llvm. ``` return StringSwitch<size_t>(name.GetStringRef()).Cases("ptr, "pointer", 0).Cases("del", "deleter", 1).Cases("obj", "object", "$$dereference$$", 2).Default(UINT32_MAX); ``` (+ running clang-format over that) ================ Comment at: lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp:1039-1082 + if (type_hint.oneOf(g_CFBag, g_CFBinaryHeap)) { prefix = "@"; return true; } if (type_hint == g_NSNumberChar) { prefix = "(char)"; ---------------- Using StringSwitch would make this code around three times shorter. Repository: rLLDB LLDB CHANGES SINCE LAST ACTION https://reviews.llvm.org/D61231/new/ https://reviews.llvm.org/D61231 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits