From 6ab711baabdb1c70647a3c66426c4a9bdc6e788c Mon Sep 17 00:00:00 2001 From: rocky Date: Mon, 19 Mar 2018 09:36:02 -0400 Subject: [PATCH] More 3.6 lambda handling --- test/bytecode_3.6/05_36lambda.pyc | Bin 388 -> 1155 bytes test/simple_source/bug36/05_36lambda.py | 9 +++++++++ uncompyle6/parsers/parse3.py | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/test/bytecode_3.6/05_36lambda.pyc b/test/bytecode_3.6/05_36lambda.pyc index 741ea5ef4755ab1bb7b9676770168155f55fa39d..8ac02c5a1025f9c0728a01b3c18d9c7b4844cd3c 100644 GIT binary patch literal 1155 zcmZuw&5qMB5cW^frY*ZH%ReWy7szE7X~mwZiUZnXE*y{|P?U|GDkW`--R_^Vr&emY z@f1j$cmUqSS5CYFCuZz+3k!~He;Iqm4vG6?FX+2GJ5! zusMy1;KG}en2NS&iU2H3kT)dkL>W3@!`WNS`W^t`El3XTg3ntuNr-juBSSI@tJrXc z^T}Q4x(&mU3`k986e80oq=t{=8BA2b&=N&o>dCMYU&*gMT@1&iOmsC>nLId|_79H^ zUc5{WkIHm-BGUcwg$cS2_b@9Bom@Uil44X$l4QSIR#{r=9sujm3#r0%LK=76K}lAP zbjXdTWtkg3)P044ly7%A+yHEXbx>qL<9!HKc$*C2x?NMV3l_mGHOOu2lOx89GV2Pf zIAbhJ%Qk=oSEm&hQq46brDG!L2KS*cB+WWUf8sqB)%{8bZ% z4s=J+GvIQ=&U*XCvgXUhX6hDr8ZV!YGGK5EeqchIi;V_MYemcD{r^S>v0XmM?J8*- z%LXwVoLZY8>Nen?xb-;05gXnCv6Y|;p!U@B^S#;|kQsSR-amN9uKcS;-B^+(8_?RH z(JuM8{nk>uU^#c>uC%y8FtTK|cmx34$$&1|lGaeJHF*r<%y$LL;%%reV0T=V>7=Me zar;E(m6AzcPN1?H)flZISD2@1YMJ4`3gGXCAXp`qw18edEGBZO|CInl_3cvJae>d_ ztYO%6@$d+B2hZUuJu}{Esz|*nt?4u;qqr33!FopJz kMG@R!2jDRRl-EjPS8wR(1Pr?HYNw^_S$Xg!v>So{8;CC8asU7T delta 81 zcmZqXY+*Jt=H=z8(O)06kb!~WF%ZK6Gmzx~#Kn9-B854HF@>pxF^VCDA(%mvWuu1- WBZnrFpPwdU5!d8U7Bv>2A_f2tR}3=% diff --git a/test/simple_source/bug36/05_36lambda.py b/test/simple_source/bug36/05_36lambda.py index 6c02de7d..c35cc3f8 100644 --- a/test/simple_source/bug36/05_36lambda.py +++ b/test/simple_source/bug36/05_36lambda.py @@ -9,3 +9,12 @@ def __init__(self, msg = None, digestmod = None): def bug(): def register(cls, func=None): return lambda f: register(cls, f) + +# From Python 3.6 configparser.py +def items(self, d, section=5, raw=False, vars=None): + if vars: + for key, value in vars.items(): + d[self.optionxform(key)] = value + d = lambda option: self._interpolation.before_get(self, + section, option, d[option], d) + return diff --git a/uncompyle6/parsers/parse3.py b/uncompyle6/parsers/parse3.py index ddb914dc..cd3fb13b 100644 --- a/uncompyle6/parsers/parse3.py +++ b/uncompyle6/parsers/parse3.py @@ -896,7 +896,7 @@ class Python3Parser(PythonParser): else: rule = ('mklambda ::= %s%s%s' % ('load_closure ' * closure, - 'BUILD_TUPLE_2 LOAD_LAMBDA LOAD_CONST ', + 'LOAD_LAMBDA LOAD_CONST ', opname)) self.add_unique_rule(rule, opname, token.attr, customize)