1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +02:00

Improved mid-compile deleted type handling

This commit is contained in:
Brian Fiete 2025-02-23 08:08:13 -08:00
parent 188ff74128
commit 4ba8f6b0f6
5 changed files with 39 additions and 5 deletions

View file

@ -7791,17 +7791,27 @@ BfUnknownSizedArrayType* BfModule::CreateUnknownSizedArrayType(BfType* resolvedT
BfPointerType* BfModule::CreatePointerType(BfType* resolvedType)
{
BF_ASSERT(!resolvedType->IsVar());
BF_ASSERT_REL(!resolvedType->IsDeleting());
auto pointerType = mContext->mPointerTypePool.Get();
pointerType->mContext = mContext;
pointerType->mElementType = resolvedType;
auto resolvedPointerType = (BfPointerType*)ResolveType(pointerType);
if (resolvedPointerType != pointerType)
{
mContext->mPointerTypePool.GiveBack(pointerType);
}
else
{
if (resolvedType->IsDeleting())
{
mCompiler->RequestExtraCompile();
InternalError("CreatePointerType using deleted type");
mContext->DeleteType(resolvedPointerType);
}
}
BF_ASSERT(resolvedPointerType->mElementType == resolvedType);
return resolvedPointerType;
}