From e4cac2ca24ed0282e91e67635e1f196b3260b29c Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Wed, 22 Jun 2022 10:18:24 -0700 Subject: [PATCH] Continue searching in CastToValue constraint check on method return fail --- IDEHelper/Compiler/BfModuleTypeUtils.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index cdfb9ea7..09f58b24 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -13764,7 +13764,11 @@ BfIRValue BfModule::CastToValue(BfAstNode* srcNode, BfTypedValue typedVal, BfTyp { auto result = BfTypedValue(mBfIRBuilder->GetFakeVal(), operatorConstraintReturnType); if (result.mType != toType) - return CastToValue(srcNode, result, toType, (BfCastFlags)(castFlags | BfCastFlags_Explicit | BfCastFlags_NoConversionOperator), resultFlags); + { + auto castedResult = CastToValue(srcNode, result, toType, (BfCastFlags)(castFlags | BfCastFlags_Explicit | BfCastFlags_NoConversionOperator), resultFlags); + if (castedResult) + return castedResult; + } if (result) return result.mValue; }