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

Move mid-compile rebuild request into a work list

This commit is contained in:
Brian Fiete 2022-05-04 06:40:26 -07:00
parent b095f5b0d3
commit 9972ff32ab
6 changed files with 112 additions and 20 deletions

View file

@ -113,6 +113,12 @@ public:
BfAstNode* mRefNode;
};
class BfMidCompileRequest : public BfWorkListEntry
{
public:
String mReason;
};
struct BfStringPoolEntry
{
String mString;
@ -397,6 +403,7 @@ public:
WorkQueue<BfTypeProcessRequest> mPopulateTypeWorkList;
WorkQueue<BfMethodSpecializationRequest> mMethodSpecializationWorkList;
WorkQueue<BfTypeRefVerifyRequest> mTypeRefVerifyWorkList;
WorkQueue<BfMidCompileRequest> mMidCompileWorkList;
PtrWorkQueue<BfModule*> mFinishedSlotAwaitModuleWorkList;
PtrWorkQueue<BfModule*> mFinishedModuleWorkList;
bool mHasReifiedQueuedRebuildTypes;
@ -476,6 +483,7 @@ public:
void ValidateDependencies();
void RebuildType(BfType* type, bool deleteOnDemandTypes = true, bool rebuildModule = true, bool placeSpecializiedInPurgatory = true);
void RebuildDependentTypes(BfDependedType* dType);
void QueueMidCompileRebuildDependentTypes(BfDependedType* dType, const String& reason);
void RebuildDependentTypes_MidCompile(BfDependedType* dType, const String& reason);
bool CanRebuild(BfType* type);
void TypeDataChanged(BfDependedType* dType, bool isNonStaticDataChange);