From 688c80e2fc64b1ab5e4a2d3ff804dd23c8d9f3fd Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Fri, 13 May 2022 14:25:10 -0700 Subject: [PATCH] Implemented mAllowReadOnlyReference for expression-bodied methods --- IDEHelper/Compiler/BfModule.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index 892bf15d..8d097649 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -21239,8 +21239,12 @@ void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup, expectingType = NULL; } + BfExprEvaluator exprEvaluator(this); + if (mCurMethodInstance->mMethodDef->mIsReadOnly) + exprEvaluator.mAllowReadOnlyReference = true; + UpdateSrcPos(expressionBody); - auto retVal = CreateValueFromExpression(expressionBody, expectingType, exprEvalFlags); + auto retVal = CreateValueFromExpression(exprEvaluator, expressionBody, expectingType, exprEvalFlags); if ((retVal) && (!retVal.mType->IsVar()) && (expectingType != NULL)) { mCurMethodState->mHadReturn = true;