]> granicus.if.org Git - clang/commit
Added ClassTemplateSpecializationDecl, which is a subclass of
authorDouglas Gregor <dgregor@apple.com>
Tue, 17 Feb 2009 01:05:43 +0000 (01:05 +0000)
committerDouglas Gregor <dgregor@apple.com>
Tue, 17 Feb 2009 01:05:43 +0000 (01:05 +0000)
commit3e00bad490f1bae8a2c60f934e7eb5dbb9752c5d
treecd116f187b667c5f88dd380a317592ad5ccdb287
parentf50adff9997578a021c5fb1689852949e8e4d9b4
Added ClassTemplateSpecializationDecl, which is a subclass of
CXXRecordDecl that is used to represent class template
specializations. These are canonical declarations that can refer to
either an actual class template specialization in the code, e.g.,

  template<> class vector<bool> { };

or to a template instantiation. However, neither of these features is
actually implemented yet, so really we're just using (and uniqing) the
declarations to make sure that, e.g., A<int> is a different type from
A<float>. Note that we carefully distinguish between what the user
wrote in the source code (e.g., "A<FLOAT>") and the semantic entity it
represents (e.g., "A<float, int>"); the former is in the sugared Type,
the latter is an actual Decl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64716 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/DeclCXX.h
include/clang/AST/DeclNodes.def
include/clang/AST/DeclTemplate.h
include/clang/AST/Type.h
lib/AST/DeclCXX.cpp
lib/AST/DeclTemplate.cpp
lib/Sema/Sema.h
lib/Sema/SemaTemplate.cpp
test/SemaTemplate/class-template-id.cpp