summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2002-02-16 12:28:50 +0000
committerPascal Rigaux <pixel@mandriva.com>2002-02-16 12:28:50 +0000
commit4569bca6494182143b7ddde49aa81fcf8c2ef1b6 (patch)
treec13e35083efbb54488f0f895780c89c03d5b16bf
parent8a6d1c8da3cb14e004ce863a861cf1fc5490a7f0 (diff)
downloadperl_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-xperl_checker34
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 $_
}
}