# Hierarchy For Package jif.types

Package Hierarchies:

- All Packages

## Class Hierarchy

- java.lang.Object
  - jif.types.AbstractSolver (implements jif.types.Solver)
    - jif.types.SolverGLB
  - jif.types.AbstractSolver.EquationQueue
  - jif.types.AbstractSolver.Frame
  - jif.types.Constraint
    - jif.types.LabelConstraint
    - jif.types.PrincipalConstraint
  - jif.types.ConstraintMessage
  - polyglot.types.Context_c (implements polyglot.types.Context)
    - jif.types.JifContext_c (implements jif.types.JifContext)
  - polyglot.types.DeserializedClassInitializer (implements polyglot.types.LazyClassInitializer)
    - jif.types.JifDeserializedClassInitializer
  - polyglot.util.Enum (implements polyglot.util.Internable, java.io.Serializable)
    - jif.types.Constraint.Kind
    - jif.types.ParamInstance.Kind
    - jif.types.Path.FixedPath (implements jif.types.Path)
  - jif.types.Equation
    - jif.types.LabelEquation
    - jif.types.PrincipalEquation
  - jif.types.ExceptionPath_c (implements jif.types.ExceptionPath)
  - jif.types.FailedConstraintSnapshot
  - jif.types.FixedSignature (implements jif.types.DefaultSignature)
  - jif.types.GotoPath_c (implements jif.types.Path)
  - jif.types.Graph
    - jif.types.LabelFlowGraph
  - jif.types.Graph.LabellingVisitor (implements jif.types.Graph.NodeVisitor)
  - jif.types.Graph.PathFinder (implements jif.types.Graph.NodeVisitor)
  - jif.types.InformationFlowTrace
  - jif.types.JifContext_c.Key
  - jif.types.JifSubst_c.ConstraintXform (implements polyglot.util.Transformation<T,U>)
  - jif.types.JifSubst_c.LabelXform (implements polyglot.util.Transformation<T,U>)
  - jif.types.JifSubst_c.PrincipalXform (implements polyglot.util.Transformation<T,U>)
  - jif.types.LabelSubstitution
    - jif.types.JifSubst_c.SubstLabelSubst (implements java.io.Serializable)
  - jif.types.NamedLabel
  - jif.types.PathMap
  - polyglot.types.SchedulerClassInitializer (implements polyglot.types.LazyClassInitializer)
    - jif.types.JifLazyClassInitializer_c
  - polyglot.ext.param.types.Subst_c<Formal,Actual> (implements polyglot.ext.param.types.Subst<Formal,Actual>)
    - jif.types.JifSubst_c (implements jif.types.JifSubst)
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - polyglot.types.SemanticException
        - jif.types.SemanticDetailedException
        - jif.types.UnsatisfiableConstraintException
  - polyglot.types.TypeObject_c (implements polyglot.types.TypeObject)
    - jif.types.ActsForConstraint_c<Actor,Granter> (implements jif.types.ActsForConstraint<Actor,Granter>)
    - jif.types.AuthConstraint_c (implements jif.types.AuthConstraint)
    - jif.types.AutoEndorseConstraint_c (implements jif.types.AutoEndorseConstraint)
    - jif.types.CallerConstraint_c (implements jif.types.CallerConstraint)
    - jif.types.LabelLeAssertion_c (implements jif.types.LabelLeAssertion)
    - jif.types.Param_c (implements jif.types.Param)
      - jif.types.UnknownParam_c (implements jif.types.UnknownParam)
    - polyglot.ext.param.types.PClass_c<Formal,Actual> (implements polyglot.ext.param.types.PClass<Formal,Actual>)
      - polyglot.ext.param.types.MuPClass_c<Formal,Actual> (implements polyglot.ext.param.types.MuPClass<Formal,Actual>)
        - jif.types.JifMuPClass_c
    - polyglot.types.ProcedureInstance_c (implements polyglot.types.ProcedureInstance)
      - polyglot.types.ConstructorInstance_c (implements polyglot.types.ConstructorInstance)
        - jif.types.JifConstructorInstance_c (implements jif.types.JifConstructorInstance)
      - polyglot.types.MethodInstance_c (implements polyglot.types.MethodInstance)
        - jif.types.JifMethodInstance_c (implements jif.types.JifMethodInstance)
    - polyglot.types.Type_c (implements polyglot.types.Type)
      - jif.types.LabeledType_c (implements jif.types.LabeledType)
      - polyglot.types.ReferenceType_c (implements polyglot.types.ReferenceType)
        - polyglot.types.ArrayType_c (implements polyglot.types.ArrayType)
          - jif.types.ConstArrayType_c (implements jif.types.ConstArrayType)
        - polyglot.types.ClassType_c (implements polyglot.types.ClassType)
          - polyglot.types.ParsedClassType_c (implements polyglot.types.ParsedClassType)
            - jif.types.JifParsedPolyType_c (implements jif.types.JifParsedPolyType)
          - polyglot.ext.param.types.SubstClassType_c<Formal,Actual> (implements polyglot.ext.param.types.SubstType<Formal,Actual>)
            - jif.types.JifSubstClassType_c (implements jif.types.JifSubstType)
    - polyglot.types.VarInstance_c (implements polyglot.types.VarInstance)
      - polyglot.types.FieldInstance_c (implements polyglot.types.FieldInstance)
        - jif.types.JifFieldInstance_c (implements jif.types.JifFieldInstance)
      - polyglot.types.LocalInstance_c (implements polyglot.types.LocalInstance)
        - jif.types.JifLocalInstance_c (implements jif.types.JifLocalInstance)
      - jif.types.ParamInstance_c (implements jif.types.ParamInstance)
      - jif.types.PrincipalInstance_c (implements jif.types.PrincipalInstance)
  - jif.types.TypeSubstitutor
  - polyglot.types.TypeSystem_c (implements polyglot.types.TypeSystem)
    - polyglot.ext.param.types.ParamTypeSystem_c<Formal,Actual> (implements polyglot.ext.param.types.ParamTypeSystem<Formal,Actual>)
      - jif.types.JifTypeSystem_c (implements jif.types.JifTypeSystem)
  - jif.types.VarMap
  - jif.types.VarSignature (implements jif.types.DefaultSignature)

