/* check whether, in an assignment to an upvalue/local variable, the upvalue/local variable is begin used in a previous assignment to a table. If so, save original upvalue/local value in a safe place and use this safe copy in the previous assignment.  */
static void check_conflict(LexState *ls, struct LHS_assign *lh, expdesc *v)
/* check whether, in an assignment to an upvalue/local variable, the upvalue/local variable is begin used in a previous assignment to a table. If so, save original upvalue/local value in a safe place and use this safe copy in the previous assignment.  */
static void check_conflict(LexState *ls, struct LHS_assign *lh, expdesc *v)
{
    if (lh->v.k == VINDEXED) {
      if (lh->v.u.ind.vt == v->k && lh->v.u.ind.t == v->u.info) {
        conflict = 1;
        lh->v.u.ind.vt = VLOCAL;
        lh->v.u.ind.t = extra;
      }
      if (v->k == VLOCAL && lh->v.u.ind.idx == v->u.info) {
        conflict = 1;
        lh->v.u.ind.idx = extra;
      }
    }
  }
  if (conflict) {
    OpCode op = (v->k == VLOCAL) ? OP_MOVE : OP_GETUPVAL;
    luaK_codeABC(fs, op, extra, v->u.info, 0);
    luaK_reserveregs(fs, 1);
  }
}