Home | History | Annotate | Download | only in Sema

Lines Matching defs:Lambda

10 //  This file implements semantic analysis for C++ lambda expressions.
31 // Start constructing the lambda class.
59 // C++11 [expr.prim.lambda]p5:
60 // The closure type for a lambda-expression has a public inline function
62 // the lambda-expression's parameter-declaration-clause and
101 // Allocate a mangling number for this lambda expression, if the ABI
146 // There is no special context for this lambda.
357 // If a lambda-expression does not include a trailing-return-type,
435 // Determine if we're within a context where we know that the lambda will
450 // C++11 [expr.prim.lambda]p4:
451 // If a lambda-expression does not include a lambda-declarator, it is as
452 // if the lambda-declarator were ().
465 "lambda-declarator is a function");
468 // C++11 [expr.prim.lambda]p5:
470 // the lambda-expression's parameter-declaration-clause is not followed
476 assert(MethodTyInfo && "no type from lambda-declarator");
507 // Attributes on the lambda apply to the method.
513 // Introduce the lambda scope.
528 // C++11 [expr.prim.lambda]p8:
530 // lambda-capture.
540 // C++11 [expr.prim.lambda]p8:
541 // If a lambda-capture includes a capture-default that is =, the
542 // lambda-capture shall not contain this [...].
550 // C++11 [expr.prim.lambda]p12:
551 // If this is captured by a local lambda expression, its nearest
565 // C++11 [expr.prim.lambda]p8:
566 // If a lambda-capture includes a capture-default that is &, the
567 // identifiers in the lambda-capture shall not be preceded by &.
568 // If a lambda-capture includes a capture-default that is =, [...]
595 // C++11 [expr.prim.lambda]p10:
599 // scope of the local lambda expression.
618 // C++11 [expr.prim.lambda]p8:
620 // lambda-capture.
630 // C++11 [expr.prim.lambda]p23:
654 // Add lambda parameters into scope.
657 // Enter a new evaluation context to insulate the lambda from any
668 // Leave the context of the lambda.
672 // Finalize the lambda.
674 CXXRecordDecl *Class = LSI->Lambda;
687 /// \brief Add a lambda's conversion to function pointer, as described in
688 /// C++11 [expr.prim.lambda]p6.
763 /// \brief Add a lambda's conversion to block pointer.
809 // Collect information from the lambda scope.
825 Class = LSI->Lambda;
872 llvm_unreachable("block capture in lambda");
876 // C++11 [expr.prim.lambda]p4:
877 // If a lambda-expression does not include a
903 // C++ [expr.prim.lambda]p7:
904 // The lambda-expression's compound-statement yields the
911 // C++11 [expr.prim.lambda]p6:
912 // The closure type for a lambda-expression with no lambda-capture
921 // The closure type for a lambda-expression has a public non-virtual
928 // Finalize the lambda class.
941 LambdaExpr *Lambda = LambdaExpr::Create(Context, Class, IntroducerRange,
948 // C++11 [expr.prim.lambda]p2:
949 // A lambda-expression shall not appear in an unevaluated operand
957 ExprEvalContexts.back().Lambdas.push_back(Lambda);
967 return MaybeBindToTemporary(Lambda);
974 // Make sure that the lambda call operator is marked used.
975 CXXRecordDecl *Lambda = Conv->getParent();
978 Lambda->lookup(
1022 // the lambda object.