LegalizeAdulthood marked 16 inline comments as done.
LegalizeAdulthood added inline comments.


================
Comment at: clang-tools-extra/docs/clang-tidy/Contributing.rst:301-317
+The Transformer library allows you to write a check that transforms source 
code by
+expressing the transformation as a ``RewriteRule``.  The Transformer library 
provides
+functions for composing edits to source code to create rewrite rules.  Unless 
you need
+to perform low-level source location manipulation, you may want to consider 
writing your
+check with the Transformer library.  The `Clang Transformer Tutorial
+<https://clang.llvm.org/docs/ClangTransformerTutorial.html>`_ describes the 
Transformer
+library in detail.
----------------
aaron.ballman wrote:
> LegalizeAdulthood wrote:
> > aaron.ballman wrote:
> > > I think this documentation is really good, but at the same time, I don't 
> > > think we have any clang-tidy checks that make use of the transformer 
> > > library currently. I don't see a reason we shouldn't document this more 
> > > prominently, but I'd like to hear from @ymandel and/or @alexfh whether 
> > > they think the library is ready for officially supported use within 
> > > clang-tidy and whether we need any sort of broader community discussion. 
> > > (I don't see any issues here, just crossing t's and dotting i's in terms 
> > > of process.)
> > There are at least two checks that use the Transformer library currently.
> The only mentions of `TransformerClangTidyCheck.h` that I can find are in 
> `ClangTransformerTutorial.rst` and `clang-formatted-files.txt`, so if there 
> are other checks using this functionality, they're not following what's 
> documented here.
`CleanupCtadCheck`, `StringFindStrContainsCheck`, and `StringviewNullptrCheck` 
all derive from `TransformerClangTidyCheck`.

The first two are in the `abseil` module and the last is in the `bugprone` 
module.


================
Comment at: clang-tools-extra/docs/clang-tidy/Contributing.rst:360-361
+
+Private custom matchers are a good example of auxiliary support code for your 
check
+that is best tested with a unit test.  It will be easier to test your matchers 
or
+other support classes by writing a unit test than by writing a ``FileCheck`` 
integration
----------------
aaron.ballman wrote:
> LegalizeAdulthood wrote:
> > aaron.ballman wrote:
> > > Do we have any private matchers that are unit tested? My understanding 
> > > was that the public matchers were all unit tested, but that the matchers 
> > > which are local to a check are not exposed via a header file, and so 
> > > they're not really unit testable.
> > I just did this for my switch/case/label update to simplify boolean 
> > expressions.
> > You do have to expose them via a header file, which isn't a big deal.
> > You do have to expose them via a header file, which isn't a big deal.
> 
> Then they become part of the public interface for the check and anything 
> which includes the header file has to do heavy template instantiation work 
> that contributes more symbols to the built library. In general, we don't 
> expect private matchers to be unit tested -- we expect the tests for the 
> check to exercise the matcher appropriately.
Look at my review to see how I handled it; the matchers are in a seperate
header file, in my case `SimplifyBooleanExprMatchers.h` and aren't exposed
to consumers of the check.  The matchers header is only included by the
implementation and the matcher tests.



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

https://reviews.llvm.org/D117939

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

Reply via email to