# Hierarchy For All Packages

Package Hierarchies:

- com.oracle.nfi,
- com.oracle.nfi.api,
- com.oracle.truffle.api,
- com.oracle.truffle.api.dsl,
- com.oracle.truffle.api.dsl.internal,
- com.oracle.truffle.api.frame,
- com.oracle.truffle.api.impl,
- com.oracle.truffle.api.instrument,
- com.oracle.truffle.api.instrument.impl,
- com.oracle.truffle.api.nodes,
- com.oracle.truffle.api.nodes.serial,
- com.oracle.truffle.api.object,
- com.oracle.truffle.api.script,
- com.oracle.truffle.api.source,
- com.oracle.truffle.api.utilities,
- com.oracle.truffle.object,
- com.oracle.truffle.object.basic,
- com.oracle.truffle.object.debug

## Class Hierarchy

- java.lang.Object
  - com.oracle.truffle.api.impl.AbstractAssumption (implements com.oracle.truffle.api.Assumption)
  - com.oracle.truffle.api.utilities.AlwaysValidAssumption (implements com.oracle.truffle.api.Assumption)
  - com.oracle.truffle.api.utilities.AssumedValue<T>
  - com.oracle.truffle.object.basic.BasicLocations
  - com.oracle.truffle.api.source.BytesDecoder.UTF8BytesDecoder (implements com.oracle.truffle.api.source.BytesDecoder)
  - com.oracle.truffle.api.CompilerAsserts
  - com.oracle.truffle.api.CompilerDirectives
  - com.oracle.truffle.api.utilities.CyclicAssumption
  - com.oracle.truffle.api.object.DebugCounter
  - com.oracle.truffle.object.DebugShapeVisitor<R> (implements com.oracle.truffle.api.object.ShapeVisitor<R>)
    - com.oracle.truffle.object.debug.GraphvizShapeVisitor
    - com.oracle.truffle.object.debug.JSONShapeVisitor
  - com.oracle.truffle.api.instrument.impl.DefaultASTPrinter (implements com.oracle.truffle.api.instrument.ASTPrinter)
  - com.oracle.truffle.api.impl.DefaultCallTarget (implements com.oracle.truffle.api.RootCallTarget)
  - com.oracle.truffle.api.impl.DefaultCompilerOptions (implements com.oracle.truffle.api.CompilerOptions)
  - com.oracle.truffle.api.instrument.impl.DefaultEventReceiver (implements com.oracle.truffle.api.instrument.TruffleEventReceiver)
  - com.oracle.truffle.object.basic.DefaultLayoutFactory (implements com.oracle.truffle.api.object.LayoutFactory)
  - com.oracle.truffle.api.impl.DefaultTruffleRuntime (implements com.oracle.truffle.api.TruffleRuntime)
  - com.oracle.truffle.api.instrument.impl.DefaultVisualizer (implements com.oracle.truffle.api.instrument.Visualizer)
  - com.oracle.truffle.api.dsl.internal.DSLMetadata
  - com.oracle.truffle.api.dsl.internal.DSLShare
  - com.oracle.truffle.object.DynamicObjectImpl (implements java.lang.Cloneable, com.oracle.truffle.api.object.DynamicObject)
    - com.oracle.truffle.object.basic.DynamicObjectBasic
  - com.oracle.truffle.api.ExactMath
  - com.oracle.truffle.api.ExecutionContext
  - com.oracle.truffle.api.frame.FrameDescriptor (implements java.lang.Cloneable)
  - com.oracle.truffle.api.frame.FrameSlot (implements java.lang.Cloneable)
  - com.oracle.truffle.api.frame.FrameUtil
  - com.oracle.truffle.api.nodes.GraphPrintVisitor
  - com.oracle.truffle.api.nodes.GraphPrintVisitor.GraphPrintAdapter
  - com.oracle.truffle.api.object.HiddenKey
  - com.oracle.truffle.api.instrument.Instrument
  - com.oracle.truffle.api.utilities.JSONHelper
  - com.oracle.truffle.api.utilities.JSONHelper.JSONStringBuilder
    - com.oracle.truffle.api.utilities.JSONHelper.JSONArrayBuilder
    - com.oracle.truffle.api.utilities.JSONHelper.JSONObjectBuilder
  - com.oracle.truffle.api.object.Layout
    - com.oracle.truffle.object.LayoutImpl
      - com.oracle.truffle.object.basic.BasicLayout
  - com.oracle.truffle.api.object.LayoutBuilder
  - com.oracle.truffle.api.instrument.impl.LineToProbesMap (implements com.oracle.truffle.api.instrument.Probe.ProbeListener)
  - com.oracle.truffle.api.instrument.impl.LineToSourceSectionMap (implements com.oracle.truffle.api.instrument.Probe.ProbeListener)
  - com.oracle.truffle.api.object.Location (implements com.oracle.truffle.api.object.BaseLocation)
    - com.oracle.truffle.object.LocationImpl
      - com.oracle.truffle.object.basic.BasicLocations.ArrayLocation
        - com.oracle.truffle.object.basic.BasicLocations.LongArrayLocation (implements com.oracle.truffle.object.LocationImpl.InternalLongLocation)
        - com.oracle.truffle.object.basic.BasicLocations.ObjectArrayLocation (implements com.oracle.truffle.api.object.ObjectLocation)
      - com.oracle.truffle.object.basic.BasicLocations.FieldLocation
        - com.oracle.truffle.object.basic.BasicLocations.MethodHandleFieldLocation
          - com.oracle.truffle.object.basic.BasicLocations.LongFieldLocation (implements com.oracle.truffle.object.LocationImpl.InternalLongLocation)
          - com.oracle.truffle.object.basic.BasicLocations.ObjectFieldLocation (implements com.oracle.truffle.api.object.ObjectLocation)
        - com.oracle.truffle.object.basic.BasicLocations.SimpleLongFieldLocation (implements com.oracle.truffle.object.LocationImpl.InternalLongLocation)
        - com.oracle.truffle.object.basic.BasicLocations.SimpleObjectFieldLocation (implements com.oracle.truffle.api.object.ObjectLocation)
      - com.oracle.truffle.object.basic.BasicLocations.PrimitiveLocationDecorator
        - com.oracle.truffle.object.basic.BasicLocations.BooleanLocationDecorator (implements com.oracle.truffle.api.object.BooleanLocation)
        - com.oracle.truffle.object.basic.BasicLocations.DoubleLocationDecorator (implements com.oracle.truffle.api.object.DoubleLocation)
        - com.oracle.truffle.object.basic.BasicLocations.IntLocationDecorator (implements com.oracle.truffle.api.object.IntLocation)
        - com.oracle.truffle.object.basic.BasicLocations.LongLocationDecorator (implements com.oracle.truffle.object.LocationImpl.InternalLongLocation)
      - com.oracle.truffle.object.Locations.DualLocation (implements com.oracle.truffle.api.object.TypedLocation)
        - com.oracle.truffle.object.Locations.DeclaredDualLocation
      - com.oracle.truffle.object.Locations.ValueLocation
        - com.oracle.truffle.object.Locations.ConstantLocation
        - com.oracle.truffle.object.Locations.DeclaredLocation
  - com.oracle.truffle.object.Locations
  - com.oracle.nfi.NativeFunctionInterfaceRuntime
  - com.oracle.truffle.api.utilities.NeverValidAssumption (implements com.oracle.truffle.api.Assumption)
  - com.oracle.truffle.api.nodes.Node (implements java.lang.Cloneable, com.oracle.truffle.api.nodes.NodeInterface)
    - com.oracle.truffle.api.nodes.DirectCallNode
      - com.oracle.truffle.api.impl.DefaultDirectCallNode
    - com.oracle.truffle.api.nodes.IndirectCallNode
    - com.oracle.truffle.api.nodes.LoopNode
      - com.oracle.truffle.api.impl.DefaultLoopNode
    - com.oracle.truffle.api.instrument.ProbeNode (implements com.oracle.truffle.api.instrument.InstrumentationNode, com.oracle.truffle.api.instrument.TruffleEventReceiver)
    - com.oracle.truffle.api.nodes.RootNode
  - com.oracle.truffle.api.nodes.NodeCloneable (implements java.lang.Cloneable)
    - com.oracle.truffle.api.utilities.BranchProfile
    - com.oracle.truffle.api.utilities.ConditionProfile
      - com.oracle.truffle.api.utilities.BinaryConditionProfile
      - com.oracle.truffle.api.utilities.CountingConditionProfile
  - com.oracle.truffle.api.dsl.internal.NodeFactoryBase<T> (implements com.oracle.truffle.api.dsl.NodeFactory<T>)
  - com.oracle.truffle.api.nodes.NodeUtil
  - com.oracle.truffle.api.nodes.NodeUtil.NodeClass
  - com.oracle.truffle.api.nodes.NodeUtil.NodeField
  - com.oracle.truffle.api.source.NullSourceSection (implements com.oracle.truffle.api.source.SourceSection)
  - com.oracle.truffle.object.ObjectStorageOptions
  - com.oracle.truffle.api.object.ObjectType
  - com.oracle.truffle.api.nodes.serial.PostOrderDeserializer
  - com.oracle.truffle.api.nodes.serial.PostOrderSerializer
  - com.oracle.truffle.api.instrument.Probe (implements com.oracle.truffle.api.instrument.SyntaxTagged)
  - com.oracle.truffle.api.object.Property
    - com.oracle.truffle.object.PropertyImpl
  - com.oracle.truffle.object.PropertyMap (implements java.util.Map<K,​V>)
  - com.oracle.truffle.api.object.Shape
    - com.oracle.truffle.object.ShapeImpl
      - com.oracle.truffle.object.basic.ShapeBasic
  - com.oracle.truffle.api.object.Shape.Allocator
    - com.oracle.truffle.object.ShapeImpl.BaseAllocator
      - com.oracle.truffle.object.basic.BasicAllocator
  - com.oracle.truffle.object.debug.ShapeProfiler
  - com.oracle.truffle.api.instrument.impl.SimpleEventReceiver (implements com.oracle.truffle.api.instrument.TruffleEventReceiver)
  - com.oracle.truffle.api.source.Source
  - com.oracle.truffle.api.instrument.SyntaxTagTrap
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - java.lang.RuntimeException
        - com.oracle.truffle.api.nodes.ControlFlowException
          - com.oracle.truffle.api.instrument.KillException
          - com.oracle.truffle.api.instrument.QuitException
        - com.oracle.truffle.api.OptimizationFailedException
        - com.oracle.truffle.api.nodes.serial.UnsupportedConstantPoolTypeException
        - com.oracle.truffle.api.dsl.UnsupportedSpecializationException
      - com.oracle.truffle.api.nodes.SlowPathException
        - com.oracle.truffle.api.object.FinalLocationException
        - com.oracle.truffle.api.frame.FrameSlotTypeException
        - com.oracle.truffle.api.object.IncompatibleLocationException
        - com.oracle.truffle.api.nodes.InvalidAssumptionException
        - com.oracle.truffle.api.nodes.UnexpectedResultException
  - com.oracle.truffle.object.Transition
    - com.oracle.truffle.object.Transition.ObjectTypeTransition
    - com.oracle.truffle.object.Transition.PropertyTransition
      - com.oracle.truffle.object.Transition.AddPropertyTransition
      - com.oracle.truffle.object.Transition.RemovePropertyTransition
      - com.oracle.truffle.object.Transition.ReplacePropertyTransition
    - com.oracle.truffle.object.Transition.ReservePrimitiveArrayTransition
  - com.oracle.truffle.api.Truffle
  - com.oracle.truffle.api.TruffleOptions
  - com.oracle.truffle.api.script.TruffleScriptEngineFactory (implements javax.script.ScriptEngineFactory)
  - com.oracle.truffle.api.utilities.UnionAssumption (implements com.oracle.truffle.api.Assumption)
  - com.oracle.truffle.api.utilities.ValueProfile
    - com.oracle.truffle.api.utilities.ExactClassValueProfile
    - com.oracle.truffle.api.utilities.IdentityValueProfile
    - com.oracle.truffle.api.utilities.PrimitiveValueProfile
  - com.oracle.truffle.api.nodes.serial.VariableLengthIntBuffer

