Skip to content

Commit 6bf2dc2

Browse files
committed
incorporate comments
1 parent 2d120c9 commit 6bf2dc2

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

llvm/lib/Support/StringExtras.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,18 +98,17 @@ std::string llvm::convertToSnakeFromCamelCase(StringRef input) {
9898

9999
std::string snakeCase;
100100
snakeCase.reserve(input.size());
101-
auto check = [&input](size_t j, std::function<bool(int)> check) {
102-
return j < input.size() ? check(input[j]) : false;
101+
auto check = [&input](size_t j, function_ref<bool(int)> predicate) {
102+
return j < input.size() && predicate(input[j]);
103103
};
104104
for (size_t i = 0; i < input.size(); ++i) {
105-
snakeCase.push_back(input[i]);
105+
snakeCase.push_back(tolower(input[i]));
106+
// Handles "runs" of capitals, such as in OPName -> op_name.
106107
if (check(i, isupper) && check(i + 1, isupper) && check(i + 2, islower))
107108
snakeCase.push_back('_');
108109
if ((check(i, islower) || check(i, isdigit)) && check(i + 1, isupper))
109110
snakeCase.push_back('_');
110111
}
111-
std::transform(snakeCase.begin(), snakeCase.end(), snakeCase.begin(),
112-
[](unsigned char c) { return std::tolower(c); });
113112
return snakeCase;
114113
}
115114

llvm/unittests/ADT/StringExtrasTest.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ TEST(StringExtrasTest, ConvertToSnakeFromCamelCase) {
186186
testConvertToSnakeCase("opName", "op_name");
187187
testConvertToSnakeCase("OPName", "op_name");
188188
testConvertToSnakeCase("Intel_OCL_BI", "intel_ocl_bi");
189+
testConvertToSnakeCase("I32Attr", "i32_attr");
189190
testConvertToSnakeCase("opNAME", "op_name");
190191
testConvertToSnakeCase("opNAMe", "op_na_me");
191192
testConvertToSnakeCase("opnameE", "opname_e");

0 commit comments

Comments
 (0)