Package com.oracle.truffle.api.dsl
Annotation Interface NodeChild
A
NodeChild
element defines an executable child for the enclosing Node
. A
Node
contains multiple NodeChildren
specified in linear execution order.- Since:
- 0.8 or earlier
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionboolean
Allow this child node to be used in uncached mode.String[]
TheexecuteWith()
property allows a node to pass the result of one child's executable as an input to another child's executable.boolean
Allows implicit creation of this child node.Defines the initializer expression for implicit child node creation.Class
<?> Defines the expression to get an uncached instance of the child node.
-
Element Details
-
value
String value- Since:
- 0.8 or earlier
- Default:
""
-
type
Class<?> type- Since:
- 0.8 or earlier
- Default:
com.oracle.truffle.api.nodes.Node.class
-
executeWith
String[] executeWithTheexecuteWith()
property allows a node to pass the result of one child's executable as an input to another child's executable. These referenced children must be defined before the current node in the execution order. The current nodetype()
attribute must be set to aNode
which supports the evaluated execution with the number ofexecuteWith()
arguments that are defined. For example if this child is executed with one argument, thetype()
attribute must define a node which publicly declares a method with the signatureObject execute*(VirtualFrame, Object)
.- Since:
- 0.8 or earlier
- Default:
{}
-
implicit
boolean implicitAllows implicit creation of this child node. If this property isfalse
(the default), the factory method of the parent node needs to be called with an instance of the child node as argument. Ifimplicit()
istrue
, the child node will be implicitly created when calling the factory method of the parent node.- Since:
- 21.1
- Default:
false
-
implicitCreate
String implicitCreateDefines the initializer expression for implicit child node creation. Specifying this property will enableimplicit()
mode on this child node automatically, this should not be specified together withimplicit()
. Ifimplicit()
istrue
, the initializer expression defaults to"create()"
.- Since:
- 21.1
- See Also:
- Default:
"create()"
-
allowUncached
boolean allowUncachedAllow this child node to be used in uncached mode. If set tofalse
(the default), only execute methods that have an explicit argument for the child value can be used on the uncached version of the parent node. If set totrue
, execute methods that do not have an explicit argument for the child value use an uncached version of the child node to compute the missing value.- Since:
- 21.1
- See Also:
- Default:
false
-
uncached
String uncachedDefines the expression to get an uncached instance of the child node. Specifying this property will implicitly enableallowUncached()
on this child node, this should not be specified together withallowUncached()
. IfallowUncached()
istrue
, the uncached expression defaults to"getUncached()"
.- Since:
- 21.1
- See Also:
- Default:
"getUncached()"
-