mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 12:32:20 +02:00
Refactoring of operator constraints, generic param population
This commit is contained in:
parent
b975acb711
commit
75eeb25555
9 changed files with 301 additions and 85 deletions
|
@ -940,6 +940,23 @@ public:
|
|||
void ReportMemory(MemReporter* memReporter);
|
||||
};
|
||||
|
||||
class BfOperatorInfo
|
||||
{
|
||||
public:
|
||||
BfMethodDef* mMethodDef;
|
||||
BfType* mReturnType;
|
||||
BfType* mLHSType;
|
||||
BfType* mRHSType;
|
||||
|
||||
BfOperatorInfo()
|
||||
{
|
||||
mMethodDef = NULL;
|
||||
mReturnType = NULL;
|
||||
mLHSType = NULL;
|
||||
mRHSType = NULL;
|
||||
}
|
||||
};
|
||||
|
||||
class BfDllImportEntry
|
||||
{
|
||||
public:
|
||||
|
@ -1681,6 +1698,8 @@ public:
|
|||
bool mIsUnspecializedVariation;
|
||||
bool mValidatedGenericConstraints;
|
||||
bool mHadValidateErrors;
|
||||
bool mInitializedGenericParams;
|
||||
bool mFinishedGenericParams;
|
||||
Array<BfProject*> mProjectsReferenced; // Generic methods that only refer to these projects don't need a specialized extension
|
||||
|
||||
public:
|
||||
|
@ -1691,6 +1710,8 @@ public:
|
|||
mIsUnspecialized = false;
|
||||
mIsUnspecializedVariation = false;
|
||||
mValidatedGenericConstraints = false;
|
||||
mInitializedGenericParams = false;
|
||||
mFinishedGenericParams = false;
|
||||
}
|
||||
|
||||
~BfGenericTypeInfo();
|
||||
|
@ -1719,6 +1740,7 @@ public:
|
|||
Array<BfTypeInterfaceEntry> mInterfaces;
|
||||
Array<BfTypeInterfaceMethodEntry> mInterfaceMethodTable;
|
||||
Array<BfMethodInstanceGroup> mMethodInstanceGroups;
|
||||
Array<BfOperatorInfo*> mOperatorInfo;
|
||||
Array<BfVirtualMethodEntry> mVirtualMethodTable;
|
||||
BfHotTypeData* mHotTypeData;
|
||||
int mVirtualMethodTableSize; // With hot reloading, mVirtualMethodTableSize can be larger than mInterfaceMethodTable (live vtable versioning)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue