From 36700b39ab4f18fb4b1969fac81b1c1df44a3940 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Tue, 13 Feb 2024 06:42:06 -0500 Subject: [PATCH] Fixed expandedParamsArray in unspecialized sections --- IDEHelper/Compiler/BfExprEvaluator.cpp | 7 ++++++- IDEHelper/Compiler/BfModuleTypeUtils.cpp | 1 - 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 43088168..b66d1bdf 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -8438,7 +8438,12 @@ BfTypedValue BfExprEvaluator::CreateCall(BfAstNode* targetSrc, const BfTypedValu { if (argValue) { - if (IsConstEval()) + if (argValue.mValue.IsFake()) + { + if ((!mModule->IsInUnspecializedGeneric()) && (!mModule->mBfIRBuilder->mIgnoreWrites)) + mModule->InternalError("Invalid expandedParamsArray value"); + } + else if (IsConstEval()) { auto constant = mModule->mBfIRBuilder->GetConstant(expandedParamsArray.mValue); BF_ASSERT(constant->mConstType == BfConstType_Agg); diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index c6fb83a9..fade3465 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -13280,7 +13280,6 @@ BfIRValue BfModule::CastToValue(BfAstNode* srcNode, BfTypedValue typedVal, BfTyp } else fromTypedValue = BfTypedValue(mBfIRBuilder->GetFakeVal(), genericParamInst->mTypeConstraint, genericParamInst->mTypeConstraint->IsValueType()); - prevIgnoreWrites.Restore(); auto result = CastToValue(srcNode, fromTypedValue, toType, (BfCastFlags)(castFlags | BfCastFlags_SilentFail)); if (result)