https://issues.apache.org/jira/browse/GROOVY-11591
> On 28. 3. 2025, at 17:26, Jochen Theodorou <blackd...@gmx.org> wrote: > > please add an issue > > On 3/28/25 00:10, OCsite wrote: >> Thanks! >> >> Should I add a jira? Or will you? Or not worth one? >> >> All the best, >> OC >> >>> On 27. 3. 2025, at 21:28, Jochen Theodorou <blackd...@gmx.org> wrote: >>> >>> On 27.03.25 18:11, o...@ocs.cz wrote: >>>> Hi there, >>>> >>>> I've just bumped into this behaviour, as shown e.g., by the code quoted >>>> below. A safe method call first evaluates method's arguments, and only >>>> then trashes the call. >>> >>> I think we do in general: >>> * push arguments on stack >>> * push receiver on stack >>> * write method call >>> >>> and for the safe variant we probably do: >>> * push arguments on stack >>> * push receiver on stack >>> * write jmp if null >>> * write method call >>> * jmp to after call >>> * marker for null case >>> * remove elements from stack >>> * push null >>> * marker for after call >>> >>>> Is this the intended behaviour? It would seem to me much better if the >>>> arguments were not evaluated in this case (precisely same way as if we >>>> used the java-like “if (obj) obj.whatever...” approach instead of the >>>> safe call) — but perhaps I am overlooking something of importance. >>> >>> expected yes... correct is the other question, because I am with you, >>> this should be like the if-variant >>> >>> bye Jochen >>> >> >