def __init__(self, kernel, it_space, *args, **kwargs):
        read_args = [a.data for a in args if a.access in [READ, RW]]
        written_args = [a.data for a in args if [RW, WRITE, MIN, MAX, INC] in a.access]
        inc_args = [a.data for a in args if a.access in [INC]]
        LazyComputation.__init__(self, set(read_args) | Const._defs,
                                 set(written_args), set(inc_args))

        self._kernel = kernel
        self._actual_args = args
        self._it_space = it_space

        for i, arg in enumerate(self._actual_args):
            arg.position = i
            arg.indirect_position = i
        for i, arg1 in enumerate(self._actual_args):
            if arg1._is_dat and arg1._is_indirect:
                for arg2 in self._actual_args[i:]:
                    # We have to check for identity here (we really
                    # want these to be the same thing, not just look
                    # the same)
                    if arg2.data is arg1.data and arg2.map is arg1.map:
                        arg2.indirect_position = arg1.indirect_position

        # These parameters are expected in a tiled ParLoop
        self._all_args = kwargs.get('all_args', [args])
        self._inspection = kwargs.get('inspection')
        self._executor = kwargs.get('executor')
dataset/ETHPy150Open OP2/PyOP2/pyop2/fusion.py/ParLoop.__init__/swapped operands of `in`