aaron.ballman added a comment.

In D67140#1664406 <https://reviews.llvm.org/D67140#1664406>, @gribozavr wrote:

> In D67140#1664106 <https://reviews.llvm.org/D67140#1664106>, @NoQ wrote:
>
> > In D67140#1659982 <https://reviews.llvm.org/D67140#1659982>, @gribozavr 
> > wrote:
> >
> > > We should take a page from desktop software here. If the messages were in 
> > > a separate file, there would be a lot of people capable of mass-editing 
> > > them. When messages are hardcoded in the tool code, navigating and 
> > > editing them requires more skill, and definitely a lot more jumping 
> > > around.
> >
> >
> > In the Static Analyzer there's often an explosive amount of dynamically 
> > generated messages that are going to be pretty hard to stuff into a 
> > tablegen pattern. Say, you can probably turn this 
> > <https://github.com/llvm-mirror/clang/blob/release_90/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp#L210>
> >  into "`%0 %1 %2 with a %3 retain count into an out parameter %4%5`" but 
> > would it really help?
>
>
> Unfortunately, that message is already not following best practices. One 
> should not be passing snippets in natural language into substitutions. Every 
> character that is a natural language construct should be in the message 
> string. The only allowed substitutions are types, names, numbers and such. We 
> already support %select in message strings, but there are frameworks that are 
> more flexible -- we can port features from them into our message strings as 
> needed.


I think this is a great goal. Clang doesn't always use `%select{}` to best 
effect (sometimes we still pass in hard-coded strings), but that's the 
exception rather than the rule.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D67140



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

Reply via email to