mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 19:48:20 +02:00
Made global composite typedefs no longer split per-project
This commit is contained in:
parent
8a5b674216
commit
328f489324
1 changed files with 24 additions and 13 deletions
|
@ -3031,7 +3031,7 @@ void BfCompiler::UpdateRevisedTypes()
|
|||
}
|
||||
else if ((outerTypeDef->mIsExplicitPartial) && (!outerTypeDef->mPartialUsed))
|
||||
{
|
||||
// For explicit partials there is no 'root type' so we just use the first explicit partial
|
||||
// For explicit partials there is no 'root type' so we want to select any partial in the 'innermost' project
|
||||
rootTypeDef = outerTypeDef;
|
||||
rootTypeDefEntry = outerTypeDefEntry;
|
||||
|
||||
|
@ -3040,13 +3040,28 @@ void BfCompiler::UpdateRevisedTypes()
|
|||
while (checkTypeDefEntry != NULL)
|
||||
{
|
||||
auto checkTypeDef = checkTypeDefEntry->mValue;
|
||||
|
||||
if ((checkTypeDefEntry->mHash != outerTypeDefEntry->mHash) ||
|
||||
(!checkTypeDef->mIsCombinedPartial) ||
|
||||
(checkTypeDef->mPartialUsed) ||
|
||||
(checkTypeDef->mDefState == BfTypeDef::DefState_Deleted) ||
|
||||
(!checkTypeDef->NameEquals(outerTypeDef)) ||
|
||||
(checkTypeDef->mGenericParamDefs.size() != outerTypeDef->mGenericParamDefs.size()) ||
|
||||
(outerTypeDef->mProject != checkTypeDef->mProject))
|
||||
(checkTypeDef->mGenericParamDefs.size() != outerTypeDef->mGenericParamDefs.size()))
|
||||
{
|
||||
checkTypeDefEntry = checkTypeDefEntry->mNext;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!checkTypeDef->mIsCombinedPartial)
|
||||
{
|
||||
// Select the innermost project for the composite project def
|
||||
if ((rootTypeDef->mProject != checkTypeDef->mProject) && (rootTypeDef->mProject->ContainsReference(checkTypeDef->mProject)))
|
||||
rootTypeDef = checkTypeDef;
|
||||
|
||||
checkTypeDefEntry = checkTypeDefEntry->mNext;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (checkTypeDef->mProject != rootTypeDef->mProject)
|
||||
{
|
||||
checkTypeDefEntry = checkTypeDefEntry->mNext;
|
||||
continue;
|
||||
|
@ -3141,11 +3156,7 @@ void BfCompiler::UpdateRevisedTypes()
|
|||
{
|
||||
auto checkTypeDef = checkTypeDefEntry->mValue;
|
||||
|
||||
bool isValidProject;
|
||||
if (rootTypeDef->mIsExplicitPartial)
|
||||
isValidProject = rootTypeDef->mProject == checkTypeDef->mProject;
|
||||
else
|
||||
isValidProject = checkTypeDef->mProject->ContainsReference(rootTypeDef->mProject);
|
||||
bool isValidProject = checkTypeDef->mProject->ContainsReference(rootTypeDef->mProject);
|
||||
|
||||
if (checkTypeDef != rootTypeDef)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue