Package org.pkl.core.ast.type
Class TypeNode.TypeAliasTypeNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
org.pkl.core.ast.PklNode
org.pkl.core.ast.type.TypeNode
org.pkl.core.ast.type.TypeNode.TypeAliasTypeNode
- All Implemented Interfaces:
com.oracle.truffle.api.nodes.NodeInterface,Cloneable
- Enclosing class:
- TypeNode
-
Nested Class Summary
Nested classes/interfaces inherited from class org.pkl.core.ast.type.TypeNode
TypeNode.AnyTypeNode, TypeNode.BooleanTypeNode, TypeNode.CollectionTypeNode, TypeNode.ConstrainedTypeNode, TypeNode.DynamicTypeNode, TypeNode.FinalClassTypeNode, TypeNode.FinalModuleTypeNode, TypeNode.FloatTypeNode, TypeNode.FrameSlotTypeNode, TypeNode.FunctionClassTypeNode, TypeNode.FunctionNClassTypeNode, TypeNode.FunctionTypeNode, TypeNode.Int16TypeAliasTypeNode, TypeNode.Int32TypeAliasTypeNode, TypeNode.Int8TypeAliasTypeNode, TypeNode.IntSlotTypeNode, TypeNode.IntTypeNode, TypeNode.ListingOrMappingTypeNode, TypeNode.ListingTypeNode, TypeNode.ListTypeNode, TypeNode.MappingTypeNode, TypeNode.MapTypeNode, TypeNode.NonFinalClassTypeNode, TypeNode.NonFinalModuleTypeNode, TypeNode.NonNullTypeAliasTypeNode, TypeNode.NothingTypeNode, TypeNode.NullableTypeNode, TypeNode.NumberTypeNode, TypeNode.ObjectSlotTypeNode, TypeNode.PairTypeNode, TypeNode.SetTypeNode, TypeNode.StringLiteralTypeNode, TypeNode.StringTypeNode, TypeNode.TypeAliasTypeNode, TypeNode.TypedTypeNode, TypeNode.TypeVariableNode, TypeNode.UIntTypeAliasTypeNode, TypeNode.UnionOfStringLiteralsTypeNode, TypeNode.UnionTypeNode, TypeNode.UnknownTypeNode, TypeNode.VarArgsTypeNode, TypeNode.WriteFrameSlotTypeNodeNested 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 inherited from class org.pkl.core.ast.PklNode
sourceSection -
Constructor Summary
ConstructorsConstructorDescriptionTypeAliasTypeNode(com.oracle.truffle.api.source.SourceSection sourceSection, VmTypeAlias typeAlias, TypeNode[] typeArgumentNodes) -
Method Summary
Modifier and TypeMethodDescriptioncreateDefaultValue(VmLanguage language, com.oracle.truffle.api.source.SourceSection headerSection, String qualifiedName) protected PTypedoExport()voidA typealias body is effectively inlined into the type node, and not executed in its own frame.voidexecuteAndSet(com.oracle.truffle.api.frame.VirtualFrame frame, Object value) See docstring onexecute(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object).com.oracle.truffle.api.frame.FrameSlotKindinitWriteSlotNode(int slot) Initializes this node's frame slot.Methods inherited from class org.pkl.core.ast.type.TypeNode
export, forClass, getMirror, getMirrors, isNoopTypeCheck, typeMismatchMethods inherited from class org.pkl.core.ast.PklNode
exceptionBuilder, getShortName, getSourceSection, toStringMethods inherited from class com.oracle.truffle.api.nodes.Node
accept, adoptChildren, atomic, atomic, copy, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, onReplace, replace, replace, reportPolymorphicSpecialize
-
Constructor Details
-
TypeAliasTypeNode
public TypeAliasTypeNode(com.oracle.truffle.api.source.SourceSection sourceSection, VmTypeAlias typeAlias, TypeNode[] typeArgumentNodes)
-
-
Method Details
-
getFrameSlotKind
public com.oracle.truffle.api.frame.FrameSlotKind getFrameSlotKind()- Specified by:
getFrameSlotKindin classTypeNode
-
initWriteSlotNode
Description copied from class:TypeNodeInitializes this node's frame slot. Called if this node is a function/method parameter type. Kept separate from constructor so thatTypeNode.TypeAliasTypeNodecan initialize frame slot of its cloned child node.- Specified by:
initWriteSlotNodein classTypeNode
-
getMirror
-
getTypeArgumentMirrors
- Overrides:
getTypeArgumentMirrorsin classTypeNode
-
execute
A typealias body is effectively inlined into the type node, and not executed in its own frame.Before executing the typealias body, use the owner and receiver of the original frame where the typealias was declared, so that we preserve its original scope.
-
executeAndSet
See docstring onexecute(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object).- Specified by:
executeAndSetin classTypeNode
-
createDefaultValue
@Nullable public @Nullable Object createDefaultValue(VmLanguage language, com.oracle.truffle.api.source.SourceSection headerSection, String qualifiedName) - Overrides:
createDefaultValuein classTypeNode
-
getVmClass
- Overrides:
getVmClassin classTypeNode
-
getVmTypeAlias
- Overrides:
getVmTypeAliasin classTypeNode
-
doExport
-