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

Method ResolveTypeDef

IDEHelper/Compiler/BfModuleTypeUtils.cpp:8521–8551  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8519}
8520
8521BfType* BfModule::ResolveTypeDef(BfTypeDef* typeDef, BfPopulateType populateType, BfResolveTypeRefFlags resolveFlags)
8522{
8523 BF_ASSERT(typeDef->mDefState != BfTypeDef::DefState_Emitted);
8524
8525 if (typeDef->mTypeDeclaration == NULL)
8526 {
8527 BF_ASSERT(!typeDef->mIsDelegate && !typeDef->mIsFunction);
8528 }
8529
8530 //BF_ASSERT(typeDef->mTypeCode != BfTypeCode_Extension);
8531 BF_ASSERT(!typeDef->mIsPartial || typeDef->mIsCombinedPartial);
8532
8533 BF_ASSERT(typeDef->mDefState != BfTypeDef::DefState_Deleted);
8534 BF_ASSERT((typeDef->mOuterType == NULL) || (typeDef->mOuterType->mDefState != BfTypeDef::DefState_Deleted));
8535
8536 if (typeDef->mGenericParamDefs.size() != 0)
8537 return ResolveTypeDef(typeDef, BfTypeVector(), populateType, resolveFlags);
8538
8539 auto typeDefTypeRef = mContext->mTypeDefTypeRefPool.Get();
8540 typeDefTypeRef->mTypeDef = typeDef;
8541 auto resolvedtypeDefType = ResolveTypeRef(typeDefTypeRef, populateType, resolveFlags);
8542 if (resolvedtypeDefType == NULL)
8543 {
8544 mContext->mTypeDefTypeRefPool.GiveBack(typeDefTypeRef);
8545 return NULL;
8546 }
8547
8548 mContext->mTypeDefTypeRefPool.GiveBack(typeDefTypeRef);
8549 //BF_ASSERT(resolvedtypeDefType->IsTypeInstance() || resolvedtypeDefType->IsPrimitiveType());
8550 return resolvedtypeDefType;
8551}
8552
8553// Get BaseClass even when we haven't populated the type yet
8554BfTypeInstance* BfModule::GetBaseType(BfTypeInstance* typeInst)

Callers 15

DoObjectCreateMethod · 0.45
CreateTypeDataMethod · 0.45
GetCustomAttributesMethod · 0.45
AddTypeDefMethod · 0.45
AddTopLevelTypesMethod · 0.45
CheckMemberReferenceMethod · 0.45
FindTypeMethod · 0.45
ReflectInitMethod · 0.45
RemapObjectMethod · 0.45
CreateVDataMethod · 0.45

Calls 9

GiveBackMethod · 0.80
sizeMethod · 0.45
GetMethod · 0.45
clearMethod · 0.45
IsGenericParamMethod · 0.45
push_backMethod · 0.45
DisposeMethod · 0.45
IsTypeInstanceMethod · 0.45
IsPrimitiveTypeMethod · 0.45

Tested by

no test coverage detected