patch: clarify missing template arguments when parsing base specifier
Chandler Carruth
chandlerc at google.com
Mon Aug 26 22:53:02 PDT 2013
I think this case has more problems than just verbosity...
On Mon, Aug 26, 2013 at 10:38 PM, Nick Lewycky <nlewycky at google.com> wrote:
> a.cc:1:56: error: no template named 'Foox'; did you mean 'Foo'?
> template <typename T> class Foo {}; class Bar : public Foox {};
> [point at 'Foox' suggest 'Foo']
>
Why does it assume Foox is a template?
> a.cc:1:29: note: 'Foo' declared here
> template <typename T> class Foo {}; class Bar : public Foox {};
> [point at 'Foo']
> a.cc:1:56: error: expected template argument list after template-id
> template <typename T> class Foo {}; class Bar : public Foox {};
> [point at 'Foox']
>
And given that we then hit this error, why do we even consider the Foo typo
correction? Do we prefer that over a "Fooxie" class due to shorter edit
distance? That doesn't seem right. I would intuitively expect the lack of
"<..." to be a stronger signal than any edit distance, and thus disqualify
template-ids from the typo correction candidate set.
-Chandler
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130826/88268a3e/attachment.html>
More information about the cfe-commits
mailing list