code: def get_updated(node):
    
    if isinstance(node, gast.Assign):
      return set.union(*(_get_target(target)
                         for target in node.targets))
    elif isinstance(node, (gast.For, gast.AugAssign)):
      return _get_target(node.target)
    elif isinstance(node, gast.arguments):
      targets = set(arg.id for arg in node.args + node.kwonlyargs)
      if node.vararg:
        targets.add(node.vararg.id)
      if node.kwarg:
        targets.add(node.kwarg.id)
      return targets
    else:
      return set()
docs: Return the variable names created or mutated by this statement.
  
    This function considers assign statements, augmented assign statements, and
    the targets of for loops, as well as function arguments.
  
    For example, `x[0] = 2` will return `x`, `x, y = 3, 4` will return `x` and
    `y`, `for i in range(x)` will return `i`, etc.
  
    Args:
      node: An AST node
  
    Returns:
      A set of variable names (strings) of all the variables created or mutated.