mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-21 01:18:02 +02:00
Fixed reification of internal method overrides in uninstantiated types
This commit is contained in:
parent
2c41b5c3f7
commit
5cf3055750
1 changed files with 77 additions and 73 deletions
|
@ -5314,7 +5314,7 @@ void BfCompiler::PopulateReified()
|
|||
|
||||
// Check reifications forced by virtuals or interfaces
|
||||
if ((!mIsResolveOnly) && (typeInst != NULL) && (typeInst->mIsReified) && (!typeInst->IsUnspecializedType()) && (!typeInst->IsInterface()) &&
|
||||
(typeInst->mHasBeenInstantiated) && (!typeInst->IsIncomplete()))
|
||||
(!typeInst->IsIncomplete()))
|
||||
{
|
||||
// If we have chained methods, make sure we implement the chain members if the chain head is implemented and reified
|
||||
if (typeInst->mTypeDef->mIsCombinedPartial)
|
||||
|
@ -5412,6 +5412,9 @@ void BfCompiler::PopulateReified()
|
|||
}
|
||||
}
|
||||
|
||||
// Only check virtual stuff if we have been instantiated
|
||||
if (typeInst->mHasBeenInstantiated)
|
||||
{
|
||||
// If we have any virtual methods overrides that are unreified but the declaring virtual method is reified then we also need to reify
|
||||
for (auto&& vEntry : typeInst->mVirtualMethodTable)
|
||||
{
|
||||
|
@ -5495,6 +5498,7 @@ void BfCompiler::PopulateReified()
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BfLogSysM("PopulateReified iteration done\n");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue