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

Refactored generic type instances to be a BfGenericTypeInfo member

This commit is contained in:
Brian Fiete 2020-06-05 07:01:58 -07:00
parent 5d9a5f183d
commit 9f00539d90
16 changed files with 504 additions and 578 deletions

View file

@ -211,11 +211,11 @@ void BfGNUMangler::FindOrCreateNameSub(MangleContext& mangleContext, StringImpl&
}
BF_ASSERT(checkType->IsGenericTypeInstance());
BfGenericTypeInstance* genericTypeInstance = (BfGenericTypeInstance*)checkType;
BfTypeInstance* genericTypeInstance = (BfTypeInstance*)checkType;
for (int genericParamIdx = genericParamStart; genericParamIdx < (int) typeDef->mGenericParamDefs.size(); genericParamIdx++)
{
auto genericParam = genericTypeInstance->mTypeGenericArguments[genericParamIdx];
auto genericParam = genericTypeInstance->mGenericTypeInfo->mTypeGenericArguments[genericParamIdx];
Mangle(mangleContext, name, genericParam);
}
@ -1203,9 +1203,9 @@ bool BfMSMangler::FindOrCreateNameSub(MangleContext& mangleContext, StringImpl&
{
auto typeDef = newNameSub.mTypeInst->mTypeDef;
BfGenericTypeInstance* genericTypeInst = NULL;
BfTypeInstance* genericTypeInst = NULL;
if (newNameSub.mTypeInst->IsGenericTypeInstance())
genericTypeInst = (BfGenericTypeInstance*)newNameSub.mTypeInst;
genericTypeInst = (BfTypeInstance*)newNameSub.mTypeInst;
int numOuterGenericParams = 0;
if ((!mangleContext.mIsSafeMangle) && (typeDef->mOuterType != NULL))
@ -1249,7 +1249,7 @@ bool BfMSMangler::FindOrCreateNameSub(MangleContext& mangleContext, StringImpl&
if (genericTypeInst != NULL)
{
AddGenericArgs(mangleContext, name, genericTypeInst->mTypeGenericArguments, numOuterGenericParams);
AddGenericArgs(mangleContext, name, genericTypeInst->mGenericTypeInfo->mTypeGenericArguments, numOuterGenericParams);
name += '@';
}
}
@ -1276,10 +1276,10 @@ bool BfMSMangler::FindOrCreateNameSub(MangleContext& mangleContext, StringImpl&
void BfMSMangler::Mangle(MangleContext& mangleContext, StringImpl& name, BfTypeInstance* typeInstance, bool isAlreadyStarted, bool isOuterType)
{
BfGenericTypeInstance* genericTypeInst = NULL;
BfTypeInstance* genericTypeInst = NULL;
if (typeInstance->IsGenericTypeInstance())
{
genericTypeInst = (BfGenericTypeInstance*)typeInstance;
genericTypeInst = (BfTypeInstance*)typeInstance;
}
auto typeDef = typeInstance->mTypeDef;