mwyman added inline comments.

================
Comment at: clang-tools-extra/clang-tidy/objc/DeallocInCategoryCheck.cpp:34
+
+void DeallocInCategoryCheck::check(const MatchFinder::MatchResult &Result) {
+  const auto *MatchedDecl = Result.Nodes.getNodeAs<ObjCMethodDecl>("dealloc");
----------------
stephanemoore wrote:
> What do you think of making a fixit that deletes the `-dealloc` 
> implementation?
I would assume any non-empty -dealloc has some code the developer would want to 
migrate elsewhere rather than just delete, so I would prefer not to offer to 
outright delete it. Might be good for empty -dealloc methods or ones that just 
call super (pre-ARC, bah humbug!)—but I'd prefer to take that up in a follow-up 
change.


================
Comment at: clang-tools-extra/clang-tidy/objc/DeallocInCategoryCheck.cpp:37-38
+  if (MatchedDecl) {
+    diag(MatchedDecl->getLocation(),
+         "method -dealloc should not be implemented in a category");
+  }
----------------
stephanemoore wrote:
> What do you think of binding the category implementation declaration and 
> including that in the diagnostic message?
> ```
>   Finder->addMatcher(objcMethodDecl(isInstanceMethod(), hasName("dealloc"),
>                                     
> hasDeclContext(objcCategoryImplDecl().bind("impl")))
>                          .bind("dealloc"),
>                      this);
> 
>   // ...
> 
>   const auto *CID = Result.Nodes.getNodeAs<ObjCCategoryImplDecl>("impl");
>   diag(MatchedDecl->getLocation(),
>        "category %0 should not implement -dealloc") << CID;
> ```
> 
> (admittedly, I don't recall off the top of my head how `ObjCCategoryImplDecl` 
> renders in diagnostic messages so some additional tuning could be warranted)
I think it's a great idea! 🙌

Done!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D72876



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

Reply via email to