sammccall added a comment.

In D93553#2463577 <https://reviews.llvm.org/D93553#2463577>, @qchateau wrote:

> Looks good to me, it removes a lot of duplication and corner cases.
>
> I'd have printed the tag for reference and pointers as well (`class Foo*` 
> instead of `Foo*`). I don't think `Foo*` is much more understandable than 
> `Foo`, so we decide that printing `class Foo` is easier to understand for the 
> user, we should print `class Foo*` as well. 
> But I agree it's even less idiomatic, so I won't argue with your choice.

Yeah, `class Foo *` doesn't seem bad, though for some reason my brain struggles 
with `class Foo &&` :-)
I really think I like drawing the line *somewhere* in terms of complexity, but 
maybe it's not in the ideal place.

There's a pragmatic reason to draw it here: simply prepending "class " doesn't 
work in the presence of qualifiers. So the current patch will print `class Foo` 
but `const f(oo`, but at least the latter is rare. The inconsistency between 
`class Foo*` and `const Foo*` would be a bigger deal, I think. And getting 
`const class Foo*` without also producing `class Foo<class Bar>` would need 
changes to TypePrinter, which is a bit of a yak-shave.

So I think I'll land this as an improvement over the status quo, at least.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D93553

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

Reply via email to