We only need local $? if we inline calls to DEMOLISH
[gitmo/Moose.git] / t / cmop / RT_39001_fix.t
CommitLineData
38bf2a25 1use strict;
2use warnings;
3use Test::More;
4use Test::Fatal;
5
6use Class::MOP;
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
19like( exception {
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
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
32is( exception {
33 Foo->meta->superclasses('Bar');
34}, undef, "regular subclass" );
35
36like( exception {
37 Bar->meta->superclasses('Foo');
38}, qr/^Recursive inheritance detected/, "error occurs when Bar extends Foo, when Foo is a Bar" );
39
40done_testing;