|
@@ -11325,10 +11325,14 @@ TreeTransform<Derived>::TransformLambdaExpr(LambdaExpr *E) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ LambdaScopeInfo *LSI = getSema().PushLambdaScope();
|
|
|
|
+ Sema::FunctionScopeRAII FuncScopeCleanup(getSema());
|
|
|
|
+
|
|
// Transform the template parameters, and add them to the current
|
|
// Transform the template parameters, and add them to the current
|
|
// instantiation scope. The null case is handled correctly.
|
|
// instantiation scope. The null case is handled correctly.
|
|
auto TPL = getDerived().TransformTemplateParameterList(
|
|
auto TPL = getDerived().TransformTemplateParameterList(
|
|
E->getTemplateParameterList());
|
|
E->getTemplateParameterList());
|
|
|
|
+ LSI->GLTemplateParameterList = TPL;
|
|
|
|
|
|
// Transform the type of the original lambda's call operator.
|
|
// Transform the type of the original lambda's call operator.
|
|
// The transformation MUST be done in the CurrentInstantiationScope since
|
|
// The transformation MUST be done in the CurrentInstantiationScope since
|
|
@@ -11355,10 +11359,6 @@ TreeTransform<Derived>::TransformLambdaExpr(LambdaExpr *E) {
|
|
NewCallOpType);
|
|
NewCallOpType);
|
|
}
|
|
}
|
|
|
|
|
|
- LambdaScopeInfo *LSI = getSema().PushLambdaScope();
|
|
|
|
- Sema::FunctionScopeRAII FuncScopeCleanup(getSema());
|
|
|
|
- LSI->GLTemplateParameterList = TPL;
|
|
|
|
-
|
|
|
|
// Create the local class that will describe the lambda.
|
|
// Create the local class that will describe the lambda.
|
|
CXXRecordDecl *OldClass = E->getLambdaClass();
|
|
CXXRecordDecl *OldClass = E->getLambdaClass();
|
|
CXXRecordDecl *Class
|
|
CXXRecordDecl *Class
|