On 01/23/2014 04:01 PM, Paolo Carlini wrote:
Hi,

On 01/23/2014 03:05 PM, Jason Merrill wrote:
On 01/22/2014 04:29 PM, Paolo Carlini wrote:
On 01/22/2014 10:10 PM, Jason Merrill wrote:
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.
Well, in practice I have to mention it in the error_at itself.
Why? prev_scope is the context where the name is written, i.e. current_class_type. Why should the diagnostic treat it as an explicit qualifier?
Jason, no problem, you choose. I only wanted to use the same compact form 'A::B' used in the non-template case. Which form do you prefer?
To be clear if we use %qT with nested_name_specifier we get:

58980.C:5:8: error: ‘typename A< <template-parameter-1-1> >::B’ has not been declared

which frankly seems suboptimal to me, both vs the non-template case and the use of typename.

Thus, as far as I can see, either what I posted, which is consistent with the '... has not been declared' message of the non-template case (I understand that we want to focus on the 'has not been declared' issue) or just '%<%E%>' or even just '%E' and nested_name_specifier.

Paolo.

Reply via email to