the result is this argument, handed back unchanged, like x in identity(x); this is what draws the Returns edge
only atomic data works here, never a closure, as with e1 in e1 > e2. A bare symbol in such an
argument therefore names a variable even when a function of that name is in scope.
the result is one of this argument's values, like choices in match.arg(arg, choices). The bounding
argument of a SemanticCallTag.Narrows call; without one such a call yields a value of its own making.
called as a function, like FUN in lapply(x, FUN)
selects a behavior instead of carrying data, like na.rm in sum(x, na.rm = TRUE)
evaluated whenever the call happens, even if the result goes unused, like x in force(x)
the open handle the call acts on, like con in close(con)
open to injection, so a call handing it unescaped data is a finding: system commands, R expressions, database queries, HTML, or JavaScript.
never evaluated, the definite counterpart of ArgProp.Forced: no path of the body reads it
declared without a default value, like x in nchar(x, type); says nothing about whether a call must supply it
quoted or evaluated in another frame, like expr in quote(expr)
only whether it was supplied matters, as with missing()
names the resource the call reads or writes, like file in write.csv(x, file)
only the shape is used (length, dimensions, names, other attributes), like x in nrow(x)
the result is computed from the argument's value, like x in sum(x)
what it refers to may be modified, like envir in assign(x, v, envir = e)
What a single argument of a call is used for, as a bitmask (ArgProp.Forced/ArgProp.NoDefault lead, being the two bits the signature database can also state).
See
BuiltInFnInfo#sig