Is this a known issue, or my misunderstanding?
> subset non-Nil where * !=== Nil;
(non-Nil)
> sub out-check($out) returns non-Nil { return $out }
&out-check
> out-check(44)
44
> out-check(Nil)
Nil
^ Huh, I expected an exception on "out-check(Nil)" saying the return value
failed the "returns" constraint.
The subtype works as I expect as an the argument check
> sub in-check (non-Nil $in) { $in }
&in-check
> in-check(33)
33
> in-check(Nil)
Constraint type check failed in binding to parameter '$in'; expected
non-Nil but got Nil (Nil)
in sub in-check at <unknown file> line 1
in block <unit> at <unknown file> line 1
$ raku --version
This is Rakudo version 2020.07 built on MoarVM version 2020.07
implementing Raku 6.d.
Is this my understanding of return type checking that's off, or a known
issue, or something I should add to an issue tracker?
-y