hanchenye-llvm-project/clang/lib/Sema
Douglas Gregor 0c46b2b7ce Introduce support for template instantiation of lambda
expressions. This is mostly a simple refact, splitting the main "start
a lambda expression" function into smaller chunks that are driven
either from the parser (Sema::ActOnLambdaExpr) or during AST
transformation (TreeTransform::TransformLambdaExpr). A few minor
interesting points:

  - Added new entry points for TreeTransform, so that we can
  explicitly establish the link between the lambda closure type in the
  template and the lambda closure type in the instantiation.
  - Added a bit into LambdaExpr specifying whether it had an explicit
  result type or not. We should have had this anyway.

This code is 'lightly' tested.

llvm-svn: 150417
2012-02-13 22:00:16 +00:00
..
AnalysisBasedWarnings.cpp Revert my patches which removed Diagnostic.h includes by moving some operator overloads out of line. 2012-02-07 22:29:24 +00:00
AttributeList.cpp The following patch adds __attribute__((no_address_safety_analysis)) which will allow to disable 2012-01-24 19:25:38 +00:00
CMakeLists.txt Represent C++ direct initializers as ParenListExprs before semantic analysis 2012-02-11 23:51:47 +00:00
CodeCompleteConsumer.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
DeclSpec.cpp Remove unreachable code in Clang. (replace with llvm_unreachable where appropriate or when GCC requires it) 2012-01-17 06:56:22 +00:00
DelayedDiagnostic.cpp remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports 2011-07-23 10:55:15 +00:00
IdentifierResolver.cpp Only mark an IdentifierInfo as having changed since deserialization 2012-01-24 15:24:38 +00:00
JumpDiagnostics.cpp Add -Wc++98-compat diagnostics for jumps which bypass initialization of non-POD 2011-10-20 21:42:12 +00:00
Makefile
Scope.cpp
Sema.cpp Lambdas have a deleted default constructor and a deleted copy 2012-02-12 17:34:23 +00:00
SemaAccess.cpp Remove unused variables. 2012-01-20 14:42:32 +00:00
SemaAttr.cpp Reject mismatched "#pragma GCC visibility push" and "#pragma GCC visibility pop". 2012-02-01 23:24:59 +00:00
SemaCXXScopeSpec.cpp Added source location for the template keyword in DependentTemplateSpecializationTypeLoc nodes (DTSTLoc). 2012-02-06 22:45:07 +00:00
SemaCast.cpp Don't route explicit construction via list-initialization through the functional cast code path. It sometimes does the wrong thing, produces horrible error messages, and is just unnecessary. 2012-02-13 19:55:43 +00:00
SemaChecking.cpp Support all null pointer literals in format strings. 2012-02-10 21:07:25 +00:00
SemaCodeComplete.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
SemaConsumer.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
SemaDecl.cpp Update constexpr implementation to match CWG's chosen approach for core issues 2012-02-13 03:54:03 +00:00
SemaDeclAttr.cpp In C++11 mode, when an integral constant expression is desired and we have a 2012-02-04 09:53:13 +00:00
SemaDeclCXX.cpp Update constexpr implementation to match CWG's chosen approach for core issues 2012-02-13 03:54:03 +00:00
SemaDeclObjC.cpp objc: If a method is not implemented in the category implementation but 2012-02-09 21:30:24 +00:00
SemaExceptionSpec.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
SemaExpr.cpp Introduce support for template instantiation of lambda 2012-02-13 22:00:16 +00:00
SemaExprCXX.cpp Don't route explicit construction via list-initialization through the functional cast code path. It sometimes does the wrong thing, produces horrible error messages, and is just unnecessary. 2012-02-13 19:55:43 +00:00
SemaExprMember.cpp Fixed instantiation of DependentScopeDeclRefExpr. 2012-02-06 14:31:00 +00:00
SemaExprObjC.cpp Revert r145999. This turned out to be a bad idea. Unfortunately, 'id' is used so profusely 2012-02-10 02:45:47 +00:00
SemaFixItUtils.cpp Refactor for clarity. 2012-01-13 19:34:55 +00:00
SemaInit.cpp Change the way we store initialization kinds so that all direct inits can distinguish between list and parens form. This allows us to correctly diagnose the last test cases from litb. 2012-02-12 16:37:36 +00:00
SemaLambda.cpp Introduce support for template instantiation of lambda 2012-02-13 22:00:16 +00:00
SemaLookup.cpp Remove the unused TypoCorrectionConsumer::MaxEditDistance. 2012-02-07 01:32:58 +00:00
SemaObjCProperty.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
SemaOverload.cpp Fix parsing new expressions using init lists. Probably still do the wrong thing in cases involving array new. 2012-02-11 23:51:08 +00:00
SemaPseudoObject.cpp Add IsImplicit field in ObjCMessageExpr that is true when the message 2012-01-12 02:34:39 +00:00
SemaStmt.cpp Don't allow deduction of a lambda result type from an initializer 2012-02-09 18:40:39 +00:00
SemaTemplate.cpp Introduce support for template instantiation of lambda 2012-02-13 22:00:16 +00:00
SemaTemplateDeduction.cpp Introduce support for template instantiation of lambda 2012-02-13 22:00:16 +00:00
SemaTemplateInstantiate.cpp Introduce support for template instantiation of lambda 2012-02-13 22:00:16 +00:00
SemaTemplateInstantiateDecl.cpp Update constexpr implementation to match CWG's chosen approach for core issues 2012-02-13 03:54:03 +00:00
SemaTemplateVariadic.cpp Make the callback object to Sema::CorrectTypo mandatory. 2012-01-31 23:49:25 +00:00
SemaType.cpp Update constexpr implementation to match CWG's chosen approach for core issues 2012-02-13 03:54:03 +00:00
TargetAttributesSema.cpp Fix compiler warning about && in ||. 2011-09-30 20:32:22 +00:00
TargetAttributesSema.h
TreeTransform.h Introduce support for template instantiation of lambda 2012-02-13 22:00:16 +00:00
TypeLocBuilder.h