On Mon, 27 Feb 2017 16:53:02 -0800, zef...@fysh.org wrote: > Zoffix Znet via RT wrote: > >Fix: https://github.com/rakudo/rakudo/commit/61a65cee3d > > You've just moved the problem along. There's now a new class of > object that, if evaluated to, will be treated as if evaluation failed on > exception. Successful evaluation can yield literally any value, so if you > want to represent the disjunction of an evaluation result with something > that's not an evaluation result then you can't have evaluation results > just represented as themselves. That doesn't leave any distinct values > to represent the other things. You need more structure: for example, > your single $output value could be a list of the form (True, $value) > to represent a normal evaluation result and (False, $ex) to represent > evaluation terminating by exception. > > -zefram >
Thanks. Fixed now. Note that your proposal wouldn't work, as it's possible to fill out the exception variable by returning a two-item Slip as the output. Fix: https://github.com/rakudo/rakudo/commit/7f9235c79d Tests: https://github.com/rakudo/rakudo/commit/7f9235c79d