1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-12 05:14:10 +02:00

Fixed CreateValueTypeEqualsMethod

This commit is contained in:
Brian Fiete 2020-09-17 05:46:47 -07:00
parent 378d514d0a
commit 44c8da4eb3

View file

@ -4188,8 +4188,19 @@ void BfModule::CreateValueTypeEqualsMethod(bool strictEquals)
if (mBfIRBuilder->mIgnoreWrites) if (mBfIRBuilder->mIgnoreWrites)
return; return;
BF_ASSERT(!mCurTypeInstance->IsBoxed());
auto compareType = mCurMethodInstance->mParams[0].mResolvedType;
bool isValid = true;
auto boolType = GetPrimitiveType(BfTypeCode_Boolean); auto boolType = GetPrimitiveType(BfTypeCode_Boolean);
if (mCurTypeInstance->IsTypedPrimitive()) if (compareType->IsValuelessType())
{
mBfIRBuilder->CreateRet(GetDefaultValue(boolType));
return;
}
if (compareType->IsTypedPrimitive())
{ {
BfExprEvaluator exprEvaluator(this); BfExprEvaluator exprEvaluator(this);
BfTypedValue leftTypedVal = LoadValue(exprEvaluator.LoadLocal(mCurMethodState->mLocals[0])); BfTypedValue leftTypedVal = LoadValue(exprEvaluator.LoadLocal(mCurMethodState->mLocals[0]));
@ -4199,17 +4210,6 @@ void BfModule::CreateValueTypeEqualsMethod(bool strictEquals)
return; return;
} }
BF_ASSERT(!mCurTypeInstance->IsBoxed());
auto compareType = mCurMethodInstance->mParams[0].mResolvedType;
bool isValid = true;
if (compareType->IsValuelessType())
{
mBfIRBuilder->CreateRet(GetDefaultValue(boolType));
return;
}
auto compareDType = compareType->ToDependedType(); auto compareDType = compareType->ToDependedType();
BfTypeInstance* compareTypeInst = compareType->ToTypeInstance(); BfTypeInstance* compareTypeInst = compareType->ToTypeInstance();
if (compareTypeInst != NULL) if (compareTypeInst != NULL)