bump version to 0.84
[gitmo/Class-MOP.git] / lib / Class / MOP / Method / Constructor.pm
index c4aadff..bde9223 100644 (file)
@@ -7,11 +7,11 @@ use warnings;
 use Carp         'confess';
 use Scalar::Util 'blessed', 'weaken', 'looks_like_number';
 
-our $VERSION   = '0.78_01';
+our $VERSION   = '0.84';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
-use base 'Class::MOP::Method::Generated';
+use base 'Class::MOP::Method::Inlined';
 
 sub new {
     my $class   = shift;
@@ -52,8 +52,6 @@ sub _new {
     }, $class;
 }
 
-sub can_be_inlined { 1 }
-
 ## accessors
 
 sub options              { (shift)->{'options'}              }
@@ -62,8 +60,8 @@ sub associated_metaclass { (shift)->{'associated_metaclass'} }
 ## cached values ...
 
 sub meta_instance {
-    warn 'The meta_instance method has been made private.'
-        . " The public version is deprecated and will be removed in a future release.\n";
+    Carp::cluck('The meta_instance method has been made private.'
+        . " The public version is deprecated and will be removed in a future release.\n");
     shift->_meta_instance;
 }
 
@@ -73,18 +71,22 @@ sub _meta_instance {
 }
 
 sub attributes {
-    warn 'The attributes method is deprecated.'
-        . " Use ->associated_metaclass->compute_all_applicable_attributes instead.\n";
+    Carp::cluck('The attributes method has been made private.'
+        . " The public version is deprecated and will be removed in a future release.\n");
+
+    return shift->_attributes;
+}
 
+sub _attributes {
     my $self = shift;
-    $self->{'attributes'} ||= [ $self->associated_metaclass->compute_all_applicable_attributes ]
+    $self->{'attributes'} ||= [ $self->associated_metaclass->get_all_attributes ]
 }
 
 ## method
 
 sub initialize_body {
-    warn 'The initialize_body method has been made private.'
-        . " The public version is deprecated and will be removed in a future release.\n";
+    Carp::cluck('The initialize_body method has been made private.'
+        . " The public version is deprecated and will be removed in a future release.\n");
     shift->_initialize_body;
 }
 
@@ -98,8 +100,8 @@ sub _initialize_body {
 }
 
 sub generate_constructor_method {
-    warn 'The generate_constructor_method method has been made private.'
-        . " The public version is deprecated and will be removed in a future release.\n";
+    Carp::cluck('The generate_constructor_method method has been made private.'
+        . " The public version is deprecated and will be removed in a future release.\n");
     shift->_generate_constructor_method;
 }
 
@@ -108,8 +110,8 @@ sub _generate_constructor_method {
 }
 
 sub generate_constructor_method_inline {
-    warn 'The generate_constructor_method_inline method has been made private.'
-        . " The public version is deprecated and will be removed in a future release.\n";
+    Carp::cluck('The generate_constructor_method_inline method has been made private.'
+        . " The public version is deprecated and will be removed in a future release.\n");
     shift->_generate_constructor_method_inline;
 }
 
@@ -129,7 +131,7 @@ sub _generate_constructor_method_inline {
     $source .= "\n" . 'my $instance = ' . $self->_meta_instance->inline_create_instance('$class');
     $source .= ";\n" . (join ";\n" => map {
         $self->_generate_slot_initializer($_, $close_over)
-    } $self->associated_metaclass->compute_all_applicable_attributes);
+    } @{ $self->_attributes });
     $source .= ";\n" . 'return $instance';
     $source .= ";\n" . '}';
     warn $source if $self->options->{debug};
@@ -264,17 +266,6 @@ inlined.
 
 This returns the L<Class::MOP::Class> object for the method.
 
-=item B<< $metamethod->is_inline >>
-
-Returns a boolean indicating whether or not the constructor is
-inlined.
-
-=item B<< $metamethod->can_be_inlined >>
-
-This method always returns true in this class. It exists so that
-subclasses (as in Moose) can do some sort of checking to determine
-whether or not inlining the constructor is safe.
-
 =back
 
 =head1 AUTHORS