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

Method AddToCompositePartial

IDEHelper/Compiler/BfSystem.cpp:3217–3399  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3215}
3216
3217void BfSystem::AddToCompositePartial(BfPassInstance* passInstance, BfTypeDef* compositeTypeDef, BfTypeDef* partialTypeDef)
3218{
3219 VerifyTypeDef(compositeTypeDef);
3220 VerifyTypeDef(partialTypeDef);
3221
3222 bool isFirst = false;
3223
3224 BF_ASSERT(compositeTypeDef->mFullNameEx == partialTypeDef->mFullNameEx);
3225
3226 auto typeDef = compositeTypeDef->mNextRevision;
3227 if (typeDef == NULL)
3228 {
3229 typeDef = new BfTypeDef();
3230 compositeTypeDef->mNextRevision = typeDef;
3231
3232 typeDef->mIsCombinedPartial = true;
3233
3234 typeDef->mTypeDeclaration = partialTypeDef->mTypeDeclaration;
3235 typeDef->mSource = partialTypeDef->mSource;
3236 typeDef->mSource->mRefCount++;
3237
3238 typeDef->mSystem = partialTypeDef->mSystem;
3239 typeDef->mTypeCode = partialTypeDef->mTypeCode;
3240 typeDef->mShow = partialTypeDef->mShow;
3241 typeDef->mIsOpaque = partialTypeDef->mIsOpaque;
3242 typeDef->mIsFunction = partialTypeDef->mIsFunction;
3243 typeDef->mIsDelegate = partialTypeDef->mIsDelegate;
3244 typeDef->mNestDepth = partialTypeDef->mNestDepth;
3245 typeDef->mOuterType = partialTypeDef->mOuterType;
3246 typeDef->mNamespace = partialTypeDef->mNamespace;
3247 typeDef->mName = partialTypeDef->mName;
3248 typeDef->mName->Ref();
3249 TrackName(typeDef);
3250 typeDef->mNameEx = partialTypeDef->mNameEx;
3251 typeDef->mNameEx->Ref();
3252 typeDef->mFullName = partialTypeDef->mFullName;
3253 typeDef->mFullNameEx = partialTypeDef->mFullNameEx;
3254 typeDef->mProtection = partialTypeDef->mProtection;
3255 typeDef->mIsDelegate = partialTypeDef->mIsDelegate;
3256 typeDef->mIsAbstract = partialTypeDef->mIsAbstract;
3257 typeDef->mIsStatic = partialTypeDef->mIsStatic;
3258 typeDef->mHasAppendCtor = partialTypeDef->mHasAppendCtor;
3259 typeDef->mHasCtorNoBody = partialTypeDef->mHasCtorNoBody;
3260 typeDef->mHasExtensionMethods = partialTypeDef->mHasExtensionMethods;
3261 typeDef->mHasUsingFields = partialTypeDef->mHasUsingFields;
3262 typeDef->mHasOverrideMethods = partialTypeDef->mHasOverrideMethods;
3263 typeDef->mIsAlwaysInclude = partialTypeDef->mIsAlwaysInclude;
3264 typeDef->mHasCEOnCompile = partialTypeDef->mHasCEOnCompile;
3265
3266 for (auto generic : partialTypeDef->mGenericParamDefs)
3267 {
3268 BfGenericParamDef* newGeneric = new BfGenericParamDef();
3269 *newGeneric = *generic;
3270 typeDef->mGenericParamDefs.push_back(newGeneric);
3271 }
3272 typeDef->mExternalConstraints = partialTypeDef->mExternalConstraints;
3273
3274 typeDef->mBaseTypes = partialTypeDef->mBaseTypes;

Callers 1

UpdateRevisedTypesMethod · 0.80

Calls 6

RefMethod · 0.80
GetMethodDeclarationMethod · 0.80
push_backMethod · 0.45
sizeMethod · 0.45
ClearMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected