[perl #81424] Make Deparse handle /aelemfast_lex/
B::Deparse’s pure_string subroutine, that checks whether an op tree
can fit in double-quotish syntax, didn’t know about aelemfast_lex, or,
formerly, aelemfast on lexical variables. (It did know how to han-
dle aelemfast for package variables.) Consequently it was deparsing
/$a[0]/ as $a[0] for a lexical @a.
/$a[0]/ with a package variable looks like this:
9 </> match() lK/RTIME ->a
8 <|> regcomp(other->9) sK/1 ->9
6 <1> regcreset sK/1 ->7
- <1> ex-aelem sK/2 ->8
- <1> ex-rv2av sKR/1 ->-
7 <#> aelemfast[*s] s/1 ->8
- <0> ex-const s ->-
There are two null ops (ex-*) before the aelemfast.
/$a[0]/ with a lexical variable looks like this:
9 </> match() lK/RTIME ->a
8 <|> regcomp(other->9) sK/1 ->9
6 <1> regcreset sK/1 ->7
- <1> ex-aelem sK/2 ->8
7 <0> aelemfast_lex[@s:1,2] sR/1 ->8
- <0> ex-const s ->-
There is only one null op (ex-aelem).