exists (and will stick around for a few releases), but it
warns that calling the public method is deprecated.
+ * Class::MOP::Method::Generated
+ - Removed the new and _new methods, since this is an abstract
+ base class, and all existing subclasses implement their own
+ constructors.
+
* MOP.xs
- Stop is_class_loaded from thinking a class is loaded if it
only has an empty GV (Florian Ragwitz).
use base 'Class::MOP::Method';
-sub new {
- my $class = shift;
- my %options = @_;
-
- ($options{package_name} && $options{name})
- || confess "You must supply the package_name and name parameters $Class::MOP::Method::UPGRADE_ERROR_TEXT";
-
- my $self = $class->_new(\%options);
-
- $self->initialize_body;
-
- return $self;
-}
-
-sub _new {
- my $class = shift;
- my $options = @_ == 1 ? $_[0] : {@_};
-
- $options->{is_inline} ||= 0;
- $options->{body} ||= undef;
+## accessors
- bless $options, $class;
+sub new {
+ confess __PACKAGE__ . " is an abstract base class, you must provide a constructor.";
}
-## accessors
-
sub is_inline { $_[0]{is_inline} }
sub definition_context { $_[0]{definition_context} }