Login
self-compliance with Variables::ProhibitReusedVarNames
authorChris Dolan <chris+github@chrisdolan.net>
Sun, 28 Sep 2008 06:16:02 +0000 (06:16 +0000)
committerChris Dolan <chris+github@chrisdolan.net>
Sun, 28 Sep 2008 06:16:02 +0000 (06:16 +0000)
bin/perlcritic
lib/Perl/Critic.pm
lib/Perl/Critic/Policy/InputOutput/RequireBriefOpen.pm
lib/Perl/Critic/Policy/Variables/ProhibitReusedVarNames.pm
lib/Perl/Critic/PolicyParameter/Behavior/Enumeration.pm
lib/Perl/Critic/PolicyParameter/Behavior/Integer.pm
lib/Perl/Critic/PolicyParameter/Behavior/StringList.pm
lib/Perl/Critic/Utils.pm
t/00_modules.t
t/20_policy_podspelling.t

index fce6fe3..9cb0f0e 100755 (executable)
@@ -220,8 +220,8 @@ sub get_input {
 
 sub critique {
 
-    my ( $opts_ref, @files ) = @_;
-    @files || die "No perl files were found.\n";
+    my ( $opts_ref, @files_to_critique ) = @_;
+    @files_to_critique || die "No perl files were found.\n";
 
     # Perl::Critic has lots of dependencies, so loading is delayed
     # until it is really needed.  This hack reduces startup time for
@@ -238,7 +238,7 @@ sub critique {
     my $number_of_violations = undef;
     my $had_error_in_file = 0;
 
-    for my $file (@files) {
+    for my $file (@files_to_critique) {
 
         eval {
             my @violations = $critic->critique($file);
index 02fb5fd..c01fd99 100644 (file)
@@ -324,10 +324,10 @@ sub _filter_other_lines {
         my $end   = $pragma;
 
       SIB:
-        while ( my $sib = $end->next_sibling() ) {
-            $end = $sib; # keep track of last sibling encountered in this scope
+        while ( my $esib = $end->next_sibling() ) {
+            $end = $esib; # keep track of last sibling encountered in this scope
             last SIB
-                if $sib->isa('PPI::Token::Comment') && $sib =~ $use_critic;
+                if $esib->isa('PPI::Token::Comment') && $esib =~ $use_critic;
         }
 
         # We either found an end or hit the end of the scope.
index 0d22d05..6b07e32 100644 (file)
@@ -105,7 +105,7 @@ sub _find_close_invocations_or_return {
 
     my $closes = $parent->find(sub {
         ##no critic (ProhibitExplicitReturnUndef)
-        my ($parent, $candidate) = @_;
+        my ($parent, $candidate) = @_;  ## no critic(ReusedVarNames)
         return undef if $candidate->isa('PPI::Statement::Sub');
         my $candidate_loc = $candidate->location;
         return undef if !defined $candidate_loc->[0];
index 4c80316..36cdf38 100644 (file)
@@ -56,7 +56,7 @@ sub violates {
        if ($outer->isa('PPI::Statement::Variable') && 'local' ne $outer->type) {
           my %vars = map {$_ => undef} $outer->variables;
           my $hits;
-          ($hits, $names) = part { exists $vars{$_} ? 0 : 1 } @$names;
+          ($hits, $names) = part { exists $vars{$_} ? 0 : 1 } @{$names};
           if ($hits) {
              push @violations, map { $self->violation( $DESC . $_, $EXPL, $elem ) } @{$hits};
              last if !$names;  # found violations for ALL variables, we're done
@@ -90,7 +90,7 @@ distribution.
 It's really hard on future maintenance programmers if you reuse a
 variable name in a lexical scope. The programmer is at risk of
 confusing which variable is which. And, worse, the programmer could
-accidentally remov the inner declaration, thus silently changing the
+accidentally remove the inner declaration, thus silently changing the
 meaning of the inner code to use the outer variable.
 
    my $x = 1;
index 92cc99e..cb1e6ae 100644 (file)
@@ -57,7 +57,7 @@ sub initialize_parameter {
                 # Normally bad thing, obscuring a variable in a outer scope
                 # with a variable with the same name is being done here in
                 # order to remain consistent with the parser function interface.
-                my ($policy, $parameter, $config_string) = @_;
+                my ($policy, $parameter, $config_string) = @_;  ## no critic(ReusedVarNames)
 
                 my @potential_values;
                 my $value_string = $parameter->get_default_string();
@@ -98,7 +98,7 @@ sub initialize_parameter {
                 # Normally bad thing, obscuring a variable in a outer scope
                 # with a variable with the same name is being done here in
                 # order to remain consistent with the parser function interface.
-                my ($policy, $parameter, $config_string) = @_;
+                my ($policy, $parameter, $config_string) = @_;  ## no critic(ReusedVarNames)
 
                 my $value_string = $parameter->get_default_string();
 
index eb4c0ce..1c9d2e1 100644 (file)
@@ -33,7 +33,7 @@ sub initialize_parameter {
             # Normally bad thing, obscuring a variable in a outer scope
             # with a variable with the same name is being done here in
             # order to remain consistent with the parser function interface.
-            my ($policy, $parameter, $config_string) = @_;
+            my ($policy, $parameter, $config_string) = @_;  ## no critic(ReusedVarNames)
 
             my $value_string = $parameter->get_default_string();
 
index 61e58a9..66c12e3 100644 (file)
@@ -39,7 +39,7 @@ sub initialize_parameter {
             # Normally bad thing, obscuring a variable in a outer scope
             # with a variable with the same name is being done here in
             # order to remain consistent with the parser function interface.
-            my ($policy, $parameter, $config_string) = @_;
+            my ($policy, $parameter, $config_string) = @_;  ## no critic(ReusedVarNames)
 
             my @values = @{$always_present_values};
             my $value_string = $parameter->get_default_string();
index 9c1beed..915049f 100644 (file)
@@ -1093,7 +1093,7 @@ sub is_unchecked_call {
         # the elements to this statement to see if we find 'or' or '||'.
 
         my $or_operators = sub  {
-            my (undef, $elem) = @_;
+            my (undef, $elem) = @_;  ## no critic(ReusedVarNames)
             return if not $elem->isa('PPI::Token::Operator');
             return if $elem ne q{or} && $elem ne q{||};
             return 1;
index 2a87706..8d6270c 100644 (file)
@@ -129,10 +129,11 @@ can_ok('Perl::Critic::Policy', 'set_themes');
 can_ok('Perl::Critic::Policy', 'violates');
 can_ok('Perl::Critic::Policy', 'violation');
 
-
-my $policy = Perl::Critic::Policy->new();
-isa_ok($policy, 'Perl::Critic::Policy');
-is($policy->VERSION(), $version_string, 'Perl::Critic::Policy version');
+{
+    my $policy = Perl::Critic::Policy->new();
+    isa_ok($policy, 'Perl::Critic::Policy');
+    is($policy->VERSION(), $version_string, 'Perl::Critic::Policy version');
+}
 
 #-----------------------------------------------------------------------------
 # Test Perl::Critic::Violation module interface
index 1f0b239..7ed11ba 100644 (file)
@@ -36,17 +36,17 @@ my $can_podspell =
     &&  can_run_spell_command();
 
 sub can_determine_spell_command {
-    my $policy = Perl::Critic::Policy::Documentation::PodSpelling->new();
-    $policy->initialize_if_enabled();
+    my $pol = Perl::Critic::Policy::Documentation::PodSpelling->new();
+    $pol->initialize_if_enabled();
 
-    return $policy->_get_spell_command_line();
+    return $pol->_get_spell_command_line();
 }
 
 sub can_run_spell_command {
-    my $policy = Perl::Critic::Policy::Documentation::PodSpelling->new();
-    $policy->initialize_if_enabled();
+    my $pol = Perl::Critic::Policy::Documentation::PodSpelling->new();
+    $pol->initialize_if_enabled();
 
-    return $policy->_run_spell_command( <<'END_TEST_CODE' );
+    return $pol->_run_spell_command( <<'END_TEST_CODE' );
 =pod
 
 =head1 Test The Spell Command
@@ -132,8 +132,7 @@ arglbargl
 END_PERL
 
 {
-    my %config;
-    $config{stop_words} = 'foo arglbargl bar';
+    local $config{stop_words} = 'foo arglbargl bar';
     is(
         eval { pcritique($policy, \$code, \%config) },
         can_podspell() ? 0 : undef ,