From e25f8901a5cf0f4fa611849450c3abbe065235e0 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Mon, 25 May 2020 12:01:37 -0700 Subject: [PATCH] Fixed re-partialization of orphaned extensions --- IDEHelper/Compiler/BfCompiler.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfCompiler.cpp b/IDEHelper/Compiler/BfCompiler.cpp index a659af74..2c86caf1 100644 --- a/IDEHelper/Compiler/BfCompiler.cpp +++ b/IDEHelper/Compiler/BfCompiler.cpp @@ -3092,7 +3092,7 @@ void BfCompiler::UpdateRevisedTypes() if (checkTypeDef != rootTypeDef) { if ((checkTypeDef->mIsCombinedPartial) || - (!checkTypeDef->mIsPartial) || + ((!checkTypeDef->mIsPartial) && (checkTypeDef->mTypeCode != BfTypeCode_Extension)) || (checkTypeDef->mPartialUsed) || (!checkTypeDef->NameEquals(rootTypeDef)) || (checkTypeDef->mGenericParamDefs.size() != rootTypeDef->mGenericParamDefs.size()) || @@ -3103,6 +3103,12 @@ void BfCompiler::UpdateRevisedTypes() } } + if (checkTypeDef->mTypeCode == BfTypeCode_Extension) + { + // This was an extension that was orphaned but now we're taking it back + checkTypeDef->mIsPartial = true; + } + compositeTypeDef->mPartialUsed = true; checkTypeDef->mPartialUsed = true;