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.