https://github.com/Michael137 created https://github.com/llvm/llvm-project/pull/173012
Now that the `llvm::StringRef::consume_front(char)` exists, lets use it to replace the `consumeChar` helper. Drive-by: * Also use the overload where we previously had to pass a single character as a string literal. >From eb9db2a96d7832942f9832807d02db87ac9a41c8 Mon Sep 17 00:00:00 2001 From: Michael Buch <[email protected]> Date: Fri, 19 Dec 2025 15:00:58 +0000 Subject: [PATCH] [lldb][ObjC][NFC] Use llvm::StringRef::consume_front(char) where possible Now that the `llvm::StringRef::consume_front(char)` exists, lets use it to replace the `consumeChar` helper. Drive-by: * Also use the overload where we previously had to pass a single character as a string literal. --- .../AppleObjCTypeEncodingParser.cpp | 27 +++++++------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp index e8908393e7ace..d328cbb830828 100644 --- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp +++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp @@ -29,15 +29,6 @@ static char popChar(llvm::StringRef &str) { return c; } -static bool consumeChar(llvm::StringRef &str, char c) { - if (!str.starts_with(c)) - return false; - - str = str.drop_front(); - - return true; -} - using namespace lldb_private; AppleObjCTypeEncodingParser::AppleObjCTypeEncodingParser( @@ -93,7 +84,7 @@ AppleObjCTypeEncodingParser::ReadStructElement(TypeSystemClang &ast_ctx, llvm::StringRef &type, bool for_expression) { StructElement retval; - if (type.consume_front("\"")) { + if (type.consume_front('"')) { if (auto maybe_name = ReadQuotedString(type)) retval.name = *maybe_name; else @@ -120,7 +111,7 @@ clang::QualType AppleObjCTypeEncodingParser::BuildUnion( clang::QualType AppleObjCTypeEncodingParser::BuildAggregate( TypeSystemClang &ast_ctx, llvm::StringRef &type, bool for_expression, char opener, char closer, uint32_t kind) { - if (!consumeChar(type, opener)) + if (!type.consume_front(opener)) return clang::QualType(); std::string name(ReadStructName(type)); @@ -131,12 +122,12 @@ clang::QualType AppleObjCTypeEncodingParser::BuildAggregate( const bool is_templated = name.find('<') != std::string::npos; - if (!type.consume_front("=")) + if (!type.consume_front('=')) return clang::QualType(); bool in_union = true; std::vector<StructElement> elements; while (in_union && !type.empty()) { - if (consumeChar(type, closer)) { + if (type.consume_front(closer)) { in_union = false; break; } else { @@ -178,12 +169,12 @@ clang::QualType AppleObjCTypeEncodingParser::BuildAggregate( clang::QualType AppleObjCTypeEncodingParser::BuildArray( TypeSystemClang &ast_ctx, llvm::StringRef &type, bool for_expression) { - if (!consumeChar(type, _C_ARY_B)) + if (!type.consume_front(_C_ARY_B)) return clang::QualType(); uint32_t size = ReadNumber(type); clang::QualType element_type(BuildType(ast_ctx, type, for_expression)); - if (!consumeChar(type, _C_ARY_E)) + if (!type.consume_front(_C_ARY_E)) return clang::QualType(); CompilerType array_type(ast_ctx.CreateArrayType( @@ -200,14 +191,14 @@ clang::QualType AppleObjCTypeEncodingParser::BuildArray( clang::QualType AppleObjCTypeEncodingParser::BuildObjCObjectPointerType( TypeSystemClang &clang_ast_ctx, llvm::StringRef &type, bool for_expression) { - if (!consumeChar(type, _C_ID)) + if (!type.consume_front(_C_ID)) return clang::QualType(); clang::ASTContext &ast_ctx = clang_ast_ctx.getASTContext(); std::string name; - if (type.consume_front("\"")) { + if (type.consume_front('"')) { // We have to be careful here. We're used to seeing // @"NSString" // but in records it is possible that the string following an @ is the name @@ -372,7 +363,7 @@ clang::QualType AppleObjCTypeEncodingParser::BuildType( return ast_ctx.getConstType(target_type); } case _C_PTR: { - if (!for_expression && consumeChar(type, _C_UNDEF)) { + if (!for_expression && type.consume_front(_C_UNDEF)) { // if we are not supporting the concept of unknownAny, but what is being // created here is an unknownAny*, then we can just get away with a void* // this is theoretically wrong (in the same sense as 'theoretically _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
