Browse Source

Fix for deferring evaluation of conditionals with nulls for nullables

Brian Fiete 5 years ago
parent
commit
a8d57c5d28
1 changed files with 5 additions and 2 deletions
  1. 5 2
      IDEHelper/Compiler/BfDeferEvalChecker.cpp

+ 5 - 2
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;
 }