def transform_Assign(self, stmt):
    lhs = stmt.lhs
    lhs_class = lhs.__class__
    rhs = self.transform_expr(stmt.rhs)
    if lhs_class is Tuple:
      for (i, _) in enumerate(lhs.type.elt_types):
        lhs_i = self.tuple_proj(lhs, i)
        rhs_i = self.tuple_proj(rhs, i)
        # TODO: make this recursive, otherwise nested
        # complex assignments won't get implemented
        assert lhs_i.__class__ not in (ArrayView, Tuple)
        self.assign(lhs_i, rhs_i)
      return None
    
    
    elif lhs_class is Index:
      lhs = self.transform_Index(lhs)
      if lhs.__class__ is ArrayView:
        copy_loop = self.array_copy(src = rhs, dest = lhs, return_stmt = True)
        copy_loop = self.transform_stmt(copy_loop)
        return copy_loop
    elif lhs_class is Var and \
         (Slice, Struct, ArrayView, Tuple) in stmt.rhs.__class__:
      self.bindings[lhs.name] = rhs

    return Assign(lhs, rhs)
dataset/ETHPy150Open iskandr/parakeet/parakeet/transforms/lower_indexing.py/LowerIndexing.transform_Assign/swapped operands of `in`