This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Perl_list(): simplify some branches
authorDavid Mitchell <davem@iabyn.com>
Wed, 22 May 2019 10:27:20 +0000 (11:27 +0100)
committerDavid Mitchell <davem@iabyn.com>
Mon, 24 Jun 2019 10:40:06 +0000 (11:40 +0100)
Remove some explicit cases that just do the same as 'default:'

Also, remove OP_FLOP as a special case and just let it do the default.
This is the same behaviour (apply list() to its one child), except
that it also now does a harmless but (always false) check whether it's
child is an OP_FLOP too.

op.c

diff --git a/op.c b/op.c
index b5da98d..d944434 100644 (file)
--- a/op.c
+++ b/op.c
@@ -2320,9 +2320,6 @@ Perl_list(pTHX_ OP *o)
     o->op_flags = (o->op_flags & ~OPf_WANT) | OPf_WANT_LIST;
 
     switch (o->op_type) {
-    case OP_FLOP:
-       list(cBINOPo->op_first);
-       break;
     case OP_REPEAT:
        if (o->op_private & OPpREPEAT_DOLIST
         && !(o->op_flags & OPf_STACKED))
@@ -2346,11 +2343,8 @@ Perl_list(pTHX_ OP *o)
        for (kid = OpSIBLING(cUNOPo->op_first); kid; kid = OpSIBLING(kid))
            list(kid);
        break;
+
     default:
-    case OP_MATCH:
-    case OP_QR:
-    case OP_SUBST:
-    case OP_NULL:
        if (!(o->op_flags & OPf_KIDS))
            break;
         /* possibly flatten 1..10 into a constant array */