<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Martok <<a href="mailto:listbox@martoks-place.de">listbox@martoks-place.de</a>> schrieb am Mo., 12. Aug. 2019, 10:18:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Am 12.08.2019 um 09:40 schrieb Michael Van Canneyt:<br>
> <br>
> This question pops up from time to time since 15 years if not more.<br>
<br>
Fun fact: questions asking why this doesn't work have a higher Google ranking<br>
than the manual for "COPERATORS" ;-)<br>
<br>
@Ryan: as with all things FPC, ignore the manual, read the parser:<br>
<<a href="https://github.com/graemeg/freepascal/blob/4e6c609/compiler/pexpr.pas#L221" rel="noreferrer noreferrer" target="_blank">https://github.com/graemeg/freepascal/blob/4e6c609/compiler/pexpr.pas#L221</a>><br>
<br>
Turns out c-operators do not actually translate to their long form but instead<br>
have special, duplicated handling. Because of course they do.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">The code you linked converts "a += b" to "tmp := @a; tmp^ := tmp^ + b", so except for using a temp to avoid duplicate calculation of "a" in how far is this not the long form? </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>