A synthetic argument representing the values of the variables captured by the callable being called. This argument represents a single object where all the values are stored as attributes. This is also known as the environment part of a closure.
This is used for tracking flow through captured variables.
TODO:
We might want a synthetic node here, but currently that incurs problems
with non-monotonic recursion, because of the use of resolveCall in the
char pred. This may be solvable by using
CallGraphConstruction::Make in stead of
CallGraphConstruction::Simple::Make appropriately.
Import path
import semmle.python.dataflow.new.internal.DataFlowDispatchDirect supertypes
Fields
Predicates
| argumentOf | Holds if this argument occurs at the given position in the given call. |
| toString | Gets a textual representation of this element. |
Inherited predicates
| asCfgNode | Gets the control-flow node corresponding to this node, if any. | from CfgNode |
| asExpr | Gets the expression corresponding to this node, if any. | from Node |
| getALocalSource | Gets a local source node from which data may flow to this node in zero or more local data-flow steps. | from Node |
| getCall | Gets the call in which this node is an argument, if any. | from ArgumentNode |
| getEnclosingCallable | Gets the enclosing callable of this node. | from Node |
| getLocation | Gets the location of this node | from CfgNode |
| getNode | Gets the | from CfgNode |
| getScope | Gets the scope of this node. | from CfgNode |
| hasLocationInfo | Holds if this element is at the specified location. The location spans column | from Node |