Yep, that's along the lines I was thinking of. But again, prev_scope is irrelevant here, so the new code shouldn't mention it at all.
-------- Original Message -------- From: Paolo Carlini <paolo.carl...@oracle.com> Sent: Wed, Jan 22, 2014 03:34 PM To: Jason Merrill <ja...@redhat.com>; gcc-patches@gcc.gnu.org CC: Subject: Re: [C++ Patch] PR 58980 Hi, On 01/22/2014 06:13 PM, Jason Merrill wrote: > On 01/21/2014 09:55 AM, Jason Merrill wrote: >> I think I would prefer to change the "child" assert to be >> MAYBE_CLASS_TYPE_P rather than CLASS_TYPE_P. > On second thought, no, I think we do want to specifically handle > TYPENAME_TYPE. But I think we want a different error message; getting > a TYPENAME_TYPE here means that B has not been declared. The current > scope is irrelevant. So we want to check for TYPENAME_TYPE before we > think about checking prev_scope. Ok. In fact I entertained myself this kind of reasoning, a couple of days ago... I tested the below, which uses "by hand" %Es instead of %qT for more concise error messages (consistent with the non-template case). Thanks, Paolo. ////////////////////