Răsfoiți Sursa

Made "Cannot take address of read-only variable" a warning

Brian Fiete 6 luni în urmă
părinte
comite
4cd8fe7742
1 a modificat fișierele cu 6 adăugiri și 0 ștergeri
  1. 6 0
      IDEHelper/Compiler/BfExprEvaluator.cpp

+ 6 - 0
IDEHelper/Compiler/BfExprEvaluator.cpp

@@ -20335,6 +20335,12 @@ bool BfExprEvaluator::CheckModifyResult(BfTypedValue& typedVal, BfAstNode* refNo
 	if ((!skipCopyOnMutate) && (typedVal.IsCopyOnMutate()))
 		typedVal = mModule->CopyValue(typedVal);
 
+	if ((emitWarning) && (typedVal.IsReadOnly()))
+	{
+		mModule->Warn(0, StrFormat("Cannot %s read-only variable", modifyType), refNode);
+		return true;
+	}
+
 	return mModule->CheckModifyValue(typedVal, refNode, modifyType);
 }