Commit | Line | Data |
7ae55cf7 |
1 | use strict; |
2 | use warnings; |
86a4d873 |
3 | use Test::More; |
7ae55cf7 |
4 | use Test::Exception; |
5 | |
efd3d14c |
6 | use Class::MOP; |
7ae55cf7 |
7 | |
8 | =pod |
9 | |
10 | This tests a bug sent via RT #39001 |
11 | |
12 | =cut |
13 | |
14 | { |
15 | package Foo; |
16 | use metaclass; |
17 | } |
18 | |
19 | throws_ok { |
20 | Foo->meta->superclasses('Foo'); |
21 | } qr/^Recursive inheritance detected/, "error occurs when extending oneself"; |
22 | |
23 | { |
24 | package Bar; |
25 | use metaclass; |
26 | } |
27 | |
28a82dda |
28 | # reset @ISA, so that calling methods like ->isa won't die (->meta does this |
29 | # if DEBUG_NO_META is set) |
30 | @Foo::ISA = (); |
31 | |
7ae55cf7 |
32 | lives_ok { |
33 | Foo->meta->superclasses('Bar'); |
34 | } "regular subclass"; |
35 | |
36 | throws_ok { |
37 | Bar->meta->superclasses('Foo'); |
38 | } qr/^Recursive inheritance detected/, "error occurs when Bar extends Foo, when Foo is a Bar"; |
39 | |
86a4d873 |
40 | done_testing; |