From c23d44502b9be932d0b18729a99adf2ac8104a60 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 29 Jan 2022 12:09:20 -0500 Subject: [PATCH] Fixed recursive constraint check in casting --- IDEHelper/Compiler/BfModuleTypeUtils.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index 5a61cc41..cab289ff 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -11917,6 +11917,9 @@ BfIRValue BfModule::CastToValue(BfAstNode* srcNode, BfTypedValue typedVal, BfTyp return mBfIRBuilder->GetFakeVal(); } + if ((genericParamInst->mTypeConstraint == toType) && (toType->IsUnspecializedType())) + return mBfIRBuilder->GetFakeVal(); + auto castedVal = CastToValue(srcNode, typedVal, genericParamInst->mTypeConstraint, (BfCastFlags)(castFlags | BfCastFlags_SilentFail)); if (castedVal) return castedVal;