changeset b695bc24e503 in trytond:6.2
details: https://hg.tryton.org/trytond?cmd=changeset&node=b695bc24e503
description:
        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)
diffstat:

 trytond/pyson.py |  6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diffs (23 lines):

diff -r 91fef3f2153d -r b695bc24e503 trytond/pyson.py
--- a/trytond/pyson.py  Sat Nov 05 17:08:22 2022 +0100
+++ b/trytond/pyson.py  Sat Nov 05 09:51:17 2022 +0100
@@ -31,8 +31,7 @@
             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 @@
                 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:

Reply via email to