Commit | Line | Data |
db121d24 |
1 | #!/usr/bin/env perl |
2 | use strict; |
3 | use warnings; |
4 | use Test::More tests => 2; |
5 | use Moose (); |
6 | use Scalar::Util 'weaken'; |
7 | |
8 | my $weak; |
9 | do { |
10 | my $anon_class; |
11 | |
12 | do { |
13 | my $role = Moose::Meta::Role->create_anon_role; |
14 | weaken($weak = $role); |
15 | |
16 | $anon_class = Moose::Meta::Class->create_anon_class( |
17 | roles => [ $role->name ], |
18 | ); |
19 | }; |
20 | |
21 | ok($weak, "we still have the role metaclass because the anonymous class that consumed it is still alive"); |
22 | |
23 | }; |
24 | |
25 | TODO: { |
26 | local $TODO = "we don't weaken role metaclasses yet"; |
27 | ok(!$weak, "the role metaclass is freed after its last reference (from a consuming anonymous class) is freed"); |
28 | }; |
29 | |