diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index 8838d321..2780f6de 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -13905,14 +13905,17 @@ BfIRValue BfModule::CastToValue(BfAstNode* srcNode, BfTypedValue typedVal, BfTyp else if (isConstraintCheck) { auto result = BfTypedValue(mBfIRBuilder->GetFakeVal(), operatorConstraintReturnType); - if (result.mType != toType) + if (result) { - auto castedResult = CastToValue(srcNode, result, toType, (BfCastFlags)(castFlags | BfCastFlags_Explicit | BfCastFlags_NoConversionOperator), resultFlags); - if (castedResult) - return castedResult; + if (result.mType != toType) + { + auto castedResult = CastToValue(srcNode, result, toType, (BfCastFlags)(castFlags | BfCastFlags_Explicit | BfCastFlags_NoConversionOperator), resultFlags); + if (castedResult) + return castedResult; + } + else + return result.mValue; } - else if (result) - return result.mValue; } else {