move eval_environment for constructors to the metaclass
[gitmo/Moose.git] / lib / Class / MOP / Class.pm
index 267e376..a7c3ca3 100644 (file)
@@ -695,6 +695,18 @@ sub _inline_preserve_weak_metaclasses {
 
 sub _inline_extra_init { }
 
+sub _eval_environment {
+    my $self = shift;
+
+    my @attrs = sort { $a->name cmp $b->name } $self->get_all_attributes;
+
+    my $defaults = [map { $_->default } @attrs];
+
+    return {
+        '$defaults' => \$defaults,
+    };
+}
+
 
 sub get_meta_instance {
     my $self = shift;