use v6-alpha; use Test; plan 8; # This next group added by Darren Duncan following discovery while debugging ext/Locale-KeyedText: { sub foo( $arg ) { return $arg.WHAT } sub make_array() { return ['were','there'] } sub make_hash() { return {'z'=>'y','x'=>'w'} } # my ($temp, @temp, %temp); # @temp = (); # is( foo(\@temp), ::Array, "named-def empty array arg defined via array var" ); # $temp = []; # is( foo($temp), ::Array, "anon-def empty array arg defined via scalar var" ); is( foo([]), ::Array, "anon-def empty array arg defined inline" ); # @temp = ('hello'); # is( foo(\@temp), ::Array, "named-def 1-elem array arg defined via array var" ); # $temp = ['hello']; # is( foo($temp), ::Array, "anon-def 1-elem array arg defined via scalar var" ); is( foo(['hello']), ::Array, "anon-def 1-elem array arg defined inline" ); # @temp = ('hello','world'); # is( foo(\@temp), ::Array, "named-def 2-elem array arg defined via array var" ); # $temp = ['hello','world']; # is( foo($temp), ::Array, "anon-def 2-elem array arg defined via scalar var" ); is( foo(['hello','world']), ::Array, "anon-def 2-elem array arg defined inline" ); # $temp = make_array(); # is( foo($temp), ::Array, "2-elem array arg, sub-returned, invoked via scalar var" ); is( foo(make_array()), ::Array, "2-elem array arg, sub-returned, invoked inline" ); # %temp = (); # is( foo(\%temp), ::Hash, "named-def empty hash arg defined via hash var" ); # $temp = hash(); # is( foo($temp), ::Hash, "anon-def empty hash arg defined via scalar var" ); is( foo(hash()), ::Hash, "anon-def empty hash arg defined inline" ); # %temp = ('a'=>'b'); # is( foo(\%temp), ::Hash, "named-def 1-elem hash arg defined via hash var" ); # $temp = {'a'=>'b'}; # is( foo($temp), ::Hash, "anon-def 1-elem hash arg defined via scalar var" ); is( foo({'a'=>'b'}), ::Hash, "anon-def 1-elem hash arg defined inline" ); # %temp = ('a'=>'b','c'=>'d'); # is( foo(\%temp), ::Hash, "named-def 2-elem hash arg defined via hash var" ); # $temp = {'a'=>'b','c'=>'d'}; # is( foo($temp), ::Hash, "anon-def 2-elem hash arg defined via scalar var" ); is( foo({'a'=>'b','c'=>'d'}), ::Hash, "anon-def 2-elem hash arg defined inline" ); # $temp = make_hash(); # is( foo($temp), ::Hash, "2-elem hash arg, sub-returned, invoked via scalar var" ); is( foo(make_hash()), ::Hash, "2-elem hash arg, sub-returned, invoked inline" ); }