HomePhabricator

Remove redundant CXXScopeSpec from TemplateIdAnnotation.

Authored by rsmith on Jan 17 2020, 3:42 PM.

Description

Remove redundant CXXScopeSpec from TemplateIdAnnotation.

A TemplateIdAnnotation represents only a template-id, not a
nested-name-specifier plus a template-id. Don't make a redundant copy of
the CXXScopeSpec and store it on the template-id annotation.

This slightly improves error recovery by more properly handling the case
where we would form an invalid CXXScopeSpec while parsing a typename
specifier, instead of accidentally putting the token stream into a
broken "annot_template_id with a scope specifier, but with no preceding
annot_cxxscope token" state.

(cherry picked from commit a42fd84cff265b7e9faa3fe42885ee171393e4db)

Details

Committed
saar.razJan 23 2020, 4:28 PM
Parents
rG57f70e387e36: [Concepts] Fix ConceptSpecializationExpr profiling crash
Branches
Unknown
Tags
Unknown