summaryrefslogtreecommitdiffstats
path: root/lib/MooseX/NonMoose
diff options
context:
space:
mode:
authordoy <doy@tozt.net>2009-04-20 00:22:12 -0500
committerdoy <doy@tozt.net>2009-04-20 00:22:12 -0500
commite953fbcde9b98a9f2397dd7e8e36ff4d1beb4757 (patch)
tree76d83b25e696bb38bed5dcd10961091312e9567b /lib/MooseX/NonMoose
parent5581d01f2ce7e1ebc3a80b763abc6971e23560be (diff)
downloadmoosex-nonmoose-e953fbcde9b98a9f2397dd7e8e36ff4d1beb4757.tar.gz
moosex-nonmoose-e953fbcde9b98a9f2397dd7e8e36ff4d1beb4757.zip
don't inline a constructor if inline_constructor => 0 is passed to make_immutable
Diffstat (limited to 'lib/MooseX/NonMoose')
-rw-r--r--lib/MooseX/NonMoose/Meta/Role/Class.pm8
1 files changed, 5 insertions, 3 deletions
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 {