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())