Преглед на файлове

Continue searching in CastToValue constraint check on method return fail

Brian Fiete преди 3 години
родител
ревизия
e4cac2ca24
променени са 1 файла, в които са добавени 5 реда и са изтрити 1 реда
  1. 5 1
      IDEHelper/Compiler/BfModuleTypeUtils.cpp

+ 5 - 1
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;
 		}