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

Reply via email to