[ID 20000701.002] Regular Expressions Not Unsetting $1 Vars When Backtracking
[p5sagit/p5-mst-13.2.git] / t / op / method2entersub.t
CommitLineData
4f470f63 1#!./perl
2
3BEGIN {
4 package BaseClass; #forward package declaration for base.pm
5
6 chdir 't' if -d 't';
7 unshift @INC, '../lib' if -d '../lib';
8}
9
10{
11 package BaseClass;
12
13 sub method {
14 }
15}
16
17{
18 package Class;
19 use base qw(BaseClass +readonly);
20
21 sub mtest {
22 Class->method;
23
24 my Class $obj = bless {};
25
26 $obj->method;
27 }
28
29}
30
31{
32 package Class2;
33 use base qw(BaseClass);
34
35 sub mtest {
36 Class2->method;
37
38 my Class2 $obj = bless {};
39
40 $obj->method;
41 }
42}
43
44use Test;
45
46plan tests => 2;
47
48use B ();
49
50sub cv_root {
51 B::svref_2object(shift)->ROOT;
52}
53
54sub method_in_tree {
55 my $op = shift;
56 if ($$op && ($op->flags & B::OPf_KIDS)) {
57 for (my $kid = $op->first; $$kid; $kid = $kid->sibling) {
58 return 1 if $kid->ppaddr =~ /method/i;
59 return 1 if method_in_tree($kid);
60 }
61 }
62 return 0;
63}
64
65ok ! method_in_tree(cv_root(\&Class::mtest));
66ok method_in_tree(cv_root(\&Class2::mtest));