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 393ef20df4b30ead8ef189e99cf03976abe0be08)

--HG--
branch : 6.0
This commit is contained in:
Cédric Krier committed 2022-11-05 09:51:17 +01:00
1 parent 4cab4ac7ac
commit 816abe1fd8
1 file changed
+2 -4
+2 -4
View File
@@ -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: