accrue.analysis.pointer

## Interface HContext

-     public interface HContext

  An abstract heap object. An abstract heap object represents zero or more concrete objects. This interface corresponds to the domain HContext in the paper "Pick Your Contexts Well: Understanding Object-Sensitivity" by Smaragdakis, Bravenboer, and Lhotak, POPL 2011.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `AllocSiteNode` | `allocSite()` Returns the allocation site of this abstract object.
    `boolean` | `equalsSemantic(HContext o)` Semantic equality between two HContexts.
    `boolean` | `hasPreciseType()` Returns true if there is a precise type for this abstract object.
    `polyglot.types.Type` | `preciseType()` Returns the precise type of this abstract object.
    `polyglot.types.Type` | `type()` Returns the most specific known type of this abstract object.

- - ### Method Detail

    - #### preciseType

          polyglot.types.Type preciseType()

      Returns the precise type of this abstract object. That is, all concrete objects represented by this abstract object must have the type returned by this method. Can be null if precise type is unknown.

    - #### type

          polyglot.types.Type type()

      Returns the most specific known type of this abstract object. This serves as an upper bound for the precise type of all concrete objects represented by this abstract object. If a precise type is known, this returns the same type as preciseType().

    - #### hasPreciseType

          boolean hasPreciseType()

      Returns true if there is a precise type for this abstract object.

    - #### equalsSemantic

          boolean equalsSemantic(HContext o)

      Semantic equality between two HContexts.

    - #### allocSite

          AllocSiteNode allocSite()

      Returns the allocation site of this abstract object.