-
Sub-task
-
Resolution: Fixed
-
P4
-
None
-
None
-
b84
-
generic
-
generic
Covers an initial set of changes:
- using a copy() instead of overriding clone() for making node copies; we'll need built-in clone() for immutable instance creation
- immutable IdentNode, LiteralNode, UnaryNode, VarNode, BinaryNode, and TernaryNode
- change method names in NodeVisitor to reflect the type of the node being visited, i.e. "enterExecuteNode(ExecuteNode)" instead of "enter(ExecuteNode)". Overloaded "enter" name can cause implicit change in dispatch when the static type of the node expression changes unexpectedly.
- eliminate non-child references in Block and FunctionNode
- using a copy() instead of overriding clone() for making node copies; we'll need built-in clone() for immutable instance creation
- immutable IdentNode, LiteralNode, UnaryNode, VarNode, BinaryNode, and TernaryNode
- change method names in NodeVisitor to reflect the type of the node being visited, i.e. "enterExecuteNode(ExecuteNode)" instead of "enter(ExecuteNode)". Overloaded "enter" name can cause implicit change in dispatch when the static type of the node expression changes unexpectedly.
- eliminate non-child references in Block and FunctionNode