## Interface Hierarchy

- com.oracle.truffle.api.Assumption
- com.oracle.truffle.api.instrument.ASTPrinter
- com.oracle.truffle.api.instrument.ASTProber
- com.oracle.truffle.api.object.BaseLocation
  - com.oracle.truffle.api.object.TypedLocation
    - com.oracle.truffle.api.object.BooleanLocation
    - com.oracle.truffle.api.object.DoubleLocation
    - com.oracle.truffle.api.object.IntLocation
    - com.oracle.truffle.api.object.LongLocation
      - com.oracle.truffle.object.LocationImpl.InternalLongLocation
    - com.oracle.truffle.api.object.ObjectLocation
      - com.oracle.truffle.object.LocationImpl.TypedObjectLocation<T>
- com.oracle.truffle.api.source.BytesDecoder
- com.oracle.truffle.api.source.BytesDecoder.LineMarker
- com.oracle.truffle.api.CallTarget
  - com.oracle.truffle.api.RootCallTarget
- com.oracle.truffle.api.CompilerOptions
- com.oracle.truffle.api.dsl.internal.DSLNode
- com.oracle.truffle.api.object.DynamicObject.FlagsFunction
- com.oracle.truffle.api.object.DynamicObjectFactory
- com.oracle.truffle.api.frame.Frame
  - com.oracle.truffle.api.frame.MaterializedFrame
  - com.oracle.truffle.api.frame.VirtualFrame
