mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 12:02:21 +02:00
Fixed "stuck" validation errors in unspecialized type variations
This commit is contained in:
parent
ff6c7c5b90
commit
5808bd555c
1 changed files with 4 additions and 6 deletions
|
@ -351,6 +351,7 @@ bool BfModule::ValidateGenericConstraints(BfTypeReference* typeRef, BfTypeInstan
|
||||||
BfError* error = NULL;
|
BfError* error = NULL;
|
||||||
if ((genericArg == NULL) || (!CheckGenericConstraints(BfGenericParamSource(genericTypeInst), genericArg, typeRef, genericParamInstance, NULL, &error)))
|
if ((genericArg == NULL) || (!CheckGenericConstraints(BfGenericParamSource(genericTypeInst), genericArg, typeRef, genericParamInstance, NULL, &error)))
|
||||||
{
|
{
|
||||||
|
if (!genericTypeInst->IsUnspecializedTypeVariation())
|
||||||
genericTypeInst->mGenericTypeInfo->mHadValidateErrors = true;
|
genericTypeInst->mGenericTypeInfo->mHadValidateErrors = true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -2019,6 +2020,7 @@ void BfModule::DoPopulateType(BfType* resolvedTypeRef, BfPopulateType populateTy
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!typeInstance->mTypeFailed)
|
||||||
CheckCircularDataError();
|
CheckCircularDataError();
|
||||||
|
|
||||||
bool underlyingTypeDeferred = false;
|
bool underlyingTypeDeferred = false;
|
||||||
|
@ -9154,10 +9156,6 @@ BfType* BfModule::ResolveTypeRef(BfTypeReference* typeRef, BfPopulateType popula
|
||||||
BF_ASSERT(BfResolvedTypeSet::Hash(tupleType, &lookupCtx) == resolvedEntry->mHash);
|
BF_ASSERT(BfResolvedTypeSet::Hash(tupleType, &lookupCtx) == resolvedEntry->mHash);
|
||||||
populateModule->InitType(tupleType, populateType);
|
populateModule->InitType(tupleType, populateType);
|
||||||
|
|
||||||
#ifdef _DEBUG
|
|
||||||
BF_ASSERT(ResolveType(tupleType, BfPopulateType_Identity) == tupleType);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return ResolveTypeResult(typeRef, tupleType, populateType, resolveFlags);
|
return ResolveTypeResult(typeRef, tupleType, populateType, resolveFlags);
|
||||||
}
|
}
|
||||||
else if (auto nullableTypeRef = BfNodeDynCast<BfNullableTypeRef>(typeRef))
|
else if (auto nullableTypeRef = BfNodeDynCast<BfNullableTypeRef>(typeRef))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue