0x8000-0000 marked an inline comment as done.
0x8000-0000 added inline comments.


================
Comment at: 
clang-tools-extra/clang-tidy/readability/ReadabilityTidyModule.cpp:136
+    CheckFactories.registerCheck<VariableLengthCheck>(
+        "readability-variable-length");
   }
----------------
aaron.ballman wrote:
> 0x8000-0000 wrote:
> > aaron.ballman wrote:
> > > Is there a reason this should be restricted to variables? For example, 
> > > wouldn't the same functionality be useful for type names, or dare I say 
> > > it, even macro names? I'm wondering if this should be 
> > > `readability-identifier-length` to be more generic.
> > I consider those to be in separate namespaces. I suppose we could have a 
> > single checker with multiple rules, but on the other hand I don't want to 
> > combine too many things into one, just because they share the "compare 
> > length" dimension.
> I see where you're coming from, but I come down on the other side. Running a 
> check is expensive (especially on Windows where process creation can be 
> really slow), so having multiple checks that traverse the AST gives worse 
> performance than having a single check that only traverses the AST once. I'd 
> rather see related functionality grouped together and use options to control 
> behavior when it's a natural fit to do so.
> 
> I should note that I don't mean *you* have to implement this other 
> functionality (as part of this patch or otherwise). Just that I think we 
> should leave the check name ambiguous enough that we could grow it to do that 
> work in the future.
> 
> WDYT?
Right - that's a good point. But I'm wondering the other way; maybe the bigger 
check will subsume this one, and this one will become just an alias for the 
bigger check?

So I'm -0.1 on using the "bigger name" for the limited functionality, but if 
one more vote comes in saying to go readability-identifier-length I'll rename 
this (and add explicitly the scope limits in the documentation.)


================
Comment at: clang-tools-extra/clang-tidy/readability/VariableLengthCheck.cpp:20
+
+const unsigned DefaultMinimumVariableNameLength = 3;
+const unsigned DefaultMinimumLoopCounterNameLength = 2;
----------------
aaron.ballman wrote:
> 0x8000-0000 wrote:
> > aaron.ballman wrote:
> > > Should it be possible to enforce parameters differently than local 
> > > variables? (It seems a bit odd that we'd allow you to specify exception 
> > > variable length separate from loops but not function parameters separate 
> > > from locals.)
> > Exceptions and Loops historically are "throw-away" / "don't care" / 
> > "one-off" variables. Parameter names are names, and they are the interface 
> > between the outside of the routine and the processing inside; other than 
> > historical, I don't see good arguments (sic) to allow single-letter 
> > parameter names.
> > 
> > Note that this check will be quite noisy on a legacy code base, and people 
> > will find little reason to invest the work to remove the warnings. But if 
> > somebody starts something new and want to enforce some quality attributes, 
> > it is the right tool at the right time. There will be new projects starting 
> > in 2021 and 2022 that could benefit from this, I hope.
> > Exceptions and Loops historically are "throw-away" / "don't care" / 
> > "one-off" variables. Parameter names are names, and they are the interface 
> > between the outside of the routine and the processing inside; other than 
> > historical, I don't see good arguments (sic) to allow single-letter 
> > parameter names.
> 
> I largely agree with you, but there are definitely cases where single-letter 
> parameter names are extremely common. For example, coordinates are often `x`, 
> `y`, and `z`, colors are often `r`, `g`, and `b` (among many others), and 
> physics applications often do things like `f = m * a` with their variables. 
> Also, there are cases where the parameter names are often not super 
> meaningful, like with functions `min` and `max` so the parameter names may be 
> quite short.
Indeed - I have changed the code to meet this capability; now parameters are 
controlled independently of the regular variables.


================
Comment at: 
clang-tools-extra/test/clang-tidy/checkers/readability-variable-length.cpp:44
+
+void longEnoughVariableNames(int n) // argument 'n' ignored by configuration
+{
----------------
aaron.ballman wrote:
> What in the configuration causes `n` to be ignored?
It is ignored by the default configuration. Search for 
"DefaultIgnoredParameterNames" above.


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

https://reviews.llvm.org/D97753

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

Reply via email to