Selaa lähdekoodia

Fix for deferring evaluation of conditionals with nulls for nullables

Brian Fiete 5 vuotta sitten
vanhempi
commit
a8d57c5d28
1 muutettua tiedostoa jossa 5 lisäystä ja 2 poistoa
  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;
 }