Procházet zdrojové kódy

Implemented mAllowReadOnlyReference for expression-bodied methods

Brian Fiete před 3 roky
rodič
revize
688c80e2fc
1 změnil soubory, kde provedl 5 přidání a 1 odebrání
  1. 5 1
      IDEHelper/Compiler/BfModule.cpp

+ 5 - 1
IDEHelper/Compiler/BfModule.cpp

@@ -21239,8 +21239,12 @@ void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup,
 						expectingType = NULL;
 						expectingType = NULL;
 				}
 				}
 
 
+				BfExprEvaluator exprEvaluator(this);
+				if (mCurMethodInstance->mMethodDef->mIsReadOnly)
+					exprEvaluator.mAllowReadOnlyReference = true;
+
 				UpdateSrcPos(expressionBody);
 				UpdateSrcPos(expressionBody);
-				auto retVal = CreateValueFromExpression(expressionBody, expectingType, exprEvalFlags);
+				auto retVal = CreateValueFromExpression(exprEvaluator, expressionBody, expectingType, exprEvalFlags);
 				if ((retVal) && (!retVal.mType->IsVar()) && (expectingType != NULL))
 				if ((retVal) && (!retVal.mType->IsVar()) && (expectingType != NULL))
 				{
 				{
 					mCurMethodState->mHadReturn = true;
 					mCurMethodState->mHadReturn = true;