- com.oracle.truffle.api.frame.FrameInstance
- com.oracle.truffle.api.frame.FrameInstanceVisitor<T>
- com.oracle.truffle.api.nodes.GraphPrintVisitor.ChildSupplier
- com.oracle.truffle.api.nodes.GraphPrintVisitor.GraphPrintHandler
- com.oracle.truffle.api.instrument.InstrumentationNode
  - com.oracle.truffle.api.instrument.ProbeNode.WrapperNode
- com.oracle.truffle.api.object.LayoutFactory
- com.oracle.truffle.object.LayoutStrategy
- com.oracle.truffle.api.source.LineLocation
- com.oracle.truffle.api.object.LocationFactory
- com.oracle.truffle.object.LocationImpl.EffectivelyFinalLocation<T>
- com.oracle.truffle.api.LoopCountReceiver
- com.oracle.nfi.api.NativeFunctionHandle
- com.oracle.nfi.api.NativeFunctionInterface
- com.oracle.nfi.api.NativeFunctionPointer
- com.oracle.nfi.api.NativeLibraryHandle
- com.oracle.truffle.api.dsl.NodeFactory<T>
- com.oracle.truffle.api.nodes.NodeInterface
- com.oracle.truffle.api.nodes.NodeUtil.FieldOffsetProvider
- com.oracle.truffle.api.nodes.NodeUtil.NodeCountFilter
- com.oracle.truffle.api.nodes.NodeVisitor
- com.oracle.truffle.api.instrument.Probe.ProbeListener
- com.oracle.truffle.api.instrument.ProbeNode.Instrumentable
- com.oracle.truffle.api.nodes.RepeatingNode
- com.oracle.truffle.api.ReplaceObserver
- com.oracle.truffle.api.nodes.serial.SerializerConstantPool
- com.oracle.truffle.api.object.Shape.Pred<T>
- com.oracle.truffle.api.object.ShapeVisitor<R>
- com.oracle.truffle.api.source.SourceSection
- com.oracle.truffle.api.instrument.SyntaxTag
- com.oracle.truffle.api.instrument.SyntaxTagged
- com.oracle.truffle.api.instrument.TruffleEventReceiver
- com.oracle.truffle.api.TruffleRuntime
- com.oracle.truffle.api.TypedObject
  - com.oracle.truffle.api.object.DynamicObject
