| 3215 | } |
| 3216 | |
| 3217 | void 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; |
no test coverage detected