A clause (1.12) may be ... a message instruction...; a message instruction, in turn (1.12.6) may be a message term; and a message term (1.11.4) has a certain syntax. On p. 24, we read:
If the message term uses ~, the receiver method must return a result object
But this is, in the general case, plain wrong: the invoked method can just return or exit, without returning a result.
For example,
.c~new~m
say result
::Class c
::Method m
Say "hi"
--Implicit return
Prints "hi", and then "RESULT".
Anonymous
I am attaching a patch.
Sigh. That was me, of course. I got "spambot protection engaged".
The patch was contaminated with a previous one. That one should work.
Like any Term, a Message Term is part of an expression and must always return a result.
In contrast, a Message Instructions has the same form as a Message Term, but is not required to return a result.
Added some clarification with [r12867]
Related
Commit: [r12867]