0.114 2022-03-09 T. R. Wyant
Clarify POD for prohibit_returned_lexicals to make clear (I hope)
that it applies to 'state' varables as well as 'my' variables, but
does NOT detect or handle implicit returns.
allow_state_in_expression now accepts post-increment and -decrement.
Thanks to Olaf Alders for finding this.
0.113 2022-02-27 T. R. Wyant
Try to collect variable uses from signatures. Thanks to Olaf Alders
for pointing out this issue.
0.112 2021-10-04 T. R. Wyant
Tweak 'provides' and 'no_index' metadata.
0.111 2021-07-03 T. R. Wyant
Correct generation of 'provides' metadata. Thanks to Favio Poletti
for blogging
https://github.polettix.it/ETOOBUSY/2021/06/15/the-real-pause-workaround/,
and ultimately to Joel Berger for the pointer to
https://metacpan.org/pod/CPAN::Meta::Spec#no_index
Optionally check variable in catch(). This is controlled by the
check_catch configuration item, which is off by default.
0.110 2021-03-28 T. R. Wyant
Get prerequisites up to snuff, and add xt/author/prereq.t to ensure
they stay that way.
Add rt.cpan.org back to bug reporting methods. Long live RT!
0.109 2021-01-15 T. R. Wyant
Add Travis CI testing.
Use GitHub as bug tracker. R.I.P. rt.cpan.org.
0.108 2020-09-18 T. R. Wyant
Add POD section AVOIDING UNUSED VARIABLES. Thanks to Ben Martin for
the suggestion.
0.107 2020-05-07 T. R. Wyant
Make documented build dependencies nearer to reality.
0.106 2020-04-08 T. R. Wyant
Dig out variables declared inside strings e.g. "foo@{[ my $bar ]}"
Find variables declared in passing. That is, things like
Readonly::Scalar my $answer => 42; which do not get parsed by PPI as
a PPI::Statement::Variable.
Pick up $y in '( my $x, my $y )'. The previous code picked up only
the variables declared before the first comma in the
PPI::Statement::Variable.
Refactor handling of derived PPI documents.
Refactor the recording of symbol declarations and uses.
0.105 2020-02-18 T. R. Wyant
examples/unused-vars is now driven by options on the command line,
not by a configuration file.
No longer recommend Readonly::XS. Thanks to Jay Kahrman for pointing
out that this was no longer appropriate.
0.104 2019-12-23 T. R. Wyant
Add Boolean configuration item allow_state_in_expression, which
allows an otherwise-unused state variable if the policy thinks the
computed value is also used in an expression. This item is false by
default.
0.103 2019-08-17 T. R. Wyant
Test POD links.
0.102 2017-12-19 T. R. Wyant
Fix for() list and my():
The iterator variable (if any) for a for() or foreach() is not
in-scope as seen from the list. This is an issue for code like
for my $x ( @{ $x } ) {...}
The variable specified by my() is not in-scope as seen from the
right-hand side of an assignment (if any). This is an issue for
my $x = $x
Thanks to Heinz Knutzen for finding these.
0.101 2017-11-20 T. R. Wyant
Remove 'mailto' bugtracker metadata Its presence appears to tell RT
not to allow filings.
0.100 2016-07-06 T. R. Wyant
Refactor the logic that discovers which variables are interpolated
into double-quotish strings into PPIx::QuoteLike. This does not
include regular expressions, which are already handled by
PPIx::Regexp.
Survive variable declarations that declare nothing. These can appear
if (e.g.) PPI mis-parses an attribute list, and that attribute list
contains something like 'Arg(state)'.
0.006 2016-04-20 T. R. Wyant
Allow 'return ( my $x = 0 )'
This construction can be used to return a temporary value from an lvalue
subroutine. The case 'return my $x = 0' is equivalent, but was not
recognized as defining a variable. Now both are recognized and accepted
by default.
If you want to reject these, there is a new Boolean configuration item,
prohibit_returned_lexicals.
0.005 2016-01-22 T. R. Wyant
Improve performance on really, really long strings This was done by
rewriting the regular expression that finds interpolations to
minimize backtracking.
0.004 2016-01-08 T. R. Wyant
Add GitHub repository to module metadata.
0.003 2014-12-12 T. R. Wyant
Fix author test for the presence of recommended modules.
0.002 2013-10-08 T. R. Wyant
Required Perl::Critic version 1.119, since its scope computation is
adequate for our needs. Got rid of our own scope computation code.
Converted Changes file to CPAN::Changes::Spec format.
0.001 2013-06-23 T. R. Wyant
Initial production release.