diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2002-02-16 12:28:50 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2002-02-16 12:28:50 +0000 |
commit | 4569bca6494182143b7ddde49aa81fcf8c2ef1b6 (patch) | |
tree | c13e35083efbb54488f0f895780c89c03d5b16bf | |
parent | 8a6d1c8da3cb14e004ce863a861cf1fc5490a7f0 (diff) | |
download | perl_checker-4569bca6494182143b7ddde49aa81fcf8c2ef1b6.tar perl_checker-4569bca6494182143b7ddde49aa81fcf8c2ef1b6.tar.gz perl_checker-4569bca6494182143b7ddde49aa81fcf8c2ef1b6.tar.bz2 perl_checker-4569bca6494182143b7ddde49aa81fcf8c2ef1b6.tar.xz perl_checker-4569bca6494182143b7ddde49aa81fcf8c2ef1b6.zip |
don't fail on non-tagged import
-rwxr-xr-x | perl_checker | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/perl_checker b/perl_checker index 1785269..1c2fc9e 100755 --- a/perl_checker +++ b/perl_checker @@ -141,8 +141,17 @@ sub add_use { my $already = $use_info{$package}->{$p}; # warn_("reused " . $already->{file} . " " . $already->{line}, info()) if $already && $ARGV ne $already->{file}; - - $use{$package}->{$p} = [ @{$use{$package}->{$p}}, split ' ', $op ]; + + $use{$package}->{$p} ||= []; # create it + + foreach (split ' ', $op) { + if (/^:(.*)/) { + push @{$use_tags{$package}->{$p}}, $1; + } else { + push @{$use{$package}->{$p}}, $_; + } + } + $use_info{$package}->{$p} = info(); $path{$p} and return; @@ -195,21 +204,10 @@ sub warn_ { END { foreach my $package (reverse @re_exported) { my $h = $export{$package} ||= {}; - foreach (keys %{$use{$package}}) { - %$h = (%$h, %{$export{$_}}, map { %$_ } values %{$export_tags{$_}}); - } - } - - while (my ($package, $v) = each %use) { - while (my ($k, $s) = each %$v) { - @$s and defined($export_tags{$k}) || err("package $k does not export tags"); - foreach (@$s) { - s/\"//g; - s/^:// or err("<<use $k qw(@$s ...)>> should be <<use $k qw(:@$s ...)>>", $use_info{$package}->{$k}); - - exists $export_tags{$k}->{$_} or err("package $k does not export tag $_", $use_info{$package}->{$k}); - } - } + %$h = (%$h, + (map { %{$export{$_}} } keys %{$use{$package}}), + (map { %$_ } map { values %{$export_tags{$_}} } keys %{$use{$package}}), + ); } # while (my ($package, $vars) = each %usevar) { @@ -234,7 +232,7 @@ END { foreach my $k (keys %{$use{$pkg}}) { exists $export{$k}->{$func} and next here; # ok, exported by $k - foreach (@{$use{$pkg}->{$k}}) { + foreach (@{$use_tags{$pkg}->{$k}}) { exists $export_tags{$k}->{$_}->{$func} and next here; # ok, exported by $k in tag $_ } } |