## Interface Hierarchy

- java.lang.Cloneable
  - polyglot.util.Copy<T>
    - polyglot.types.Context (also extends polyglot.types.Resolver)
      - jif.types.JifContext
    - polyglot.types.TypeObject (also extends java.io.Serializable)
      - jif.types.Assertion
        - jif.types.ActsForConstraint<Actor,Granter>
        - jif.types.AuthConstraint
        - jif.types.AutoEndorseConstraint
        - jif.types.CallerConstraint
        - jif.types.LabelLeAssertion
      - polyglot.types.CodeInstance
        - polyglot.types.ProcedureInstance
          - polyglot.types.ConstructorInstance (also extends polyglot.types.Declaration, polyglot.types.MemberInstance)
            - jif.types.JifConstructorInstance (also extends jif.types.JifProcedureInstance)
          - polyglot.types.FunctionInstance
            - polyglot.types.MethodInstance (also extends polyglot.types.Declaration, polyglot.types.MemberInstance)
              - jif.types.JifMethodInstance (also extends jif.types.JifProcedureInstance)
          - jif.types.JifProcedureInstance
            - jif.types.JifConstructorInstance (also extends polyglot.types.ConstructorInstance)
            - jif.types.JifMethodInstance (also extends polyglot.types.MethodInstance)
      - polyglot.types.Declaration
        - polyglot.types.ClassType (also extends polyglot.types.Importable, polyglot.types.MemberInstance, polyglot.types.ReferenceType)
          - jif.types.JifClassType
            - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
              - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
            - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
          - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
            - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
        - polyglot.types.ConstructorInstance (also extends polyglot.types.MemberInstance, polyglot.types.ProcedureInstance)
          - jif.types.JifConstructorInstance (also extends jif.types.JifProcedureInstance)
        - polyglot.types.MethodInstance (also extends polyglot.types.FunctionInstance, polyglot.types.MemberInstance)
          - jif.types.JifMethodInstance (also extends jif.types.JifProcedureInstance)
        - polyglot.types.VarInstance
          - polyglot.types.FieldInstance (also extends polyglot.types.MemberInstance)
            - jif.types.JifFieldInstance (also extends jif.types.JifVarInstance)
          - jif.types.JifVarInstance
            - jif.types.JifFieldInstance (also extends polyglot.types.FieldInstance)
            - jif.types.JifLocalInstance (also extends polyglot.types.LocalInstance)
          - polyglot.types.LocalInstance
            - jif.types.JifLocalInstance (also extends jif.types.JifVarInstance)
          - jif.types.ParamInstance (also extends polyglot.ext.param.types.Param)
          - jif.types.PrincipalInstance
      - polyglot.types.MemberInstance
        - polyglot.types.ClassType (also extends polyglot.types.Declaration, polyglot.types.Importable, polyglot.types.ReferenceType)
          - jif.types.JifClassType
            - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
              - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
            - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
          - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
            - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
        - polyglot.types.ConstructorInstance (also extends polyglot.types.Declaration, polyglot.types.ProcedureInstance)
          - jif.types.JifConstructorInstance (also extends jif.types.JifProcedureInstance)
        - polyglot.types.FieldInstance (also extends polyglot.types.VarInstance)
          - jif.types.JifFieldInstance (also extends jif.types.JifVarInstance)
        - polyglot.types.MethodInstance (also extends polyglot.types.Declaration, polyglot.types.FunctionInstance)
          - jif.types.JifMethodInstance (also extends jif.types.JifProcedureInstance)
      - polyglot.types.Named
        - polyglot.types.Importable
          - polyglot.types.ClassType (also extends polyglot.types.Declaration, polyglot.types.MemberInstance, polyglot.types.ReferenceType)
            - jif.types.JifClassType
              - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
                - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
              - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
            - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
              - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
        - polyglot.ext.param.types.Param
          - jif.types.ParamInstance (also extends polyglot.types.VarInstance)
        - polyglot.types.ParsedTypeObject
          - polyglot.types.ParsedClassType (also extends polyglot.types.ClassType)
            - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
      - jif.types.Param
        - jif.types.ActsForParam
        - jif.types.UnknownParam
      - polyglot.types.Qualifier
        - polyglot.types.Type
          - polyglot.ext.param.types.InstType<Formal,Actual>
            - jif.types.JifPolyType (also extends jif.types.JifClassType)
              - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
            - jif.types.JifSubstType (also extends jif.types.JifClassType, polyglot.ext.param.types.SubstType<Formal,Actual>)
          - jif.types.LabeledType
          - polyglot.types.ReferenceType
            - polyglot.types.ArrayType
              - jif.types.ConstArrayType
            - polyglot.types.ClassType (also extends polyglot.types.Declaration, polyglot.types.Importable, polyglot.types.MemberInstance)
              - jif.types.JifClassType
                - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
                  - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
                - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
              - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
                - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
          - polyglot.ext.param.types.SubstType<Formal,Actual>
            - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, jif.types.JifClassType)
