From 85d197f5520daf0f2a8380e96c8f8626b84b4689 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 5 Oct 2019 11:27:59 -0700 Subject: [PATCH] Fixed error when const range checking against null --- IDE/mintest/minlib/src/System/Object.bf | 5 +++++ IDEHelper/Compiler/BfExprEvaluator.cpp | 2 ++ 2 files changed, 7 insertions(+) diff --git a/IDE/mintest/minlib/src/System/Object.bf b/IDE/mintest/minlib/src/System/Object.bf index 9a6c4bf8..0819e0fc 100644 --- a/IDE/mintest/minlib/src/System/Object.bf +++ b/IDE/mintest/minlib/src/System/Object.bf @@ -493,6 +493,11 @@ namespace System mTarget = target; mFuncPtr = ptr; } + + protected override void GCMarkMembers() + { + GC.Mark(Internal.UnsafeCastToObject(mTarget)); + } } struct DeferredCall diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 89e15aed..e625618e 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -16241,6 +16241,8 @@ bool BfExprEvaluator::CheckConstCompare(BfBinaryOp binaryOp, BfAstNode* opToken, BF_ASSERT(rightValue.mValue.IsConst()); auto rightConst = mModule->mBfIRBuilder->GetConstant(rightValue.mValue); + if (!mModule->mBfIRBuilder->IsInt(rightConst->mTypeCode)) + return false; BfType* checkType = leftValue.mType; if (checkType->IsTypedPrimitive())