return $attr;
}
-sub compute_all_applicable_attributes { # DEPRECATED
- Carp::cluck('compute_all_applicable_attributes() has been deprecated. Use get_all_attributes() instead');
-
- return shift->get_all_attributes(@_)
-}
-
sub linearized_isa;
sub new_object;
sub clone_object;
-
-sub clone_instance { # DEPRECATED
- my ($class, $instance, %params) = @_;
-
- Carp::cluck('clone_instance() has been deprecated. Use clone_object() instead');
-
- return $class->clone_object($instance, %params);
-}
-
-
sub immutable_options {
my ( $self, @args ) = @_;
);
}
-
sub make_immutable {
my $self = shift;
my %args = $self->immutable_options(@_);
my $into = $self->name;
my $original = $into->can($name)
- or $self->throw_error("The method '$name' is not found in the inheritance hierarchy for class $into");
+ or $self->throw_error("The method '$name' was not found in the inheritance hierarchy for $into");
my $modifier_table = $self->{modifiers}{$name};
if ( !$method || !Data::Util::subroutine_modifier($method) ) {
unless ($method) {
$method = $into->can($name)
- or Carp::confess("The method '$name' is not found in the inheritance hierarchy for class $into");
+ or $self->throw_error("The method '$name' was not found in the inheritance hierarchy for $into");
}
$method = Data::Util::modify_subroutine( $method,
$type => [$code] );
};
}
+ # workaround older Perl's bug that caused segv :(
+ {
+ no warnings 'once';
+ our $__not_used = \&_install_modifier; # keep the CV not to be released
+ }
+
# replace this method itself :)
{
no warnings 'redefine';
=head1 VERSION
-This document describes Mouse version 0.63
+This document describes Mouse version 0.67
=head1 METHODS