changeset a49e093d707c in trytond:6.4
details: https://hg.tryton.org/trytond?cmd=changeset&node=a49e093d707c
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 eebb8a6f5658 -r a49e093d707c trytond/pyson.py
--- a/trytond/pyson.py Sat Nov 05 17:07:43 2022 +0100
+++ b/trytond/pyson.py Sat Nov 05 09:51:17 2022 +0100
@@ -32,8 +32,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:
@@ -46,8 +45,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: