Zoffix Znet via RT wrote:
>Fix: https://github.com/rakudo/rakudo/commit/db70a1fda8
This doesn't distinguish between an exception being thrown and the
expression evaluating to an exception object. The former is an error
condition that must be reported; the latter is a successful evaluation
in the same category as evaluating to a string. Incorrect behaviour
(failing to suppress output of a normal evaluation which produced its
own output) can be seen thus:
> say 123; try { my Int $a; $a = "foo" }; say 456; $!
123
456
Type check failed in assignment to $a; expected Int but got Str ("foo")
in block <unit> at <unknown file> line 1
Your single $output variable is too narrow to make the distinctions that
you need.
-zefram