From f9fd856d1337dd05a24f66c67ef9e451a4a790ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= Date: Mon, 27 Jul 2015 22:09:25 +0100 Subject: [PATCH] Reduce number of NEXTSTATE ops in the constructor (RT#105880) --- lib/Method/Generate/Accessor.pm | 30 +++++++++++++++--------------- lib/Method/Generate/BuildAll.pm | 6 +++--- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/Method/Generate/Accessor.pm b/lib/Method/Generate/Accessor.pm index 990ef6c..5cd0598 100644 --- a/lib/Method/Generate/Accessor.pm +++ b/lib/Method/Generate/Accessor.pm @@ -518,49 +518,49 @@ sub _generate_populate_set { ) } ($spec->{isa} - ? " {\n my \$value = ".$get_value.";\n " + ? " do {\n my \$value = ".$get_value.";\n " .$self->_generate_isa_check( $name, '$value', $spec->{isa}, $init_arg - ).";\n" + ).",\n" .' '.$self->_generate_simple_set($me, $name, $spec, '$value').";\n" - ." }\n" - : ' '.$self->_generate_simple_set($me, $name, $spec, $get_value).";\n" + ." },\n" + : ' ('.$self->_generate_simple_set($me, $name, $spec, $get_value)."),\n" ) .($spec->{trigger} - ? ' ' + ? " ((${test}) and (" .$self->_generate_trigger( $name, $me, $self->_generate_simple_get($me, $name, $spec), $spec->{trigger} - )." if ${test};\n" + ).")),\n" : '' ); } else { - " if (${test}) {\n" + " ((${test}) and (\n" .($spec->{coerce} - ? " $source = " + ? " ($source = " .$self->_generate_coerce( $name, $source, $spec->{coerce}, $init_arg - ).";\n" + )."),\n" : "" ) .($spec->{isa} - ? " " + ? " (" .$self->_generate_isa_check( $name, $source, $spec->{isa}, $init_arg - ).";\n" + )."),\n" : "" ) - ." ".$self->_generate_simple_set($me, $name, $spec, $source).";\n" + ." (".$self->_generate_simple_set($me, $name, $spec, $source)."),\n" .($spec->{trigger} - ? " " + ? " (" .$self->_generate_trigger( $name, $me, $self->_generate_simple_get($me, $name, $spec), $spec->{trigger} - ).";\n" + )."),\n" : "" ) - ." }\n"; + ." )),\n"; } } diff --git a/lib/Method/Generate/BuildAll.pm b/lib/Method/Generate/BuildAll.pm index 4930048..d277a7a 100644 --- a/lib/Method/Generate/BuildAll.pm +++ b/lib/Method/Generate/BuildAll.pm @@ -28,9 +28,9 @@ sub buildall_body_for { grep *{_getglob($_)}{CODE}, map "${_}::BUILD", reverse @{mro::get_linear_isa($into)}; - ' unless (('.$args.')[0]->{__no_BUILD__}) {'."\n" - .join('', map qq{ ${me}->${_}(${args});\n}, @builds) - ." }\n"; + ' (('.$args.')[0]->{__no_BUILD__} or ('."\n" + .join('', map qq{ ${me}->${_}(${args}),\n}, @builds) + ." )),\n"; } 1;