In this code I'm using multi-dispatch with a subset type that
makes string values special: "wuhn", "tew" and "thuree".
use Test;
multi sub whats_my_type (Str $item) {
return "This is a Str: $item";
}
subset GoofyNum of Str where { $_ eq any( 'wuhn', 'tew', 'thuree' ) };
multi sub whats_my_type (GoofyNum $item) {
return "This is a GoofyNum string: $item";
}
{
my ($ret, $arg);
$ret = whats_my_type('two');
like $ret, /<< Str >>/, "quoted string argument of 'two' is Str";
$ret = whats_my_type('tew');
like $ret, /<< GoofyNum >>/, "quoted string argument of
'wuhn' is 'goofy'";
$arg = "one";
$ret = whats_my_type( $arg );
like $ret, /<< Str >>/, "string in var argument of '$arg' is Str";
$arg = "whun";
$ret = whats_my_type( $arg );
like $ret, /<< GoofyNum >>/, "string in var argument of 'wuhn'
is 'goofy'";
}
I would think all four of these tests should pass, instead I see
the last one failing: for some reason there's a difference in the
case of a simple quoted string, and a string inside a variable.
Any comments?
raku --version
Welcome to 𝐑𝐚𝐤𝐮𝐝𝐨™ v2020.10.
Implementing the 𝐑𝐚𝐤𝐮™ programming language v6.d.
Built on MoarVM version 2020.10.
uname -a
Linux fandango 4.9.0-8-686 #1 SMP Debian 4.9.144-3 (2019-02-02) i686 GNU/Linux