On Mon Sep 03 09:15:38 2012, masak wrote:
> <skids> r: sub f (::T $g) { for ($g) -> T $h { } }; f("blah");
> <p6eval> rakudo 962b9b: OUTPUT«Nominal type check failed for parameter
> '$h'; expected T but got Str instead [...]
> <masak> r: sub f (::T $g) { say T.^name }; f("blah")
> <p6eval> rakudo 962b9b: OUTPUT«Str␤»
> <masak> weyrd.
> <skids> I do manage to run into some of the weirder ones, yes. :-)
> <masak> r: sub f (::T $g) { say $g ~~ Str; say $g ~~ T; say Str ~~ T
> }; f("blah")
> <p6eval> rakudo 962b9b: OUTPUT«True␤True␤True␤»
> <skids> it only happens in the for signature, every other place it
> works.
> <masak> r: sub f (::T $g) { for $g -> $h where { say Str ~~ T } {} };
> f("blah")
> <p6eval> rakudo 962b9b: OUTPUT«True␤»
> <masak> curious.
> * masak submits rakudobug

Looks like this is closable with tests:

$ ./perl6
> sub f (::T $g) { for ($g) -> T $h { } }; f("blah");

# no error

-- 
Will "Coke" Coleda

Reply via email to