def visit_RelClear(self, node): code = (node, ) auxmaps = self.auxmaps_by_rel.get(node.rel, set()) for auxmap in auxmaps: clear_code = (L.MapClear(auxmap.map), ) code = L.insert_rel_maint(code, clear_code, L.SetRemove()) wraps = self.wraps_by_rel.get(node.rel, set()) for wrap in wraps: clear_code = (L.RelClear(wrap.rel), ) code = L.insert_rel_maint(code, clear_code, L.SetRemove()) return code
def visit_RelClear(self, node): # We should clear if we are not using demand and our operand is # being cleared, or if we are using demand and our demand set is # being cleared. aggrinv = self.aggrinv uses_demand = aggrinv.uses_demand if uses_demand: should_clear = node.rel == aggrinv.restr else: should_clear = node.rel == aggrinv.rel if not should_clear: return node clear_code = (L.MapClear(self.aggrinv.map), ) code = L.insert_rel_maint((node, ), clear_code, L.SetRemove()) return code
def visit_DictClear(self, node): if (isinstance(node.target, L.Name) and node.target.id in self.maps): return L.MapClear(node.target.id) return node