- com.oracle.truffle.api.instrument.Visualizer

## Annotation Type Hierarchy

- com.oracle.truffle.api.CompilerDirectives.CompilationFinal (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.CompilerDirectives.TruffleBoundary (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.CompilerDirectives.ValueType (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.CreateCast (implements java.lang.annotation.Annotation)
- com.oracle.truffle.object.basic.DynamicObjectBasic.DynamicField (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.ExpectError (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.nodes.ExplodeLoop (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.Fallback (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.GeneratedBy (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.nodes.GraphPrintVisitor.CustomGraphPrintHandler (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.nodes.GraphPrintVisitor.GraphDuplicate (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.nodes.GraphPrintVisitor.HiddenField (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.nodes.GraphPrintVisitor.NullGraphPrintHandler (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.ImplicitCast (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.Implies (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.ImportGuards (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.nodes.Node.Child (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.nodes.Node.Children (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.NodeAssumptions (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.NodeChild (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.NodeChildren (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.NodeField (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.NodeFields (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.nodes.NodeInfo (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.ShortCircuit (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.Specialization (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.TypeCast (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.TypeCheck (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.TypeSystem (implements java.lang.annotation.Annotation)
- com.oracle.truffle.api.dsl.TypeSystemReference (implements java.lang.annotation.Annotation)

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - com.oracle.truffle.api.frame.FrameInstance.FrameAccess
    - com.oracle.truffle.api.frame.FrameSlotKind
    - com.oracle.truffle.api.object.Layout.ImplicitCast
    - com.oracle.truffle.api.object.LocationModifier
    - com.oracle.truffle.api.nodes.NodeCost
    - com.oracle.truffle.api.nodes.NodeUtil.NodeFieldKind
    - com.oracle.truffle.api.instrument.StandardSyntaxTag (implements com.oracle.truffle.api.instrument.SyntaxTag)