alexfh added inline comments.

================
Comment at: clang-tidy/readability/IdentifierNamingCheck.cpp:178
@@ +177,3 @@
+    if (NamingStyles[Typedef].isSet()) {
+      KindName = "typedef";
+      Style = NamingStyles[Typedef];
----------------
berenm wrote:
> alexfh wrote:
> > berenm wrote:
> > > alexfh wrote:
> > > > Would it be better to have these in a single array next to 
> > > > `StyleNames`? Also, this code could return a `StyleKind` (now 
> > > > `StyleConst`), and you would need to get the corresponding 
> > > > `NamingStyle` and `KindName` once.
> > > > 
> > > > This code would suddenly become much leaner.
> > > The problem is that sometimes, the current code falls back to a more 
> > > generic naming style, but the "kind name" is still trying to describe the 
> > > original declaration.
> > > 
> > > For example, if no style is defined for methods, then it will try to use 
> > > a more generic "function" style, but the warning will still be "invalid 
> > > case style for method xxx".
> > > 
> > > Maybe this is superfluous and I can drop it. It don't see many cases 
> > > anyway (my original code was covering more cases - too many - and it 
> > > seemed sensible at that time).
> > > The problem is that sometimes, the current code falls back to a more 
> > > generic naming style, but the "kind name" is still trying to describe the 
> > > original declaration.
> > 
> > I see. It might be possible to split the mapping of types to style kinds 
> > and handling missing styles. E.g. a function can return "Method" (which 
> > should be SK_Method according to [1], btw) and then a caller would check 
> > whether the corresponding `NamingStyle` is configured, and if needed fall 
> > back to a more generic category. WDYT?
> > 
> > 
> > [1] 
> > http://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly
> I think it would be difficult to map the declaration types to style kinds 
> without checking the styles that have been provided and falling back to 
> another style at the same time.
> 
> For example, a constexpr method is currently selecting the styles in this 
> preferred order :
> constexpr method > [public/protected/private] method > method > function.
> 
> The order is debatable, but we cannot have the //constexpr method// to 
> //public/protected/private method// fallback, if there is no style for 
> constexpr methods, without reading again the method declaration.
> 
> It might be OK that the warning message do not use the exact identifier kind 
> name, and one can even think it is better to have a warning message that 
> tells the user which style it used instead of which kind of identifier was 
> checked.
> we cannot have the constexpr method to public/protected/private method 
> fallback, if there is no style for 
> constexpr methods, without reading again the method declaration.

So the issue is caused by the fact that the categories are partially 
overlapping and don't form a hierarchy. Not sure whether this is convenient for 
the end-user and if it's a good model, but this can fit into the approach: the 
function can return an ordered list of `StyleKind`s that could then be looked 
up in the configured `NamingStyle`s. I don't insist on this specific 
implementation, but it might end up being more elegant solution.


http://reviews.llvm.org/D10933



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

Reply via email to