From 9154511e7898dfe92d9c91e11faeebecf3943b89 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 3 Jul 2021 07:47:44 -0700 Subject: [PATCH] Make AssumeInstantiated force default ctor reification --- IDEHelper/Compiler/BfModuleTypeUtils.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index 853f43a9..de7d4aab 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -5179,6 +5179,10 @@ void BfModule::DoTypeInstanceMethodProcessing(BfTypeInstance* typeInstance) } if (typeInstance->IncludeAllMethods()) implRequired = true; + // "AssumeInstantiated" also forces default ctor + if (((typeInstance->mAlwaysIncludeFlags & BfAlwaysIncludeFlag_AssumeInstantiated) != 0) && + (methodDef->mMethodType == BfMethodType_Ctor) && (methodDef->mParams.IsEmpty())) + implRequired = true; if ((typeOptionsIncludeAll) && (ApplyTypeOptionMethodFilters(true, methodDef, typeOptions))) implRequired = true; @@ -5339,6 +5343,11 @@ void BfModule::DoTypeInstanceMethodProcessing(BfTypeInstance* typeInstance) { if ((attrTypeInst->mAttributeData->mAlwaysIncludeUser & BfAlwaysIncludeFlag_IncludeAllMethods) != 0) forceMethodImpl = true; + + // "AssumeInstantiated" also forces default ctor + if (((attrTypeInst->mAttributeData->mAlwaysIncludeUser & BfAlwaysIncludeFlag_AssumeInstantiated) != 0) && + (methodDef->mMethodType == BfMethodType_Ctor) && (methodDef->mParams.IsEmpty())) + forceMethodImpl = true; } } }