On Wed, Feb 11, 2026 at 10:04:57AM +0100, Jakub Jelinek wrote:
> On Wed, Feb 11, 2026 at 10:02:03AM +0100, Jakub Jelinek wrote:
> > On Wed, Feb 11, 2026 at 05:56:27PM +0900, Jason Merrill wrote:
> > > On 2/11/26 10:50 AM, Marek Polacek wrote:
> > > > Bootstrapped/regtested on x86_64-pc-linux-gnu, ok for trunk?
> > > > 
> > > > -- >8 --
> > > > This patch improves various reflection diagnostics as discussed in
> > > > <https://gcc.gnu.org/pipermail/gcc-patches/2025-December/704168.html>.
> > > > 
> > > > In particular:
> > > > - reword "not usable" diagnostics to say what kind of reflections we
> > > >    expected,
> > > > - use the new tree_category to better describe what kind of reflection
> > > >    we actually got,
> > > 
> > > Hmm, building an error message from strings like this is generally frowned
> > > on because it is difficult to translate.  Maybe add a %R to cp_printer 
> > > and a
> > > reflection_to_string function to print any kind of reflection?
> > 
> > %R is taken already,
> >    %r: if pp_show_color(pp), switch to color identified by const char *.
> >    %R: if pp_show_color(pp), reset color.
> 
> Though, why not just use %qE and make sure to pass a REFLECT_EXPR and
> ensure it is printed in human readable form (partly kind like
> display_string_of, but e.g. with ^^ at the start).

Would it be better if tree_category returned e.g.

  return G_(" (type)");

and is then used at the end of the error message like this:

  error_at (loc, "expected a reflection of ... "
            "instead of %qE" "%s", t, tree_category (t));

or is it still bad wrt translation?  %s because I don't want to
quote the category.  This would produce:

error: expected a reflection of a function template instead of 'x' (variable)

Marek

Reply via email to