diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index ca9dfb8e..c7524a03 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -4181,20 +4181,14 @@ void BfModule::CreateFakeCallerMethod(const String& funcName) } void BfModule::CreateValueTypeEqualsMethod(bool strictEquals) -{ +{ if (mCurMethodInstance->mIsUnspecialized) return; if (mBfIRBuilder->mIgnoreWrites) return; - auto boolType = GetPrimitiveType(BfTypeCode_Boolean); - if (mCurTypeInstance->IsValuelessType()) - { - mBfIRBuilder->CreateRet(GetDefaultValue(boolType)); - return; - } - + auto boolType = GetPrimitiveType(BfTypeCode_Boolean); if (mCurTypeInstance->IsTypedPrimitive()) { BfExprEvaluator exprEvaluator(this); @@ -4210,6 +4204,12 @@ void BfModule::CreateValueTypeEqualsMethod(bool strictEquals) 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)