1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 20:12:21 +02:00

Allowed type declarations in anonymous static sections

This commit is contained in:
Brian Fiete 2020-06-17 05:44:39 -07:00
parent a29f22d227
commit 3378293ea9

View file

@ -1230,8 +1230,15 @@ void BfDefBuilder::Visit(BfTypeDeclaration* typeDeclaration)
auto outerTypeDef = mCurTypeDef;
auto actualOuterTypeDef = mCurActualTypeDef;
mCurTypeDef = new BfTypeDef();
mCurActualTypeDef = mCurTypeDef;
while ((outerTypeDef != NULL) && (outerTypeDef->IsGlobalsContainer()))
outerTypeDef = outerTypeDef->mOuterType;
while ((actualOuterTypeDef != NULL) && (actualOuterTypeDef->IsGlobalsContainer()))
actualOuterTypeDef = actualOuterTypeDef->mOuterType;
SetAndRestoreValue<BfTypeDef*> prevTypeDef(mCurTypeDef, new BfTypeDef());
SetAndRestoreValue<BfTypeDef*> prevActualTypeDef(mCurActualTypeDef, mCurTypeDef);
mCurTypeDef->mSystem = mSystem;
mCurTypeDef->mProject = mCurSource->mProject;
mCurTypeDef->mNamespace = mNamespace;
@ -1672,9 +1679,6 @@ void BfDefBuilder::Visit(BfTypeDeclaration* typeDeclaration)
{
mCurTypeDef->mName->mAtomUpdateIdx = ++mSystem->mAtomUpdateIdx;
}
mCurTypeDef = outerTypeDef;
mCurActualTypeDef = actualOuterTypeDef;
}
void BfDefBuilder::FinishTypeDef(bool wantsToString)