From 44c8da4eb397383e7231fcc9c0f71d17c00f7f66 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 17 Sep 2020 05:46:47 -0700 Subject: [PATCH] Fixed CreateValueTypeEqualsMethod --- IDEHelper/Compiler/BfModule.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index c7524a03..3d24c803 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -4187,9 +4187,20 @@ void BfModule::CreateValueTypeEqualsMethod(bool strictEquals) if (mBfIRBuilder->mIgnoreWrites) return; + + BF_ASSERT(!mCurTypeInstance->IsBoxed()); - auto boolType = GetPrimitiveType(BfTypeCode_Boolean); - if (mCurTypeInstance->IsTypedPrimitive()) + auto compareType = mCurMethodInstance->mParams[0].mResolvedType; + bool isValid = true; + + auto boolType = GetPrimitiveType(BfTypeCode_Boolean); + if (compareType->IsValuelessType()) + { + mBfIRBuilder->CreateRet(GetDefaultValue(boolType)); + return; + } + + if (compareType->IsTypedPrimitive()) { BfExprEvaluator exprEvaluator(this); BfTypedValue leftTypedVal = LoadValue(exprEvaluator.LoadLocal(mCurMethodState->mLocals[0])); @@ -4199,17 +4210,6 @@ void BfModule::CreateValueTypeEqualsMethod(bool strictEquals) 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(); BfTypeInstance* compareTypeInst = compareType->ToTypeInstance(); if (compareTypeInst != NULL)