diff --git a/src/Perl6/Actions.nqp b/src/Perl6/Actions.nqp index 8dacc86f8a8..3d7292e268a 100644 --- a/src/Perl6/Actions.nqp +++ b/src/Perl6/Actions.nqp @@ -6779,7 +6779,7 @@ class Perl6::Actions is HLL::Actions does STDActions { elsif $metasym eq 'X' { $helper := '&METAOP_CROSS'; $t := nqp::uc($t); } # disable transitive thunking for now elsif $metasym eq 'Z' { $helper := '&METAOP_ZIP'; $t := nqp::uc($t); } - my $metapast := QAST::Op.new( :op, :name($helper), $basepast ); + my $metapast := QAST::Op.new( :op, :name($helper), WANTED($basepast,'infixish') ); $metapast.push(QAST::Var.new(:name(baseop_reduce($base)), :scope)) if $metasym eq 'X' || $metasym eq 'Z'; @@ -6802,8 +6802,8 @@ class Perl6::Actions is HLL::Actions does STDActions { $basesym := ''; } if $basesym eq '||' || $basesym eq '&&' || $basesym eq '//' || $basesym eq 'orelse' || $basesym eq 'andthen' { - $ast := QAST::Op.new( :op, - :name('&METAOP_TEST_ASSIGN' ~ $*W.canonicalize_pair('', $basesym)) ); + $ast := WANTED(QAST::Op.new( :op, + :name('&METAOP_TEST_ASSIGN' ~ $*W.canonicalize_pair('', $basesym)) ),'infixish'); } else { $ast := QAST::Op.new( :node($/), :op, @@ -6823,7 +6823,7 @@ class Perl6::Actions is HLL::Actions does STDActions { !! QAST::Var.new(:name("&infix" ~ $*W.canonicalize_pair('', $base)), :scope); my $metaop := baseop_reduce($base); - my $metapast := QAST::Op.new( :op, :name($metaop), $basepast); + my $metapast := QAST::Op.new( :op, :name($metaop), WANTED($basepast,'reduce')); my $t := $basepast.ann('thunky') || $base; if $ { $metapast.push($*W.add_constant('Int', 'int', 1)); @@ -6868,7 +6868,7 @@ class Perl6::Actions is HLL::Actions does STDActions { ?? $base.ast[0] !! QAST::Var.new(:name("&infix" ~ $*W.canonicalize_pair('', $basesym)), :scope); - my $hpast := QAST::Op.new(:op, :name<&METAOP_HYPER>, $basepast); + my $hpast := QAST::Op.new(:op, :name<&METAOP_HYPER>, WANTED($basepast,'hyperop')); if $ eq '<<' || $ eq '«' { my $dwim := $*W.add_constant('Int', 'int', 1); $dwim.named('dwim-left');