From e953fbcde9b98a9f2397dd7e8e36ff4d1beb4757 Mon Sep 17 00:00:00 2001 From: doy Date: Mon, 20 Apr 2009 00:22:12 -0500 Subject: don't inline a constructor if inline_constructor => 0 is passed to make_immutable --- lib/MooseX/NonMoose/Meta/Role/Class.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lib/MooseX/NonMoose') diff --git a/lib/MooseX/NonMoose/Meta/Role/Class.pm b/lib/MooseX/NonMoose/Meta/Role/Class.pm index cef62d6..e8524a2 100644 --- a/lib/MooseX/NonMoose/Meta/Role/Class.pm +++ b/lib/MooseX/NonMoose/Meta/Role/Class.pm @@ -10,9 +10,11 @@ has replace_constructor => ( around _make_immutable_transformer => sub { my $orig = shift; my $self = shift; - my @args = @_; - unshift @args, replace_constructor => 1 if $self->replace_constructor; - $self->$orig(@args); + my %args = @_; + return $self->$orig(@_) if exists $args{inline_constructor} + && !$args{inline_constructor}; + $args{replace_constructor} = 1 if $self->replace_constructor; + $self->$orig(%args); }; around superclasses => sub { -- cgit v1.2.3-54-g00ecf