give CMOP::Object a real meta method, and simplify some things
[gitmo/Class-MOP.git] / t / 303_RT_39001_fix.t
CommitLineData
7ae55cf7 1use strict;
2use warnings;
86a4d873 3use Test::More;
7ae55cf7 4use Test::Exception;
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
19throws_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 32lives_ok {
33 Foo->meta->superclasses('Bar');
34} "regular subclass";
35
36throws_ok {
37 Bar->meta->superclasses('Foo');
38} qr/^Recursive inheritance detected/, "error occurs when Bar extends Foo, when Foo is a Bar";
39
86a4d873 40done_testing;