X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2FB%2FB%2FLint.pm;h=1510d365cdc9254475974a498075a8546060ad8d;hb=1f01d15689eebf8cac0437bd6198b0ee0e3a2c33;hp=67abe3d1459e2689eb280af850d14a9daf1ff79d;hpb=3f872cb9b86492b28abfc3221567ac8cecfb2724;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/B/B/Lint.pm b/ext/B/B/Lint.pm index 67abe3d..1510d36 100644 --- a/ext/B/B/Lint.pm +++ b/ext/B/B/Lint.pm @@ -1,5 +1,7 @@ package B::Lint; +our $VERSION = '1.01'; + =head1 NAME B::Lint - Perl lint @@ -162,7 +164,7 @@ sub gimme { my $op = shift; my $flags = $op->flags; if ($flags & OPf_WANT) { - return(($flags & OPf_WANT_LIST) ? 1 : 0); + return(($flags & OPf_WANT == OPf_WANT_LIST) ? 1 : 0); } return undef; } @@ -172,7 +174,7 @@ sub B::OP::lint {} sub B::COP::lint { my $op = shift; if ($op->name eq "nextstate") { - $file = $op->filegv->SV->PV; + $file = $op->file; $line = $op->line; $curstash = $op->stash->NAME; } @@ -232,7 +234,7 @@ sub B::LOOP::lint { } } -sub B::GVOP::lint { +sub B::SVOP::lint { my $op = shift; if ($check{dollar_underscore} && $op->name eq "gvsv" && $op->gv->NAME eq "_") @@ -241,11 +243,11 @@ sub B::GVOP::lint { } if ($check{private_names}) { my $opname = $op->name; - my $gv = $op->gv; - if (($opname eq "gv" || $opname eq "gvsv") - && $gv->NAME =~ /^_./ && $gv->STASH->NAME ne $curstash) - { - warning('Illegal reference to private name %s', $gv->NAME); + if ($opname eq "gv" || $opname eq "gvsv") { + my $gv = $op->gv; + if ($gv->NAME =~ /^_./ && $gv->STASH->NAME ne $curstash) { + warning('Illegal reference to private name %s', $gv->NAME); + } } } if ($check{undefined_subs}) { @@ -345,7 +347,7 @@ sub compile { %check = (); } else { - if ($opt =~ s/^no-//) { + if ($opt =~ s/^no_//) { $check{$opt} = 0; } else {