r"""see :meth:`NodeFilter.has_input`
| 791 | |
| 792 | |
| 793 | class NodeFilterHasInput(NodeFilter): |
| 794 | r"""see :meth:`NodeFilter.has_input`""" |
| 795 | |
| 796 | _var = None |
| 797 | |
| 798 | def __init__(self, node_iter, var): |
| 799 | var = as_varnode(var) |
| 800 | super().__init__(node_iter) |
| 801 | self.var = var |
| 802 | |
| 803 | def __iter__(self): |
| 804 | for i in self._iter: |
| 805 | assert isinstance( |
| 806 | i, OpNode |
| 807 | ), "has_input() must be used with OpNode; " "got {!r}".format(i) |
| 808 | if any(self.var is _ for _ in i.inputs): |
| 809 | yield i |
| 810 | |
| 811 | |
| 812 | class NodeFilterName(NodeFilter): |