Deparse: handle warnings NOFATAL
authorDavid Mitchell <davem@iabyn.com>
Wed, 22 Nov 2017 17:01:04 +0000 (17:01 +0000)
committerDavid Mitchell <davem@iabyn.com>
Thu, 23 Nov 2017 08:52:16 +0000 (08:52 +0000)
commit66cc68c1258a92d08e8c1362720c1d80eb52b063
tree21f55ab90d0308cbe437b135e87f6e16000e3b15
parent4a4aa6e0f79d1ce5f279a245ef7a700805da3c48
Deparse: handle warnings NOFATAL

In general, Deparse currently outputs 'use warnings foo' as

BEGIN {${^WARNING_BITS} =
    "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"}

or similar, except that it special-cases all bits being set or unset as

    use warnings;
and
    no warnings;

This failed for something like

    use warnings FATAL => all;
    {
        use warnings NOFATAL => all;
    }

since was deparing the NOFATAL line as a simple

    use warnings;

which is wrong.

So don't just see whehter the final bit pattern matches 'use/no warnings';
also see whether there are any other bits which need turning off.
lib/B/Deparse.pm