[PATCH] D110216: [clang] retain type sugar in auto / template argument deduction

Matheus Izvekov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Oct 3 08:34:09 PDT 2021


mizvekov added a comment.

In D110216#3038797 <https://reviews.llvm.org/D110216#3038797>, @v.g.vassilev wrote:

> Over the years we had some interest from people but never actually got implemented. Here <https://lists.llvm.org/pipermail/llvm-dev/2020-March/140054.html> were some ideas @rsmith and I discussed over the years. If that is helpful, let me know if I should dig a bit more into private email exchange.

Sure, that is helpful :)

There is other lower hanging fruit where we are losing sugar, and it would be a shame if we implemented this but then did not get much benefit from it because the sugar never got into the template argument in the first place.

One such example is that we do not mark as 'elaborate' types which are written bare, without any scope specifiers.

So for example in a case like this:

  namespace foo {
    struct Foo {};
    Foo x = 0;
  };

We would still diagnose that assignment with the type of the variable printed as 'foo::Foo' instead of just 'Foo', as it was written, because the parser will have produced a type that is not wrapped in an ElaboratedType (or perhaps some other cheaper mechanism).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D110216



More information about the cfe-commits mailing list