From 578e51319605d9af5e73fb7c8636562cd8d414f5 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Fri, 11 Sep 2020 23:18:20 -0700 Subject: [PATCH] Handle cast of function bind --- IDEHelper/Compiler/BfReducer.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfReducer.cpp b/IDEHelper/Compiler/BfReducer.cpp index d60fcb01..657aeed4 100644 --- a/IDEHelper/Compiler/BfReducer.cpp +++ b/IDEHelper/Compiler/BfReducer.cpp @@ -1978,10 +1978,18 @@ BfExpression* BfReducer::CreateExpression(BfAstNode* node, CreateExprFlags creat endNode = mVisitorPos.Get(endNodeIdx); if (auto endToken = BfNodeDynCast(endNode)) { + bool isLambda = false; if (endToken->GetToken() == BfToken_FatArrow) { - return CreateLambdaBindExpression(NULL, tokenNode); + isLambda = true; + if (auto innerToken = BfNodeDynCast(mVisitorPos.GetNext())) + { + // Specifically we're looking for a (function ...) cast, but any token here means it's not a lambda + isLambda = false; + } } + if (isLambda) + return CreateLambdaBindExpression(NULL, tokenNode); } } }