1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-07-04 15:26:00 +02:00

Handle invalidated inlining requests, comptime alias rebuilds

This commit is contained in:
Brian Fiete 2022-07-28 15:25:41 -04:00
parent b1e1720f9d
commit 1806cb923b
5 changed files with 93 additions and 41 deletions

View file

@ -355,6 +355,12 @@ public:
}
};
enum BfFailKind
{
BfFailKind_Normal,
BfFailKind_Deep
};
class BfContext
{
public:
@ -379,7 +385,7 @@ public:
Dictionary<BfProject*, BfModule*> mProjectModule;
Array<BfModule*> mModules;
Array<BfModule*> mDeletingModules;
HashSet<BfTypeInstance*> mFailTypes; // All types handled after a failure need to be rebuild on subsequent compile
Dictionary<BfTypeInstance*, BfFailKind> mFailTypes; // All types handled after a failure need to be rebuild on subsequent compile
HashSet<BfTypeInstance*> mReferencedIFaceSlots;
BfMethodInstance* mValueTypeDeinitSentinel;
@ -478,7 +484,9 @@ public:
void MarkAsReferenced(BfDependedType* depType);
void RemoveInvalidFailTypes();
bool IsWorkItemValid(BfWorkListEntry* item);
bool IsWorkItemValid(BfMethodInstance* methodInstance);
bool IsWorkItemValid(BfMethodProcessRequest* item);
bool IsWorkItemValid(BfInlineMethodRequest* item);
bool IsWorkItemValid(BfMethodSpecializationRequest* item);
void RemoveInvalidWorkItems();
BfType* FindTypeById(int typeId);