this, super, outer and package are self reference expressions. The type of these expressions depends on the context in which they appear.

While these expressions are interesting from a typing perspective, their AST nodes are actually really boring and completely stateless. In order to save some memory, you can reuse thisInstance, superInstance, outerInstance and packageInstance instead of creating new instances every time.

Initializer
SelfReference()
Attributes
childrenSource Codeshared actual [] children

The child nodes of this node.

Refines Expression.children ultimately refines Node.children
Inherited Attributes
Attributes inherited from: Node
Attributes inherited from: Object
Methods
copySource Codeshared formal SelfReference copy()
Inherited Methods
Methods inherited from: Node
Methods inherited from: Object