Subject: | false positives |
Date: | Wed, 27 Feb 2013 10:30:40 +0000 |
To: | bug-indirect [...] rt.cpan.org |
From: | Zefram <zefram [...] fysh.org> |
indirect-0.28 is producing false positives. It's giving the "Indirect
call of method" error on some code that uses direct method calling.
indirect-0.27 didn't do this. Here's my minimal test case:
$ perl -v | grep This
This is perl 5, version 16, subversion 1 (v5.16.1) built for x86_64-linux-ld
$ cat t0
no indirect 0.24 ":fatal";
my $x;
print qq{abcdef
@{[$x->m]}
};
1;
$ perl -c t0
Indirect call of method "m" on object "$x" at t0 line 3.
This test case is sensitive to character counts and newline positions.
Furthermore, every false positive that I've looked at so far has had the
method call either interpolated into a string (as in the example above) or
in a method body that's affected by Devel::Declare-based syntactic magic.
I think indirect must be getting buffers mixed up.
-zefram