From a8d57c5d28593fff1a12f265a9cb16ec92029af8 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 29 Feb 2020 08:54:57 -0800 Subject: [PATCH] Fix for deferring evaluation of conditionals with nulls for nullables --- IDEHelper/Compiler/BfDeferEvalChecker.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/IDEHelper/Compiler/BfDeferEvalChecker.cpp b/IDEHelper/Compiler/BfDeferEvalChecker.cpp index 52c5985b..84a942cb 100644 --- a/IDEHelper/Compiler/BfDeferEvalChecker.cpp +++ b/IDEHelper/Compiler/BfDeferEvalChecker.cpp @@ -16,6 +16,7 @@ void BfDeferEvalChecker::Visit(BfLiteralExpression* literalExpr) { switch (literalExpr->mValue.mTypeCode) { + case BfTypeCode_NullPtr: case BfTypeCode_Boolean: case BfTypeCode_Char8: case BfTypeCode_Int8: @@ -82,9 +83,11 @@ void BfDeferEvalChecker::Visit(BfInvocationExpression* invocationExpr) } void BfDeferEvalChecker::Visit(BfConditionalExpression* condExpr) -{ +{ + VisitChild(condExpr->mConditionExpression); + bool prev = mNeedsDeferEval; VisitChild(condExpr->mTrueExpression); - bool prev = mNeedsDeferEval; + prev |= mNeedsDeferEval; VisitChild(condExpr->mFalseExpression); mNeedsDeferEval |= prev; }