erik.pilkington added a comment.

In D61147#1479956 <https://reviews.llvm.org/D61147#1479956>, @rjmccall wrote:

> In D61147#1479940 <https://reviews.llvm.org/D61147#1479940>, @erik.pilkington 
> wrote:
>
> > In D61147#1479932 <https://reviews.llvm.org/D61147#1479932>, @rjmccall 
> > wrote:
> >
> > > I do not think the ObjC version of this diagnostic is useful as it's been 
> > > explained here, and I would strongly recommend just not including such a 
> > > warning for the time being.
> >
> >
> > Why? It seems to me like the vast majority of methods only declared in an 
> > `@implementation` are used as local helpers (even if people probably should 
> > be using functions for this), where this warning would be useful. Maybe I'm 
> > missing something? Still trying to learn more about Objective-C.
>
>
> What rule are you suggesting for whether a method is "only declared in an 
> `@implementation`"?  Where exactly are you proposing to look for other 
> declarations?
>
> Objective-C does not have a formalized notion of an `@implementation`-private 
> method, or really even an unambiguous convention for them (underscoring is 
> *library*-private by convention, not class-private).  The Objective-C 
> ecosystem includes a lot of informal protocols and conventions based around 
> discovery via naming, and Objective-C programmers do (admittedly rarely) just 
> override methods that they know are there but which they can't see.  These 
> things make me very worried about trying to port assumptions from other 
> languages.


Concretely, I was just thinking of using something like 
`ObjCMethodDecl::isOverriding`, but if that isn't a good enough heuristic for 
finding local methods then I guess we should just forgo methods entirely.


Repository:
  rC Clang

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

https://reviews.llvm.org/D61147



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

Reply via email to