1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +02:00

Fixed generic alias and generic delegate issues

This commit is contained in:
Brian Fiete 2020-05-23 17:25:47 -07:00
parent 639430b41c
commit 5a5287bc8b
10 changed files with 702 additions and 434 deletions

View file

@ -81,7 +81,8 @@ enum BfCastFlags
BfCastFlags_FromCompiler = 0x40, // Not user specified
BfCastFlags_Force = 0x80,
BfCastFlags_PreferAddr = 0x100,
BfCastFlags_WarnOnBox = 0x200
BfCastFlags_WarnOnBox = 0x200,
BfCastFlags_IsCastCheck = 0x400
};
enum BfCastResultFlags
@ -1646,7 +1647,7 @@ public:
BfType* FixIntUnknown(BfType* type);
void FixIntUnknown(BfTypedValue& typedVal);
void FixIntUnknown(BfTypedValue& lhs, BfTypedValue& rhs);
BfTypeDef* ResolveGenericInstanceDef(BfGenericInstanceTypeRef* genericTypeRef);
BfTypeDef* ResolveGenericInstanceDef(BfGenericInstanceTypeRef* genericTypeRef, BfType** outType = NULL);
BfType* ResolveType(BfType* lookupType, BfPopulateType populateType = BfPopulateType_Data);
void ResolveGenericParamConstraints(BfGenericParamInstance* genericParamInstance, bool isUnspecialized);
String GenericParamSourceToString(const BfGenericParamSource& genericParamSource);
@ -1677,7 +1678,7 @@ public:
void EmitDeferredScopeCalls(bool useSrcPositions, BfScopeData* scope, BfIRBlock doneBlock = BfIRBlock());
void MarkScopeLeft(BfScopeData* scopeData);
BfGenericParamType* GetGenericParamType(BfGenericParamKind paramKind, int paramIdx);
BfType* ResolveGenericType(BfType* unspecializedType, const BfTypeVector& methodGenericArguments, bool allowFail = false);
BfType* ResolveGenericType(BfType* unspecializedType, BfTypeVector* typeGenericArguments, BfTypeVector* methodGenericArguments, bool allowFail = false);
bool IsUnboundGeneric(BfType* type);
BfGenericParamInstance* GetGenericTypeParamInstance(int paramIdx);
BfGenericParamInstance* GetGenericParamInstance(BfGenericParamType* type);