diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 7b53e9f9..255b0f86 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -19742,8 +19742,6 @@ void BfExprEvaluator::Visit(BfConditionalExpression* condExpr) mModule->FixIntUnknown(falseValue); } - prevInCondBlock.Restore(); - bool isValid = trueValue && falseValue; if (isValid) @@ -19780,6 +19778,8 @@ void BfExprEvaluator::Visit(BfConditionalExpression* condExpr) } } + prevInCondBlock.Restore(); + mModule->mBfIRBuilder->SetInsertPoint(trueBlockPos); if (isValid) trueValue = mModule->LoadValue(trueValue); diff --git a/IDEHelper/Tests/src/Boxing.bf b/IDEHelper/Tests/src/Boxing.bf index d984c001..fd6e069a 100644 --- a/IDEHelper/Tests/src/Boxing.bf +++ b/IDEHelper/Tests/src/Boxing.bf @@ -1,6 +1,7 @@ #pragma warning disable 168 using System; +using System.Collections; namespace Tests { @@ -86,6 +87,9 @@ namespace Tests var scObjResult = scVariant.GetBoxed(); Test.Assert(scObjResult case .Err); scVariant.Dispose(); + + List l = scope .(); + IEnumerator e = (l != null) ? (.)null : l.GetEnumerator(); } [Test]