From 1eb0b7be2ff1216a955a7054a93a0c52c175ceab Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Fri, 27 Jul 2012 14:41:05 -0700 Subject: [PATCH] B::Deparse: loopexes have assignment prec See ticket #113684 for detail. --- dist/B-Deparse/Deparse.pm | 4 ++-- dist/B-Deparse/t/core.t | 2 +- dist/B-Deparse/t/deparse.t | 7 +++++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/dist/B-Deparse/Deparse.pm b/dist/B-Deparse/Deparse.pm index 1d07477..0bbcbee 100644 --- a/dist/B-Deparse/Deparse.pm +++ b/dist/B-Deparse/Deparse.pm @@ -2155,10 +2155,10 @@ sub loopex { } elsif (class($op) eq "OP") { # no-op } elsif (class($op) eq "UNOP") { - (my $kid = $self->deparse($op->first, 16)) =~ s/^\cS//; + (my $kid = $self->deparse($op->first, 7)) =~ s/^\cS//; $name .= " $kid"; } - return $self->maybe_parens($name, $cx, 16); + return $self->maybe_parens($name, $cx, 7); } sub pp_last { loopex(@_, "last") } diff --git a/dist/B-Deparse/t/core.t b/dist/B-Deparse/t/core.t index 62ff862..de8d280 100644 --- a/dist/B-Deparse/t/core.t +++ b/dist/B-Deparse/t/core.t @@ -74,7 +74,7 @@ sub CORE_test { $deparse->coderef2text( eval "no strict 'vars'; sub { () = $expr }" or die "$@in $expr" ), - qr/\sCORE::$keyword.*;/, + qr/\bCORE::$keyword.*[);]/, $name||$keyword } diff --git a/dist/B-Deparse/t/deparse.t b/dist/B-Deparse/t/deparse.t index 04d64df..811adb6 100644 --- a/dist/B-Deparse/t/deparse.t +++ b/dist/B-Deparse/t/deparse.t @@ -1146,6 +1146,13 @@ $_ = ($a xor not +($1 || 2) ** 2); () = warn() + 1; () = setpgrp() + 1; #### +# loopexes have assignment prec +() = (CORE::dump a) | 'b'; +() = (goto a) | 'b'; +() = (last a) | 'b'; +() = (next a) | 'b'; +() = (redo a) | 'b'; +#### # [perl #63558] open local(*FH) open local *FH; pipe local *FH, local *FH; -- 2.7.4