From b4eab6985ec514c7a9f0b45cefb2677ecffb2418 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 5 Nov 2022 09:51:17 +0100 Subject: [PATCH] Do not expand boolean PYSON when using __and__ and __or__ It is not expected that the left operand is modified by such operations. issue11836 review418551003 (grafted from 4da4f8a946ad698feac01663778495d92c992588) --HG-- branch : 6.0 --- trytond/pyson.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/trytond/pyson.py b/trytond/pyson.py index febe74ef07..85d520e693 100644 --- a/trytond/pyson.py +++ b/trytond/pyson.py @@ -31,8 +31,7 @@ class PYSON(object): other = Bool(other) if (isinstance(self, And) and not isinstance(self, Or)): - self._statements.append(other) - return self + return And(*self._statements, other) if self.types() != {bool}: return And(Bool(self), other) else: @@ -45,8 +44,7 @@ class PYSON(object): and other.types() != {bool}): other = Bool(other) if isinstance(self, Or): - self._statements.append(other) - return self + return Or(*self._statements, other) if self.types() != {bool}: return Or(Bool(self), other) else: