1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 12:32:20 +02:00

Emitted code refactor - copied typedefs

This commit is contained in:
Brian Fiete 2021-10-28 08:05:14 -07:00
parent f7853fc348
commit 0bfa411d22
15 changed files with 708 additions and 348 deletions

View file

@ -941,7 +941,9 @@ public:
DefState_InlinedInternals_Changed, // Code within methods, including inlined methods, changed
DefState_Internals_Changed, // Only code within a non-inlined methods changed
DefState_Refresh,
DefState_Deleted
DefState_Deleted,
DefState_Emitted,
DefState_EmittedDirty
};
public:
@ -950,13 +952,13 @@ public:
BfSystem* mSystem;
BfProject* mProject;
BfTypeDeclaration* mTypeDeclaration;
BfSource* mSource;
BfParser* mEmitParser;
BfSource* mSource;
DefState mDefState;
Val128 mSignatureHash; // Data, methods, etc
Val128 mFullHash;
Val128 mInlineHash;
BfTypeDef* mEmitParent;
BfTypeDef* mOuterType;
BfAtomComposite mNamespace;
BfAtom* mName;
@ -1004,8 +1006,7 @@ public:
bool mHasOverrideMethods;
bool mIsOpaque;
bool mIsNextRevision;
bool mInDeleteQueue;
bool mHasEmitMembers;
bool mInDeleteQueue;
bool mForceUseNextRevision;
public:
@ -1029,8 +1030,7 @@ public:
mIsPartial = false;
mIsCombinedPartial = false;
mTypeDeclaration = NULL;
mSource = NULL;
mEmitParser = NULL;
mSource = NULL;
mDefState = DefState_New;
mHash = 0;
mPartialIdx = -1;
@ -1047,11 +1047,11 @@ public:
mIsOpaque = false;
mPartialUsed = false;
mIsNextRevision = false;
mInDeleteQueue = false;
mHasEmitMembers = false;
mInDeleteQueue = false;
mForceUseNextRevision = false;
mDupDetectedRevision = -1;
mNestDepth = 0;
mEmitParent = NULL;
mOuterType = NULL;
mTypeDeclaration = NULL;
mNextRevision = NULL;
@ -1062,9 +1062,9 @@ public:
bool IsGlobalsContainer();
void Reset();
void FreeMembers();
void ClearEmitted();
void PopulateMemberSets();
void ClearMemberSets();
void ClearOldMemberSets();
void RemoveGenericParamDef(BfGenericParamDef* genericParamDef);
int GetSelfGenericParamCount();
String ToString();
@ -1074,8 +1074,19 @@ public:
String GetAutoPropertyName(BfPropertyDeclaration* propertyDeclaration);
BfAstNode* GetRefNode();
bool IsEmitted() { return mEmitParent != NULL; }
BfTypeDef* GetDefinition()
{
if (mEmitParent != NULL)
return mEmitParent;
return this;
}
BfTypeDef* GetLatest()
{
if (mEmitParent != NULL)
return mEmitParent->GetLatest();
if (mNextRevision != NULL)
return mNextRevision;
return this;
@ -1612,6 +1623,9 @@ public:
void InjectNewRevision(BfTypeDef* typeDef);
void AddToCompositePartial(BfPassInstance* passInstance, BfTypeDef* compositeTypeDef, BfTypeDef* partialTypeDef);
void FinishCompositePartial(BfTypeDef* compositeTypeDef);
void CopyTypeDef(BfTypeDef* typeDef, BfTypeDef* nextTypeDef);
void UpdateEmittedTypeDef(BfTypeDef* typeDef);
BfTypeDef* GetCombinedPartial(BfTypeDef* typeDef);
BfTypeDef* GetOuterTypeNonPartial(BfTypeDef* typeDef);