<div dir="ltr">We currently just emit "expected class name" if the base specifier names a template-id without a template argument list. This patch changes that error to say "expected template argument list after template-id". Fixes PR8382! Please review.<div>

<br></div><div>There is a secondary side-effect with the interaction with typo correction which is partly undesirable (too verbose) and partly better (typo correction is performed). On this testcase:</div><div><br></div>
<div>
<div>template <typename T> class Foo {}; class Bar : public Foox {};</div></div><div><br></div><div>before my patch, clang emits:</div><div><div><br></div><div>a.cc:1:56: error: expected class name</div></div><div>
[point at 'Foox']</div>
<div><br></div><div>and with my patch clang emits:</div><div><br></div><div><div>a.cc:1:56: error: no template named 'Foox'; did you mean 'Foo'?</div><div>template <typename T> class Foo {}; class Bar : public Foox {};</div>

<div>[point at 'Foox' suggest 'Foo']</div><div>a.cc:1:29: note: 'Foo' declared here<br></div><div>template <typename T> class Foo {}; class Bar : public Foox {};</div><div>[point at 'Foo']</div>

<div>a.cc:1:56: error: expected template argument list after template-id</div><div>template <typename T> class Foo {}; class Bar : public Foox {};</div><div>[point at 'Foox']</div></div><div><br></div><div>
Nick</div>
</div>