Merge branch 'master' into attribute_helpers
[gitmo/Moose.git] / lib / Moose / Meta / Method / Accessor.pm
index e4a5f29..957ba16 100644 (file)
@@ -4,7 +4,7 @@ package Moose::Meta::Method::Accessor;
 use strict;
 use warnings;
 
-our $VERSION   = '0.75_01';
+our $VERSION   = '0.87';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
@@ -17,7 +17,7 @@ sub _error_thrower {
 }
 
 sub _eval_code {
-    my ( $self, $code ) = @_;
+    my ( $self, $source ) = @_;
 
     # NOTE:
     # set up the environment
@@ -34,9 +34,15 @@ sub _eval_code {
                                    : undef),
     };
 
-    #warn "code for $attr_name =>\n" . $code . "\n";
-    $self->_compile_code( environment => $environment, code => $code )
-        or $self->throw_error("Could not create writer for '${\$self->associated_attribute->name}' because $@ \n code: $code", error => $@, data => $code );
+    #warn "code for $attr_name =>\n" . $source . "\n";
+    my ( $code, $e ) = $self->_compile_code( environment => $environment, code => $source );
+
+    $self->throw_error(
+        "Could not create writer for '${\$self->associated_attribute->name}' because $e \n code: $source",
+        error => $e, data => $source )
+        if $e;
+
+    return $code;
 }
 
 sub _generate_accessor_method_inline {
@@ -291,12 +297,12 @@ Moose::Meta::Method::Accessor - A Moose Method metaclass for accessors
 
 =head1 DESCRIPTION
 
-This class is a subclass of L<Class::MOP::Class::Accessor> that
+This class is a subclass of L<Class::MOP::Method::Accessor> that
 provides additional Moose-specific functionality, all of which is
 private.
 
 To understand this class, you should read the the
-L<Class::MOP::Class::Accessor> documentation.
+L<Class::MOP::Method::Accessor> documentation.
 
 =head1 BUGS