]> granicus.if.org Git - clang/commit
Eliminate a silly little Parse/Sema dance when parsing typename
authorDouglas Gregor <dgregor@apple.com>
Sun, 27 Feb 2011 22:46:49 +0000 (22:46 +0000)
committerDouglas Gregor <dgregor@apple.com>
Sun, 27 Feb 2011 22:46:49 +0000 (22:46 +0000)
commita02411e4d58b1730bea2a990822858ecc31e8eb1
treee9623d0ae8f36d1f6979e671fbe29e1b64f2973d
parent77d2c5f66aac32546c016f57143f2d0f399acbd1
Eliminate a silly little Parse/Sema dance when parsing typename
specifiers such as

  typename T::template apply<U>

Previously, we would turn T::template apply<U> into a
TemplateSpecializationType. Then, we'd reprocess that
TemplateSpecializationType and turn it into either a
TemplateSpecializationType wrapped in an ElaboratedType (when we could
resolve "apply" to a template declaration) or a
DependentTemplateSpecializationType. We now produce the same ASTs but
without generating the intermediate TemplateSpecializationType.

The end goal here is to avoid generating TemplateSpecializationTypes
with dependent template-names, ever. We're not there yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126589 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Sema/Sema.h
lib/Parse/Parser.cpp
lib/Sema/SemaTemplate.cpp