From 08a63e5b9f3457e6cf73d591f841606536b05ece Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Tue, 5 Jul 2022 09:24:04 -0700 Subject: [PATCH] Fixed appended field dtor with extensions --- IDEHelper/Compiler/BfModule.cpp | 6 ++++++ IDEHelper/Compiler/BfSystem.cpp | 2 ++ 2 files changed, 8 insertions(+) diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index e5264006..5a81779f 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -17033,6 +17033,12 @@ void BfModule::EmitDtorBody() if ((fieldDef != NULL) && (fieldDef->mIsStatic == methodDef->mIsStatic) && (fieldInst->IsAppendedObject())) { + if (fieldDef->mDeclaringType != mCurMethodInstance->mMethodDef->mDeclaringType) + { + BF_ASSERT(mCurTypeInstance->mTypeDef->mIsCombinedPartial); + continue; + } + auto refNode = fieldDef->GetRefNode(); UpdateSrcPos(refNode); diff --git a/IDEHelper/Compiler/BfSystem.cpp b/IDEHelper/Compiler/BfSystem.cpp index bc0b88c1..b0a0d795 100644 --- a/IDEHelper/Compiler/BfSystem.cpp +++ b/IDEHelper/Compiler/BfSystem.cpp @@ -3319,6 +3319,8 @@ void BfSystem::FinishCompositePartial(BfTypeDef* compositeTypeDef) if (auto paramDeclaration = BfNodeDynCast(fieldDef->mFieldDeclaration)) if (paramDeclaration->mInitializer != NULL) hasInitializers = true; + if (fieldDef->mIsAppend) + hasInitializers = true; } }