From 5808bd555c96b83faab4a651eefbf2a8e5e73f96 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 26 Dec 2020 07:36:45 -0800 Subject: [PATCH] Fixed "stuck" validation errors in unspecialized type variations --- IDEHelper/Compiler/BfModuleTypeUtils.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index 2c8aab4a..a2973d9d 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -351,7 +351,8 @@ bool BfModule::ValidateGenericConstraints(BfTypeReference* typeRef, BfTypeInstan BfError* error = NULL; if ((genericArg == NULL) || (!CheckGenericConstraints(BfGenericParamSource(genericTypeInst), genericArg, typeRef, genericParamInstance, NULL, &error))) { - genericTypeInst->mGenericTypeInfo->mHadValidateErrors = true; + if (!genericTypeInst->IsUnspecializedTypeVariation()) + genericTypeInst->mGenericTypeInfo->mHadValidateErrors = true; return false; } } @@ -2019,7 +2020,8 @@ void BfModule::DoPopulateType(BfType* resolvedTypeRef, BfPopulateType populateTy return; } - CheckCircularDataError(); + if (!typeInstance->mTypeFailed) + CheckCircularDataError(); bool underlyingTypeDeferred = false; BfType* underlyingType = NULL; @@ -9154,10 +9156,6 @@ BfType* BfModule::ResolveTypeRef(BfTypeReference* typeRef, BfPopulateType popula BF_ASSERT(BfResolvedTypeSet::Hash(tupleType, &lookupCtx) == resolvedEntry->mHash); populateModule->InitType(tupleType, populateType); -#ifdef _DEBUG - BF_ASSERT(ResolveType(tupleType, BfPopulateType_Identity) == tupleType); -#endif - return ResolveTypeResult(typeRef, tupleType, populateType, resolveFlags); } else if (auto nullableTypeRef = BfNodeDynCast(typeRef))