From 49d1dcd30c0ff0857769ddd53714fb62af08fe9f Mon Sep 17 00:00:00 2001 From: Jonathan Worthington Date: Wed, 25 Mar 2020 18:20:45 +0100 Subject: [PATCH] Optimize out return decont check on returning self We know that is always decontainerized already. --- src/Perl6/Optimizer.nqp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Perl6/Optimizer.nqp b/src/Perl6/Optimizer.nqp index ad6b31cc91d..0c356e857cc 100644 --- a/src/Perl6/Optimizer.nqp +++ b/src/Perl6/Optimizer.nqp @@ -1582,6 +1582,9 @@ class Perl6::Optimizer { $last_stmt.scope('attribute'); return $value; } + if $scope eq 'lexical' && $last_stmt.name eq 'self' { + return $value; # The invocant is always decontainerized + } } elsif nqp::istype($last_stmt, QAST::WVal) { return $value unless nqp::iscont($last_stmt.value);