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,java.lang.Cloneable
- Direct Known Subclasses:
FunctionNode,LocalTypedPropertyNode,ObjectMethodNode,TypeCheckedPropertyNode,TypedPropertyNode,UntypedObjectMemberNode
public abstract class MemberNode extends PklRootNode
-
-
Field Summary
Fields Modifier and Type Field Description protected ExpressionNodebodyNodeprotected Membermember
-
Constructor Summary
Constructors Modifier Constructor Description protectedMemberNode(@Nullable VmLanguage language, com.oracle.truffle.api.frame.FrameDescriptor descriptor, Member member, ExpressionNode bodyNode)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected VmExceptionBuilderexceptionBuilder()protected java.lang.ObjectexecuteBody(com.oracle.truffle.api.frame.VirtualFrame frame)ExpressionNodegetBodyNode()com.oracle.truffle.api.source.SourceSectiongetBodySection()com.oracle.truffle.api.source.SourceSectiongetHeaderSection()java.lang.StringgetName()com.oracle.truffle.api.source.SourceSectiongetSourceSection()booleanisUndefined()voidreplaceBody(java.util.function.Function<ExpressionNode,ExpressionNode> replacer)protected 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
-
Methods inherited from class com.oracle.truffle.api.nodes.RootNode
cloneUninitialized, copy, countsTowardsStackTraceLimit, createConstantNode, execute, findAsynchronousFrames, getCallTarget, getFrameDescriptor, getParentFrameDescriptor, getQualifiedName, isCaptureFramesForTrace, isCloneUninitializedSupported, isCloningAllowed, isInstrumentable, isInternal, isTrivial, prepareForAOT, translateStackTraceElement
-
Methods inherited from class com.oracle.truffle.api.nodes.ExecutableNode
getLanguage, getLanguageInfo
-
Methods 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 Detail
-
member
protected final Member member
-
bodyNode
protected ExpressionNode bodyNode
-
-
Constructor Detail
-
MemberNode
protected MemberNode(@Nullable VmLanguage language, com.oracle.truffle.api.frame.FrameDescriptor descriptor, Member member, ExpressionNode bodyNode)
-
-
Method Detail
-
getSourceSection
public final com.oracle.truffle.api.source.SourceSection getSourceSection()
- Specified by:
getSourceSectionin classPklRootNode
-
getHeaderSection
public final com.oracle.truffle.api.source.SourceSection getHeaderSection()
-
getBodySection
public final com.oracle.truffle.api.source.SourceSection getBodySection()
-
getBodyNode
public final ExpressionNode getBodyNode()
-
getName
public final java.lang.String getName()
- Specified by:
getNamein classPklRootNode
-
replaceBody
public final void replaceBody(java.util.function.Function<ExpressionNode,ExpressionNode> replacer)
-
executeBody
protected final java.lang.Object executeBody(com.oracle.truffle.api.frame.VirtualFrame frame)
-
exceptionBuilder
protected final VmExceptionBuilder 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()
-
-