From 71e3a875c69d468906b77601365ff34db61740f5 Mon Sep 17 00:00:00 2001 From: rocky Date: Sun, 24 Apr 2022 17:51:45 -0400 Subject: [PATCH] Go over long literal test --- decompyle3/semantics/n_actions.py | 2 +- test/bytecode_3.7/run/05_long_literals.pyc | Bin 13262 -> 13215 bytes test/bytecode_3.8/run/05_long_literals.pyc | Bin 15650 -> 15027 bytes .../expression/05_long_literals.py | 1391 ++--------------- 4 files changed, 150 insertions(+), 1243 deletions(-) diff --git a/decompyle3/semantics/n_actions.py b/decompyle3/semantics/n_actions.py index fb24d189..aa585a86 100644 --- a/decompyle3/semantics/n_actions.py +++ b/decompyle3/semantics/n_actions.py @@ -246,7 +246,7 @@ def n_delete_subscript(self, node): def n_dict(self, node): """ - prettyprint a dict + Prettyprint a dict. 'dict' is something like k = {'a': 1, 'b': 42}" We will use source-code line breaks to guide us when to break. """ diff --git a/test/bytecode_3.7/run/05_long_literals.pyc b/test/bytecode_3.7/run/05_long_literals.pyc index 82a0e315a1d40d017a7bc6e9907189085080671b..8ec24f1b0f55e9314448e85c26b1744459618955 100644 GIT binary patch delta 1135 zcmbV{F>ljA7>0d!w&U8h(}a?w!3|9)A*rIYIX7wOP%0Lfy0AqIEwYtBnQTB}A&9_C zijj~I5@liP0JsAa8yjLk2%(4x@dH3&s8A`~7km+okU+%J^S*b!@A2hz^I_9Csq3o1 ze%D?)=N_NhFjDw_^l4!W(=KY38px3y)InYBy|^UZKn{kLEw1A(cHcY1L5|pA-TMG< zH?D7+tp=MxHf|wyhPYe(GZA)%cu#^&X%(0Ed1Y^E$Sb>x1F!5Y1--v>o_6%cN^xx{!!8hF`GdAubd-oQe5FF7NwFz5& z@8AyHH0qiCDaFP~!Iu1-wzSAz?>)#iGqc78B^7sf$2%wMBcuRWlWD zubkgOf>6x5DhpQwi~@9k0f+*|05L!uZ~!n4I0#4pl7JLo0+0qA0+@hFKn8FaFa^jW zp)9yLs7C8>a-Qer&M|5Y-@ZVKdgVXdT@;_JN Pl0ixl+5a+o0;}XF_gDur delta 820 zcmaKmv2W8r6vqAD-8qhFQW}AYOsJ56sz@ay=ej8y>L0*TVDOg8R*KpI*`)(Z5Mg9+ zbrNeO1}2u`KLLp`LW~RuBqjz_bwVg0Y;&(Fk&18lzVmzE@4NlMcu-%f)odgGIxjXh z_IrEvCfaici?4AnZO9Y`egKgf!3a`J-tUN~5Mgl(`4*-ae~VZI5g+9~`Cd#9p4`oo z&b1UaizI}&3HhdocgxL6zA2K&#b$^>_J!R;b;z85iz>-vs>q6+<030@i)r?m-7m7| z=BKLc_~mhxoxD#EjUL8at$J7l_KBpHv)G8sP@>eveX>XBI`Lug58NoYxENoYxE>Fc;8vLv!3 zvdqbD`D%~Q9-%!MWYvq!hWX$J7{(nnzR@?Exr>|1Z{Hq1=Z3)r2bbI8EI6VKryUpT vF#q3qi*a^Zx(#K1dcJU?&SfouaPnBpVKzF#%pTrcM>Xs=vbWu5fOYl1 diff --git a/test/bytecode_3.8/run/05_long_literals.pyc b/test/bytecode_3.8/run/05_long_literals.pyc index 542f7cb449514cf4920ab4be990cfd339549add4..d137ba667715517986e25bc4a108be1484499712 100644 GIT binary patch delta 1336 zcmchTO=uHA6vt;~KeEl{+uF1-jg5_IQbN*9KAI0Gxp@;r1kK6HE=DX0yViqLBZgi) zNXmFp59+~F53TE=CvV=xQwf3~9=+=!R_Dc?K)r|{&63~$&AxrVncbInob|v3zu$}a z@7_D}%BwS5fjD^*+|6y1d>>!UwXvz1xQF}1etS!KfK37`L%vS>#M(C{6Pt36*Y?M) zjlKC!n?H{Y(!snhS=*z&hxa9W2c`|uc6OCZgdS3>_S_$8)oP5@s=WeTXGgh65`El( zBZ)0E>&8^cX9gG|}< z84_Rp=#d^AI%vm7Q<_1d$WT~XUup36!Lwvr=MU@8^%sc0|6ze*q{rirVI1`5QRXLW zgiAQ*+z1a9b~Bp66^BJXNZo;Ydv$HyEV@bEEV)^Bv*Kpe&1E-hZq^5$-<~B=6h%Qr zQ4&R26qP~O9jl64%c7`>La3=wQ=z6pO@*2YHLbYgRG6tSQ(>mu92=dwB-ACLF42K= zH$ENdp1t-RBa}^AULKYX@B#dQ03Zkm0m6U?;22;Ma2zlNhytboGk_T21RxHW1tb6` z0ds&PMtNkNf^r^^0-Oe<0SkZ(APZRJU{CX_Y7JI3MhdM^)rXL*$T%i@l@Oj%*;-+N zbqkY6`By)y$pB8UbAR7f`X>8Wz8pQu eqvj@Ng=QpjAHns|+eL6~uX8I^JC4cd#V?HD#34+1@a5yU9^^n^Zx0HrIRJVG%Fe*`#yfQ%9! z{T%P!Ppg_SY^GJ4hs1N%ND)pF7(1WB#FJgCmYhQwlBq`(jI6vp(XXr*97)Zv}(Hf6CHq)$ diff --git a/test/simple_source/expression/05_long_literals.py b/test/simple_source/expression/05_long_literals.py index 3f42687f..9d0a0bf0 100644 --- a/test/simple_source/expression/05_long_literals.py +++ b/test/simple_source/expression/05_long_literals.py @@ -17,635 +17,57 @@ assert len(x) == 3 assert isinstance(x, list) and all(x) +# fmt: off # Try a long list. This should not be slow # as it has been in the past. x = [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ] assert all(x) -assert len(x) == 309 and isinstance(x, list) +assert len(x) == 300 and isinstance(x, list) # Try a long set. This should not be slow # as it has been in the past. x = { - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, } assert x == {1} and isinstance(x, set) @@ -654,633 +76,76 @@ a = 1 # First, a list x = [ - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, ] assert all(x) -assert len(x) == 309 and isinstance(x, list) +assert len(x) == 300 and isinstance(x, list) + +# Next, a set x = { - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, - a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, + a, a, a, a, a, a, a, a, a, a, } -# Next, a set assert x == {1} and isinstance(x, set) # Check some dictionary keys. @@ -1306,8 +171,8 @@ # Try a long dictionary. # This should not be slow as it has been in the past values = { - "valuea": a + 1, - "value2": 2 + 1, + "value1": x, # Note this is LOAD_NAME + "value2": 2 + 1, # Constant should be folded into "LOAD_CONST" "value3": 3 + 1, "value4": 4 + 1, "value5": 5 + 1, @@ -1810,4 +675,46 @@ "value502": 502 + 1, } -assert list(values.values()) == list(range(2, 502 + 2)) +assert list(values.values())[1:] == list(range(3, 502 + 2)) + +# Try a long dictionary that fails because we have a binary op. +# We can get a expr32 grouping speedup +# which is slower than if this were all constant. +# The above was not implemented at the time this test was written. +values = { + "value1": a + 1, # This is a binary op not consant + "value2": 2, + "value3": 3, + "value4": 4, + "value5": 5, + "value6": 6, + "value7": 7, + "value8": 8, + "value9": 9, + "value10": 10, + "value11": 11, + "value12": 12, + "value13": 13, + "value14": 14, + "value15": 15, + "value16": 16, + "value17": 17, + "value18": 18, + "value19": 19, + "value20": 20, + "value21": 21, + "value22": 22, + "value23": 23, + "value24": 24, + "value25": 25, + "value26": 26, + "value27": 27, + "value28": 28, + "value29": 29, + "value30": 30, + "value31": 31, + "value32": 32, + "value33": 33, +} + +assert list(values.values())[1:] == list(range(2, 34))