MCPcopy Create free account
hub / github.com/beefytech/Beef / CreateArrayType

Method CreateArrayType

IDEHelper/Compiler/BfModuleTypeUtils.cpp:7737–7760  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7735}
7736
7737BfArrayType* BfModule::CreateArrayType(BfType* resolvedType, int dimensions)
7738{
7739 BF_ASSERT(!resolvedType->IsVar());
7740 BF_ASSERT(!resolvedType->IsIntUnknown());
7741
7742 auto arrayTypeDef = mCompiler->GetArrayTypeDef(dimensions);
7743 if (arrayTypeDef == NULL)
7744 return NULL;
7745 auto arrayType = mContext->mArrayTypePool.Get();
7746 delete arrayType->mGenericTypeInfo;
7747 arrayType->mGenericTypeInfo = new BfGenericTypeInfo();
7748 arrayType->mContext = mContext;
7749 arrayType->mTypeDef = arrayTypeDef;
7750 arrayType->mDimensions = dimensions;
7751 arrayType->mGenericTypeInfo->mTypeGenericArguments.clear();
7752 arrayType->mGenericTypeInfo->mTypeGenericArguments.push_back(resolvedType);
7753 auto resolvedArrayType = ResolveType(arrayType);
7754 if (resolvedArrayType != arrayType)
7755 {
7756 arrayType->Dispose();
7757 mContext->mArrayTypePool.GiveBack(arrayType);
7758 }
7759 return (BfArrayType*)resolvedArrayType;
7760}
7761
7762BfSizedArrayType* BfModule::CreateSizedArrayType(BfType * resolvedType, int size)
7763{

Callers 2

DoObjectCreateMethod · 0.80
CreateObjectMethod · 0.80

Calls 8

GetArrayTypeDefMethod · 0.80
GiveBackMethod · 0.80
IsVarMethod · 0.45
IsIntUnknownMethod · 0.45
GetMethod · 0.45
clearMethod · 0.45
push_backMethod · 0.45
DisposeMethod · 0.45

Tested by

no test coverage detected