This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C++ Patch] PR 58980


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]