signal on any say this is a novalue "error-command" exit any: say "condition raised:" condition("C") condition("D") exit
This piece of code doesn't trigger on NOVALUE; it does trigger on ERROR, though.
Is this a bug or working as it should?
Rexxref says, "if NOVALUE is raised and there is no NOVALUE trap enabled, but there is a SIGNAL ON ANY trap, the ANY trap is called for the NOVALUE condition."
Anonymous
The Ref seems perfectly precise to me. Note however that not all SIGNAL ON conditions have a
corresponding CALL ON. NOVALUE and SYNTAX, for instance.
Which line is tripping the trap?
Diff:
| Note however that not all SIGNAL ON conditions have a corresponding CALL ON.
You're right - how embarrassing. I've removed my nonsense about CALL ON ANY from the ticket
| Which line is tripping the trap?
Well,
say this is a novalue
should trigger NOVALUE, but it doesn't for meThe following
"error-command"
does trigger ERRORStrange! I reduced it to its simplest form and it works just fine for 32 bit 4.2.0
signal on any
say this is a novalue
say "error. Novalue not tripped"
exit
any:
say "condition raised:" condition("C") condition("D")
exit
->> condition raised: NOVALUE THIS
Just tested with 4.2:
4.2 - 64-bit: NOVALUE triggered
5.0 - 64-bit: NOVALUE not triggered
So it's 5.0 that has the problem! Just 64 bit?
(posting again, as SF seems to be eating my posts)
Committed fix in revision [r11004].
Just to make sure, Rick, if you've got some time, can you please check, that this fix makes sense?
It for sure fixes above example, but I'm wondering how the tests (which are using
signal on any
) can run clean both with the previous and this patched code, although this patch reverses the "ANY" path of thewillTrap
function ..Related
Commit: [r11004]
On Sunday, November 22, 2015, Erich erich_st@users.sf.net wrote:
Ok, this makes more sense when viewed on my iPad rather than my phone, but
I'm not sure I fully understand your question. I will not have access to
the full code until I return from my trip, so I'm unable to investigate
this much further until I return.
Related
Bugs:
#1361Commit: [r11004]
I'm not sure what you actually changed. From the commit message it looks
like all you did was change the indentation on one line.
On Sunday, November 22, 2015, Erich erich_st@users.sf.net wrote:
Related
Bugs:
#1361Commit: [r11004]
If there's a specific handler (first "if" block), willTrap returns true.
If there's an "ANY" handler (second "if" block), willTrap had returned
"!canHandle()" which in our example case would become false for a NOVALUE
condition. I reversed the return to "canHandle()" ("!" removed).
snippet from
RexxActivation::willTrap
:Test cases added in revision [r11005].
Related
Commit: [r11005]