| 3393 | } |
| 3394 | |
| 3395 | void BfContext::TryUnreifyModules() |
| 3396 | { |
| 3397 | BP_ZONE("BfContext::TryUnreifyModules"); |
| 3398 | |
| 3399 | for (auto module : mModules) |
| 3400 | { |
| 3401 | if (module->mIsSpecialModule) |
| 3402 | continue; |
| 3403 | |
| 3404 | if (!module->mIsReified) |
| 3405 | continue; |
| 3406 | |
| 3407 | if (module->mLastUsedRevision == mCompiler->mRevision) |
| 3408 | continue; |
| 3409 | |
| 3410 | bool isRequired = false; |
| 3411 | for (auto typeInst : module->mOwnedTypeInstances) |
| 3412 | { |
| 3413 | if (typeInst->mTypeDef->IsGlobalsContainer()) |
| 3414 | isRequired = true; |
| 3415 | |
| 3416 | if (typeInst->IsAlwaysInclude()) |
| 3417 | isRequired = true; |
| 3418 | } |
| 3419 | |
| 3420 | if (isRequired) |
| 3421 | continue; |
| 3422 | |
| 3423 | module->UnreifyModule(); |
| 3424 | } |
| 3425 | } |
| 3426 | |
| 3427 | void BfContext::MarkUsedModules(BfProject* project, BfModule* module) |
| 3428 | { |
no test coverage detected