dblaikie added a comment.

In D82617#2119394 <https://reviews.llvm.org/D82617#2119394>, @sammccall wrote:

> Abandoning, we'll do this in clangd or find an acceptable way to silence it 
> (see D82736 <https://reviews.llvm.org/D82736>).
>
> In D82617#2119144 <https://reviews.llvm.org/D82617#2119144>, @dblaikie wrote:
>
> > In D82617#2119138 <https://reviews.llvm.org/D82617#2119138>, @sammccall 
> > wrote:
> >
> > > > Guess perhaps a different question: Why don't you want this for clangd? 
> > > > Does it make the codebase better by not adhering to this particular 
> > > > warning?
> > >
> > > Yes, exactly. (Sorry if this wasn't explicit).
> >
> >
> > Sorry - poor phrasing on my part. Seems we disagree on this - I think it's 
> > probably a good thing to adhere to, you don't.
>
>
> Yeah, I think we disagree, and that's OK! We need to stop emitting a warning, 
> and apart from that, this doesn't seem like a terribly important question 
> that needs an LLVM-wide policy.
>
> On stylistic questions like this, I think code owners generally decide, 
> right? So my intent was to drop this proposed change for clang (no consensus) 
> and take these opinions under advisement for clangd.
>
> I didn't re-engage here on the substance as I think all the arguments are 
> played out and nobody's mind is being changed, and I figured it was time to 
> move on.
>
> > I'd like to better understand the difference of opinions.
>
> Sure, and apologies I didn't read it that way. I can summarize the 
> counterargument as:
>
> 1. I agree that this warning flags cases with confusing code, though in some 
> cases (like ThreadsafeFS::view) I think the potential for confusion *due to 
> the name-hiding + overloading pattern* is very low.


Fair - I'd be willing to classify this particular case as pretty close to a 
false positive. But for me it'd be under the bucket of false positive's like 
GCC's -Wparetheses which warns on assert("message" && x || y) (GCC warns about 
the user probably meaning (x || y), Clang doesn't because it notices you get 
the same answer with or without the parens) - a bit annoying, but probably 
harmless enough to add the parens to let GCC users keep getting the warnings (& 
in that case - just means they'll be less likely to break LLVM self-hosting 
buildbots than if we disabled the GCC warning entirely)

> 2. Marking one method of an overload set virtual and implementing others in 
> terms of it is the most direct way to express what we're trying to do here. 
> (e.g. in Java which has no equivalent name-hiding pattern, nobody really 
> takes issue with this). Therefore if the name-hiding is harmless or 
> close-to-it, it's the clearest expression of this pattern.

If there wasn't any name hiding, I wouldn't have a problem with the code as-is. 
For me it's about the call-sites rather than the implementation. Looking at a 
derived class never gives you the whole picture of the class's API anyway.

> 3. The question of whether people like the concrete names or the overload set 
> chosen in ThreadsafeFS is irrelevant here.

Yep - agreed. That's a conversation for other reviews/threads.

> I think there's a fair amount of disagreement about (1), nobody really 
> presented a counterargument to (2), and for some reason we spent a lot of 
> time on (3) which seems to be a total bikeshed on a tangentially related 
> topic that had been settled in the usual way.

Appreciate the summary/thoughts!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D82617



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

Reply via email to