Revision history for Perl extension Class-MOP.
+0.64
+ * Class::MOP::Immutable
+ - fixing subtle edge case in immutable when you
+ call ->meta (stevan)
+
0.63 Mon July 7, 2008
* Class::MOP
- load_class will initialize a metaclass even if
return Class::MOP::Class->initialize($self) unless blessed($self);
# otherwise, they are asking for the metaclass
# which has been made immutable, which is itself
- return $self;
+ # except in the cases where it is a metaclass itself
+ # that has been made immutable and for that we need
+ # to dig a bit ...
+ if ($self->isa('Class::MOP::Class')) {
+ return $self->{'___original_class'}->meta;
+ }
+ else {
+ return $self;
+ }
},
is_mutable => sub { 0 },
is_immutable => sub { 1 },