Source code for claripy.frontend_mixins.simplify_skipper_mixin

[docs]class SimplifySkipperMixin:
[docs] def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._simplified = True
def _blank_copy(self, c): super()._blank_copy(c) c._simplified = True def _copy(self, c): super()._copy(c) c._simplified = self._simplified def __getstate__(self): return self._simplified, super().__getstate__() def __setstate__(self, s): self._simplified, base_state = s super().__setstate__(base_state) # # Simplification skipping #
[docs] def add(self, *args, **kwargs): added = super().add(*args, **kwargs) if len(added) > 0: self._simplified = False return added
[docs] def simplify(self, *args, **kwargs): if self._simplified: return self.constraints else: self._simplified = True return super().simplify(*args, **kwargs)