On Mon Nov 22 16:06:07 2010, masak wrote:
> <masak> rakudo: sub foo($a, %h?) { bar($a, %h) }; sub bar($a, %h?) {
> say "alive!" }; foo(42)
> <p6eval> rakudo : OUTPUT«Method 'HOW' not found for invocant of class
> 'Hash' in 'bar' at line 1 [...]
> <masak> rakudo: sub foo($a, %h?) { say %h.WHAT }; foo(42)
> <p6eval> rakudo : OUTPUT«Method 'WHAT' not found for invocant of class
> 'Hash' in 'foo' at line 22:/tmp/qK5WsYzzEI in main program body
at
> line 22:/tmp/qK5WsYzzEI»
> * masak submits rakudobug
> <colomon> masak++
> <masak> bug brought to you courtesy of a November being brought back
> from the Mostly Dead.
>
> Further experimenting reveals that the %h coming in through &foo
> claims to be a Hash, but it has no methods at all, so you can't do
> anything with it, not even pass it to &bar.
Fixed:
16:35 < [Coke]> rakudo: sub foo($a, %h?) { bar($a, %h) }; sub bar($a,
%h?) {say
"alive!" }; foo(42)
16:35 -!- pothos_ is now known as pothos
16:35 <+p6eval> rakudo 88c5a5: OUTPUT«alive!»
16:35 < [Coke]> rakudo: sub foo($a, %h?) { say %h.WHAT }; foo(42)
16:36 <+p6eval> rakudo 88c5a5: OUTPUT«Hash()»
Closable with tests.
--
Will "Coke" Coleda