diff --git a/src/Perl6/Optimizer.nqp b/src/Perl6/Optimizer.nqp index 6d122777c49..20b1bedb07a 100644 --- a/src/Perl6/Optimizer.nqp +++ b/src/Perl6/Optimizer.nqp @@ -1114,15 +1114,15 @@ class Perl6::Optimizer { if ($optype eq 'p6for' || $optype eq 'p6forstmt') && $op.sunk && @($op) == 2 { my $reverse := 0; my $theop := $op[0]; - if nqp::istype($theop, QAST::Stmts) { - $theop := $theop[0] - } - elsif nqp::istype($theop, QAST::Op) + if nqp::istype($theop, QAST::Op) && $theop.op eq 'callmethod' && $theop.name eq 'reverse' { $reverse := 1; $theop := $theop[0]; } + if nqp::istype($theop, QAST::Stmts) { + $theop := $theop[0] + } if nqp::istype($theop, QAST::Op) && nqp::existskey(%range_bounds, $theop.name)