From eb4d2a17571f9c638c0918eac49a28be31265cb8 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Tue, 27 May 2025 14:58:51 +0200 Subject: [PATCH] Fixed mMaxGenericDepth test of non-generic inner type inside generic --- IDEHelper/Compiler/BfModuleTypeUtils.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index 21cd112a..6656b47e 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -12107,6 +12107,7 @@ BfType* BfModule::ResolveTypeRef_Ref(BfTypeReference* typeRef, BfPopulateType po genericTypeInst->mGenericTypeInfo->mGenericParams.push_back(parentGenericTypeInstance->mGenericTypeInfo->mGenericParams[i]->AddRef()); genericTypeInst->mGenericTypeInfo->mTypeGenericArguments.push_back(parentGenericTypeInstance->mGenericTypeInfo->mTypeGenericArguments[i]); } + genericTypeInst->mGenericTypeInfo->mMaxGenericDepth = BF_MAX(genericTypeInst->mGenericTypeInfo->mMaxGenericDepth, parentGenericTypeInstance->GetGenericDepth() + 1); CheckUnspecializedGenericType(genericTypeInst, populateType); resolvedEntry->mValue = genericTypeInst; @@ -12428,7 +12429,7 @@ BfType* BfModule::ResolveTypeRef_Ref(BfTypeReference* typeRef, BfPopulateType po if (genericTypeInst->mGenericTypeInfo->mMaxGenericDepth > 64) { - Fail("Maximum generic depth exceeded", typeRef); + Fail("Maximum generic depth (64) exceeded", typeRef); delete genericTypeInst; return ResolveTypeResult(typeRef, NULL, populateType, resolveFlags); }