Another couple of datapoints (IRC: 
https://irclog.perlgeek.de/perl6-dev/2017-10-15#i_15305041):

The `where` clause gets run even when types don't typecheck and its return 
value still affects the typecheck:

    <Zoffix__> m: -> *@, Int :$bin where {sleep 2; True} {say [$bin, 
$bin.^name]}(:bin<x>)
    <camelia> rakudo-moar ebb0521bd: OUTPUT: «[x Str]␤»
    <Zoffix__> m: -> *@, Int :$bin where {sleep 2; False} {say [$bin, 
$bin.^name]}(:bin<x>)
    <camelia> rakudo-moar ebb0521bd: OUTPUT: «Type check failed in binding to 
parameter '$bin'; expected Int but got Str ("x")␤  in block <unit> at <tmp> 
line 1␤␤»

Reply via email to