- jif.types.DefaultSignature
- jif.types.Graph.NodeVisitor
- jif.types.Path
  - jif.types.ExceptionPath
- polyglot.types.Resolver
  - polyglot.types.Context (also extends polyglot.util.Copy<T>)
    - jif.types.JifContext
- java.io.Serializable
  - polyglot.ext.param.types.Subst<Formal,Actual>
    - jif.types.JifSubst
  - polyglot.types.TypeObject (also extends polyglot.util.Copy<T>)
    - jif.types.Assertion
      - jif.types.ActsForConstraint<Actor,Granter>
      - jif.types.AuthConstraint
      - jif.types.AutoEndorseConstraint
      - jif.types.CallerConstraint
      - jif.types.LabelLeAssertion
    - polyglot.types.CodeInstance
      - polyglot.types.ProcedureInstance
        - polyglot.types.ConstructorInstance (also extends polyglot.types.Declaration, polyglot.types.MemberInstance)
          - jif.types.JifConstructorInstance (also extends jif.types.JifProcedureInstance)
        - polyglot.types.FunctionInstance
          - polyglot.types.MethodInstance (also extends polyglot.types.Declaration, polyglot.types.MemberInstance)
            - jif.types.JifMethodInstance (also extends jif.types.JifProcedureInstance)
        - jif.types.JifProcedureInstance
          - jif.types.JifConstructorInstance (also extends polyglot.types.ConstructorInstance)
          - jif.types.JifMethodInstance (also extends polyglot.types.MethodInstance)
    - polyglot.types.Declaration
      - polyglot.types.ClassType (also extends polyglot.types.Importable, polyglot.types.MemberInstance, polyglot.types.ReferenceType)
        - jif.types.JifClassType
          - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
            - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
          - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
        - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
          - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
      - polyglot.types.ConstructorInstance (also extends polyglot.types.MemberInstance, polyglot.types.ProcedureInstance)
        - jif.types.JifConstructorInstance (also extends jif.types.JifProcedureInstance)
      - polyglot.types.MethodInstance (also extends polyglot.types.FunctionInstance, polyglot.types.MemberInstance)
        - jif.types.JifMethodInstance (also extends jif.types.JifProcedureInstance)
      - polyglot.types.VarInstance
        - polyglot.types.FieldInstance (also extends polyglot.types.MemberInstance)
          - jif.types.JifFieldInstance (also extends jif.types.JifVarInstance)
        - jif.types.JifVarInstance
          - jif.types.JifFieldInstance (also extends polyglot.types.FieldInstance)
          - jif.types.JifLocalInstance (also extends polyglot.types.LocalInstance)
        - polyglot.types.LocalInstance
          - jif.types.JifLocalInstance (also extends jif.types.JifVarInstance)
        - jif.types.ParamInstance (also extends polyglot.ext.param.types.Param)
        - jif.types.PrincipalInstance
    - polyglot.types.MemberInstance
      - polyglot.types.ClassType (also extends polyglot.types.Declaration, polyglot.types.Importable, polyglot.types.ReferenceType)
        - jif.types.JifClassType
          - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
            - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
          - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
        - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
          - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
      - polyglot.types.ConstructorInstance (also extends polyglot.types.Declaration, polyglot.types.ProcedureInstance)
        - jif.types.JifConstructorInstance (also extends jif.types.JifProcedureInstance)
      - polyglot.types.FieldInstance (also extends polyglot.types.VarInstance)
        - jif.types.JifFieldInstance (also extends jif.types.JifVarInstance)
      - polyglot.types.MethodInstance (also extends polyglot.types.Declaration, polyglot.types.FunctionInstance)
        - jif.types.JifMethodInstance (also extends jif.types.JifProcedureInstance)
    - polyglot.types.Named
      - polyglot.types.Importable
        - polyglot.types.ClassType (also extends polyglot.types.Declaration, polyglot.types.MemberInstance, polyglot.types.ReferenceType)
          - jif.types.JifClassType
            - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
              - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
            - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
          - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
            - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
      - polyglot.ext.param.types.Param
        - jif.types.ParamInstance (also extends polyglot.types.VarInstance)
      - polyglot.types.ParsedTypeObject
        - polyglot.types.ParsedClassType (also extends polyglot.types.ClassType)
          - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
    - jif.types.Param
      - jif.types.ActsForParam
      - jif.types.UnknownParam
    - polyglot.types.Qualifier
      - polyglot.types.Type
        - polyglot.ext.param.types.InstType<Formal,Actual>
          - jif.types.JifPolyType (also extends jif.types.JifClassType)
            - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
          - jif.types.JifSubstType (also extends jif.types.JifClassType, polyglot.ext.param.types.SubstType<Formal,Actual>)
        - jif.types.LabeledType
        - polyglot.types.ReferenceType
          - polyglot.types.ArrayType
            - jif.types.ConstArrayType
          - polyglot.types.ClassType (also extends polyglot.types.Declaration, polyglot.types.Importable, polyglot.types.MemberInstance)
            - jif.types.JifClassType
              - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
                - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
              - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
            - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
              - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
        - polyglot.ext.param.types.SubstType<Formal,Actual>
          - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, jif.types.JifClassType)
- jif.types.Solver
- polyglot.types.TypeSystem
  - polyglot.ext.param.types.ParamTypeSystem<Formal,Actual>
    - jif.types.JifTypeSystem

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - jif.types.InformationFlowTrace.Direction