use warnings FATAL => 'all';
use strict;
-use Test::More tests => 104;
+use Test::More tests => 122;
use Function::Parameters;
+sub Inf () { 0 + 'Inf' }
+
fun foo($pr1, $pr2, $po1 = 1, $po2 = 2, :$no1 = 3, :$no2 = 4, %r) {}
{
is_deeply [$info->named_optional], [qw($no1 $no2)];
is scalar $info->named_optional, 2;
is $info->slurpy, '%r';
+ is $info->args_min, 2;
+ is $info->args_max, Inf;
}
{
is_deeply [$info->named_optional], [];
is scalar $info->named_optional, 0;
is $info->slurpy, undef;
+ is $info->args_min, 5;
+ is $info->args_max, Inf;
}
sub bar {}
is_deeply [$info->named_optional], [qw($no1)];
is scalar $info->named_optional, 1;
is $info->slurpy, '@rem';
+ is $info->args_min, 1;
+ is $info->args_max, Inf;
}
{
is_deeply [$info->named_optional], [];
is scalar $info->named_optional, 0;
is $info->slurpy, undef;
+ is $info->args_min, 1;
+ is $info->args_max, 1;
}
{
is_deeply [$info->named_optional], [];
is scalar $info->named_optional, 0;
is $info->slurpy, '@_';
+ is $info->args_min, 0;
+ is $info->args_max, Inf;
}
{
is_deeply [$info->named_optional], [];
is scalar $info->named_optional, 0;
is $info->slurpy, '@_';
+ is $info->args_min, 1;
+ is $info->args_max, Inf;
}
{
is_deeply [$info->named_optional], [];
is scalar $info->named_optional, 0;
is $info->slurpy, undef;
+ is $info->args_min, 6;
+ is $info->args_max, Inf;
is $f->(), $i;
}
}