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