Merge branch 'stable'
[gitmo/Class-MOP.git] / t / 303_RT_39001_fix.t
CommitLineData
7ae55cf7 1use strict;
2use warnings;
86a4d873 3use Test::More;
871e9eb5 4use Test::Fatal;
7ae55cf7 5
efd3d14c 6use Class::MOP;
7ae55cf7 7
8=pod
9
10This tests a bug sent via RT #39001
11
12=cut
13
14{
15 package Foo;
16 use metaclass;
17}
18
871e9eb5 19like( exception {
7ae55cf7 20 Foo->meta->superclasses('Foo');
871e9eb5 21}, qr/^Recursive inheritance detected/, "error occurs when extending oneself" );
7ae55cf7 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
871e9eb5 32is( exception {
7ae55cf7 33 Foo->meta->superclasses('Bar');
871e9eb5 34}, undef, "regular subclass" );
7ae55cf7 35
871e9eb5 36like( exception {
7ae55cf7 37 Bar->meta->superclasses('Foo');
871e9eb5 38}, qr/^Recursive inheritance detected/, "error occurs when Bar extends Foo, when Foo is a Bar" );
7ae55cf7 39
86a4d873 40done_testing;