DDS is subclassing B::Deparse and overriding methods. (Almost all its methods are undocumented.) B::Deparse::padname returns a string containing a variable name. B::Deparse::padname_sv (which padname calls) returns the B::SV object that the variable name is derived from. Data::Dumper::Streamer::Deparser overrides padname, in order to change the name of the lexical variable. Commit 56cd2ef8a changes some code that deparses lexicals (pp_pasv) and makes it call padname_sv directly, instead of padname (since it needs the padname_sv now). It (or rather maybe_my) then calls ->PVX on the pad name SV, which was previously padname’s job. Should I adjust B::Deparse to make it call ->padname to get the pad name (which would result in some oddly-arranged code), or should Data::Dump::Streamer account for the new set-up? I’m leaning toward the latter. DDS could override padname_sv to return a subclass of B::SV that swaps out a different name in a PVX override, just as the padname override currently swaps out the name. -- Father Chrysostomos --- via perlbug: queue: perl5 status: new https://rt.perl.org/Ticket/Display.html?id=122870Thread Previous | Thread Next