From eae4aed3a969908e585a88222ee0a6a22f9965d8 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Fri, 31 Dec 2021 11:01:24 -0500 Subject: [PATCH] Properly VisitLambdaBodies during inner methodRef capture --- IDEHelper/Compiler/BfExprEvaluator.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 981ab6c3..cbf21c8a 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -12504,6 +12504,9 @@ BfLambdaInstance* BfExprEvaluator::GetLambdaInstance(BfLambdaBindExpression* lam } else if ((lambdaBindExpr->mNewToken == NULL) || (isFunctionBind)) { + if ((mModule->mCurMethodState != NULL) && (mModule->mCurMethodState->mClosureState != NULL) && (mModule->mCurMethodState->mClosureState->mCapturing)) + VisitLambdaBodies(lambdaBindExpr->mBody, lambdaBindExpr->mDtor); + if ((lambdaBindExpr->mNewToken != NULL) && (isFunctionBind)) mModule->Fail("Binds to functions should do not require allocations.", lambdaBindExpr->mNewToken);