Revert "simplify dual Moo/Moose logic a bit"
Lukas Mai [Wed, 28 Aug 2013 18:01:08 +0000 (20:01 +0200)]
This reverts commit 47ba782a13ecd4060c36205fde63412ec2b2f601.

This way we don't require a modern Moo with ->meta support.

lib/Function/Parameters/Info.pm

index ffec607..6c624ff 100644 (file)
@@ -6,13 +6,15 @@ use warnings;
 our $VERSION = '0.04';
 
 # If Moo isn't loaded yet but Moose is, avoid pulling in Moo and fall back to Moose
-my $Moo;
+my ($Moo, $meta_make_immutable);
 BEGIN {
        if ($INC{'Moose.pm'} && !$INC{'Moo.pm'}) {
                $Moo = 'Moose';
+               $meta_make_immutable = sub { $_[0]->meta->make_immutable };
        } else {
                require Moo;
                $Moo = 'Moo';
+               $meta_make_immutable = sub {};
        }
        $Moo->import;
 }
@@ -28,7 +30,7 @@ BEGIN {
 
        has $_ => (is => 'ro') for qw(name type);
 
-       __PACKAGE__->meta->make_immutable;
+       __PACKAGE__->$meta_make_immutable;
 }
 
 my @pn_ro = glob '{positional,named}_{required,optional}';
@@ -62,7 +64,7 @@ sub args_max {
        $r
 }
 
-__PACKAGE__->meta->make_immutable;
+__PACKAGE__->$meta_make_immutable;
 
 'ok'