tdl-g added a comment.

Interesting, in all three of those cases, it's reasonable to replace the entire 
expression, thus eliminating the macro.  None of those "tear" the macro; if we 
had a case like

#define FOO(a,b,c,d) ((a).find(b) == std::string::npos ? (c) : (d))
FOO("helo", "x", 5, 6);

I guess in that case we'd want to suppress an edit change, since it would have 
to modify the macro to make the change.  But I guess all the existing test 
cases are actually safe to convert with the macro.

Do you want to remove the existing macro cases and add the "tearing" one above 
to confirm that it doesn't propose an edit?

In D82126#2103934 <https://reviews.llvm.org/D82126#2103934>, @ymandel wrote:

> Tests show that this breaks the test for the clang tidy 
> `abseil-string-find-str-contains`.  Curious if this is a desirable change in 
> behavior (in which case I'll update your test file) or the wrong behavior:
>
> https://github.com/llvm/llvm-project/blob/master/clang-tools-extra/test/clang-tidy/checkers/abseil-string-find-str-contains.cpp#L246-L252
>
>   void no_macros() {
>      std::string s;
>   -  COMPARE_MACRO(s.find("a"), std::string::npos);
>   -  FIND_MACRO(s, "a") == std::string::npos;
>   -  FIND_COMPARE_MACRO(s, "a", std::string::npos);
>   +  !absl::StrContains(s, "a");
>   +  !absl::StrContains(s, "a");
>   +  !absl::StrContains(s, "a");
>    }
>





Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D82126/new/

https://reviews.llvm.org/D82126



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to