From cccf4bfe9af80bffaab1a669e70b007d886f9419 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 18 Nov 2023 07:42:04 -0500 Subject: [PATCH] Support case enum member capture in specialized section --- IDEHelper/Compiler/BfStmtEvaluator.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/IDEHelper/Compiler/BfStmtEvaluator.cpp b/IDEHelper/Compiler/BfStmtEvaluator.cpp index 83abe2b3..a3ea96b8 100644 --- a/IDEHelper/Compiler/BfStmtEvaluator.cpp +++ b/IDEHelper/Compiler/BfStmtEvaluator.cpp @@ -2888,9 +2888,12 @@ BfTypedValue BfModule::TryCaseEnumMatch(BfTypedValue enumVal, BfTypedValue tagVa continue; if ((fieldInstance->mIsEnumPayloadCase) && (fieldDef->mName == enumCaseName)) { - if ((!enumType->IsTypeMemberIncluded(fieldDef->mDeclaringType, activeTypeDef, this)) || - (!enumType->IsTypeMemberAccessible(fieldDef->mDeclaringType, activeTypeDef))) - continue; + if (!IsInSpecializedSection()) + { + if ((!enumType->IsTypeMemberIncluded(fieldDef->mDeclaringType, activeTypeDef, this)) || + (!enumType->IsTypeMemberAccessible(fieldDef->mDeclaringType, activeTypeDef))) + continue; + } auto resolvePassData = mCompiler->mResolvePassData; if (resolvePassData != NULL)