1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 03:28:20 +02:00

Improved comptime circular data reference issues

This commit is contained in:
Brian Fiete 2025-01-18 09:31:29 -08:00
parent 910f560380
commit 79e98fe9f7
7 changed files with 161 additions and 25 deletions

View file

@ -833,12 +833,13 @@ class CeBuilder
{
public:
CeBuilder* mParentBuilder;
CeMachine* mCeMachine;
CeMachine* mCeMachine;
CeFunction* mCeFunction;
BeFunction* mBeFunction;
CeOperand mReturnVal;
BeType* mIntPtrType;
int mPtrSize;
int mRecursiveDepth;
String mError;
BeDbgLoc* mCurDbgLoc;
@ -862,6 +863,7 @@ public:
{
mParentBuilder = NULL;
mPtrSize = 0;
mRecursiveDepth = -1;
mCeFunction = NULL;
mBeFunction = NULL;
mCeMachine = NULL;
@ -1126,6 +1128,7 @@ public:
int mReflectTypeIdOffset;
int mExecuteId;
CeEvalFlags mCurEvalFlags;
int mRecursiveDepth;
// These are only valid for the current execution
ContiguousHeap* mHeap;
@ -1248,6 +1251,7 @@ public:
int mRevisionExecuteTime;
int mCurFunctionId;
int mExecuteId;
int mCurRecursiveDepth;
CeAppendAllocInfo* mAppendAllocInfo;
CeContext* mCurContext;
@ -1308,6 +1312,9 @@ public:
CeContext* AllocContext();
void ReleaseContext(CeContext* context);
BfTypedValue Call(CeCallSource callSource, BfModule* module, BfMethodInstance* methodInstance, const BfSizedArray<BfIRValue>& args, CeEvalFlags flags, BfType* expectingType);
BfError* FailCurrent(BfModule* srcModule, const StringImpl& error, BfAstNode* refNode);
void FailCurrentMoreInfo(const StringImpl& error, BfAstNode* refNode);
};
NS_BF_END