================
@@ -142,37 +142,48 @@ getCommentsBeforeLoc(ASTContext *Ctx, SourceLocation Loc)
{
return Comments;
}
-static bool isLikelyTypo(llvm::ArrayRef<ParmVarDecl *> Params,
- StringRef ArgName, unsigned ArgIndex) {
- const std::string ArgNameLowerStr = ArgName.lower();
- const StringRef ArgNameLower = ArgNameLowerStr;
+static llvm::SmallString<64> getLowercasedString(StringRef Name) {
+ llvm::SmallString<64> Result;
+ Result.reserve(Name.size());
+ for (const char C : Name)
+ Result.push_back(llvm::toLower(C));
+ return Result;
+}
+
+template <typename NamedDeclRange>
+static bool isLikelyTypo(const NamedDeclRange &Candidates, StringRef ArgName,
+ StringRef TargetName) {
+ const llvm::SmallString<64> ArgNameLower = getLowercasedString(ArgName);
+ const StringRef ArgNameLowerRef = StringRef(ArgNameLower);
// The threshold is arbitrary.
const unsigned UpperBound = ((ArgName.size() + 2) / 3) + 1;
- const unsigned ThisED = ArgNameLower.edit_distance(
- Params[ArgIndex]->getIdentifier()->getName().lower(),
- /*AllowReplacements=*/true, UpperBound);
+ const llvm::SmallString<64> TargetNameLower =
getLowercasedString(TargetName);
+ const unsigned ThisED =
+ ArgNameLowerRef.edit_distance(StringRef(TargetNameLower),
+ /*AllowReplacements=*/true, UpperBound);
----------------
zwuis wrote:
```diff
-edit_distance(StringRef(TargetNameLower), /*AllowReplacements=*/true,
UpperBound);
+edit_distance(TargetNameLower, /*AllowReplacements=*/true, UpperBound);
```
It seems that implicit conversions here will not cause any bugs.
Ditto elsewhere.
https://github.com/llvm/llvm-project/pull/172521
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits