hanchenye-llvm-project/clang/test/SemaTemplate
Douglas Gregor e362cea568 Implement the semantics of the injected-class-name within a class
template. The injected-class-name is either a type or a template,
depending on whether a '<' follows it. As a type, the
injected-class-name's template argument list contains its template
parameters in declaration order.

As part of this, add logic for canonicalizing declarations, and be
sure to canonicalize declarations used in template names and template
arguments. 

A TagType is dependent if the declaration it references is dependent.

I'm not happy about the rather complicated protocol needed to use
ASTContext::getTemplateSpecializationType.

llvm-svn: 71408
2009-05-10 22:57:19 +00:00
..
class-template-decl.cpp One can use "class" and "struct" interchangeably to refer to a class 2009-05-03 17:18:57 +00:00
class-template-id-2.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
class-template-id.cpp Fix parsing of template classes prefixed by nested-name-specifiers 2009-03-25 15:40:00 +00:00
class-template-spec.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
default-arguments.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
dependent-type-identity.cpp Document the dependent type equivalence test case's purpose. 2009-05-07 15:40:54 +00:00
fibonacci.cpp The injected-class-name of class templates and class template 2009-03-26 00:10:35 +00:00
fun-template-def.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
injected-class-name.cpp Implement the semantics of the injected-class-name within a class 2009-05-10 22:57:19 +00:00
instantiate-array.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiate-complete.cpp Make sure to use RequireCompleteType rather than testing for 2009-03-24 19:52:54 +00:00
instantiate-enum.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiate-expr-1.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiate-expr-2.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiate-field.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiate-member-class.cpp Fix notes regarding the instantiation of member classes (and test 'em). 2009-03-25 21:23:52 +00:00
instantiate-method.cpp Template instantiation for conversion functions 2009-03-25 00:34:44 +00:00
instantiate-static-var.cpp Implement template instantiation for static data members of class 2009-03-25 23:32:15 +00:00
instantiate-template-template-parm.cpp Implement template instantiation for template names, including both 2009-03-31 18:38:02 +00:00
instantiate-typedef.cpp Make the implicit-int handling error recovery stuff handle C++ 2009-04-14 22:17:06 +00:00
instantiation-backtrace.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiation-default-1.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiation-default-2.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiation-default-3.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiation-depth.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
metafun-apply.cpp Improve the dependent nested-name-specifier test a bit 2009-03-31 20:07:16 +00:00
nested-name-spec-template.cpp Make the implicit-int handling error recovery stuff handle C++ 2009-04-14 22:17:06 +00:00
nested-template.cpp Tests and fixes for templates declared within (non-template) 2009-03-27 04:21:56 +00:00
qualified-names-diag.cpp Give Type::getDesugaredType a "for-display" mode that can apply more 2009-04-01 15:47:24 +00:00
right-angle-brackets-0x.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
right-angle-brackets-98.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
temp_arg.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
temp_arg_nontype.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
temp_arg_template.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
temp_arg_type.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
temp_param.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
typename-specifier-2.cpp Parsing, semantic analysis, and template instantiation for typename 2009-04-01 00:28:59 +00:00
typename-specifier.cpp Make the implicit-int handling error recovery stuff handle C++ 2009-04-14 22:17:06 +00:00