Skip to content

Commit

Permalink
- Fixes access to exported subs via main compunit in
Browse files Browse the repository at this point in the history
scripts/check-rw-uses.pl6

  timotimo++ for his help with the solution!
  • Loading branch information
Xliff committed Sep 16, 2020
1 parent 48066a3 commit fc39b80
Showing 1 changed file with 21 additions and 14 deletions.
35 changes: 21 additions & 14 deletions scripts/check-rw-params.pl6
Expand Up @@ -18,8 +18,11 @@ try {
$raw-loaded = True;
}
unless $raw-loaded {
say "Sorry! No raw definitions found for '{$n}::{$cu}'";
exit;
$r := ::("%RAW-DEFS");
unless $r.keys {
say "Sorry! No raw definitions found for '{$n}::{$cu}'";
exit;
}
}

my @methods = do gather for $o.^methods(:local) {
Expand All @@ -43,20 +46,24 @@ my @methods = do gather for $o.^methods(:local) {

my %raw-subs := $r.WHO;
my $prefix = get-longest-prefix(%raw-subs.keys);
for @methods -> ($m, @rw) {
my $sub-name = "{ $prefix }_{ $m.name }";
my $raw-sub = %raw-subs{$sub-name};
if @methods {
for @methods -> ($m, @rw) {
my $sub-name = "{ $prefix }_{ $m.name }";
my $raw-sub = %raw-subs{$sub-name};

for @rw {
my $sp = $raw-sub.signature.params[ .[0] - 1 ];
for @rw {
my $sp = $raw-sub.signature.params[ .[0] - 1 ];

unless .[1].name eq $sp.name {
say "Potential parameter mismatch, since '{ .[1].name }' != '{
$sp.name }'";
}
unless $raw-sub.signature.params[ .[0] - 1 ].rw {
say "{ $m.name } -- '{ $sub-name }' parameter '{
.[ 1 ].name }' should be rw!'"
unless .[1].name eq $sp.name {
say "Potential parameter mismatch, since '{ .[1].name }' != '{
$sp.name }'";
}
unless $raw-sub.signature.params[ .[0] - 1 ].rw {
say "{ $m.name } -- '{ $sub-name }' parameter '{
.[ 1 ].name }' should be rw!'"
}
}
}
} else {
say 'No rw parameters to check';
}

0 comments on commit fc39b80

Please sign in to comment.