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