An assignable definition.
Either a direct non-tuple assignment (
a direct tuple assignment (
ref assignment (
a mutation update (
AssignableDefinitions::MutationDefinition), a local variable
declaration without an initializer (
an implicit parameter definition (
an address-of definition (
AssignableDefinitions::AddressOfDefinition), or a pattern
Known direct subtypes
Gets a control flow node that updates the targeted assignable when reached.
Gets a first read of the same underlying assignable. That is, a read that can be reached from this definition without passing through any other reads, and which is guaranteed to read the value assigned in this definition. Example:
Gets a reachable read of the same underlying assignable. That is, a read that can be reached from this definition, and which is guaranteed to read the value assigned in this definition.
Gets the underlying element associated with this definition. This is either an expression or a parameter.
Gets the enclosing callable of this definition.
Gets the underlying expression that updates the targeted assignable when reached, if any.
Gets the location of this assignable definition.
Gets the assigned expression, if any. For example, the expression assigned in
Gets the assignable being defined.
Gets the access used in the definition of the underlying assignable, if any. Local variable declarations and implicit parameter definitions are the only definitions without associated accesses.
Holds if this definition is guaranteed to update the targeted assignable. The only potentially uncertain definitions are
Gets a textual representation of this assignable definition.