Package org.pkl.core.ast
Class MemberNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.api.nodes.ExecutableNode
com.oracle.truffle.api.nodes.RootNode
org.pkl.core.ast.PklRootNode
org.pkl.core.ast.MemberNode
- All Implemented Interfaces:
com.oracle.truffle.api.nodes.NodeInterface,Cloneable
- Direct Known Subclasses:
RegularMemberNode,SharedMemberNode
-
Nested Class Summary
Nested classes/interfaces inherited from class com.oracle.truffle.api.nodes.Node
com.oracle.truffle.api.nodes.Node.Child, com.oracle.truffle.api.nodes.Node.Children -
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedMemberNode(@Nullable VmLanguage language, com.oracle.truffle.api.frame.FrameDescriptor descriptor, ExpressionNode bodyNode) -
Method Summary
Modifier and TypeMethodDescriptionprotected final VmExceptionBuilderprotected final ObjectexecuteBody(com.oracle.truffle.api.frame.VirtualFrame frame) final ExpressionNodefinal com.oracle.truffle.api.source.SourceSectionabstract com.oracle.truffle.api.source.SourceSectionbooleanfinal voidreplaceBody(Function<ExpressionNode, ExpressionNode> replacer) protected final booleanshouldRunTypeCheck(com.oracle.truffle.api.frame.VirtualFrame frame) If true, the property value computed by this node is not the final value exposed to user code but will still be amended.Methods inherited from class org.pkl.core.ast.PklRootNode
executeBody, getName, getSourceSectionMethods inherited from class com.oracle.truffle.api.nodes.RootNode
cloneUninitialized, computeSize, copy, countsTowardsStackTraceLimit, createConstantNode, execute, findAsynchronousFrames, getCallTarget, getFrameDescriptor, getParentFrameDescriptor, getQualifiedName, isCaptureFramesForTrace, isCloneUninitializedSupported, isCloningAllowed, isInstrumentable, isInternal, isTrivial, prepareForAOT, translateStackTraceElementMethods inherited from class com.oracle.truffle.api.nodes.ExecutableNode
getLanguage, getLanguageInfoMethods inherited from class com.oracle.truffle.api.nodes.Node
accept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, onReplace, replace, replace, reportPolymorphicSpecialize, toString
-
Field Details
-
bodyNode
-
-
Constructor Details
-
MemberNode
protected MemberNode(@Nullable @Nullable VmLanguage language, com.oracle.truffle.api.frame.FrameDescriptor descriptor, ExpressionNode bodyNode)
-
-
Method Details
-
getHeaderSection
public abstract com.oracle.truffle.api.source.SourceSection getHeaderSection() -
getBodySection
public final com.oracle.truffle.api.source.SourceSection getBodySection() -
getBodyNode
-
replaceBody
-
executeBody
-
exceptionBuilder
- Overrides:
exceptionBuilderin classPklRootNode
-
shouldRunTypeCheck
protected final boolean shouldRunTypeCheck(com.oracle.truffle.api.frame.VirtualFrame frame) If true, the property value computed by this node is not the final value exposed to user code but will still be amended.Used to disable type check for to-be-amended properties. See
VmUtils.SKIP_TYPECHECK_MARKER. IDEA: might be more appropriate to only skip constraints check -
isUndefined
public boolean isUndefined()
-