================
@@ -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

Reply via email to