On Mon, Aug 26, 2013 at 10:38 PM, Nick Lewycky <[email protected]> wrote: > > template <typename T> class Foo {}; class Bar : public Foox {}; > > before my patch, clang emits: > > a.cc:1:56: error: expected class name > [point at 'Foox'] > > and with my patch clang emits: > > a.cc:1:56: error: no template named 'Foox'; did you mean 'Foo'?
Chandler's response confirms that this new message is far too confusing for mere mortals. ;) I infer that what happens here is that we see "Foox", edit-distance it to "Foo", decide that the user meant "Foo", and then "helpfully" proclaim that there is "no template named Foox" simply because Foo itself happens to be a template; if Foo were a namespace instead, we'd proclaim "no namespace named Foox", and so on. I think a more helpful message would be to always say "error: no class or class template named Foox", regardless of whatever sort of entity the error-corrected Foo happens to be. I.e., the error message should describe what Clang *expected* to find there, not what it *did* (modulo typos) find there. –Arthur _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
