Class UnusedAbstractValue

  • All Implemented Interfaces:
    AbstractValue<UnusedAbstractValue>

    public final class UnusedAbstractValue
    extends java.lang.Object
    implements AbstractValue<UnusedAbstractValue>
    UnusedAbstractValue is an AbstractValue that is not involved in any lub computation during dataflow analysis. For those analyses which handle lub computation at a higher level (e.g., store level), it is sufficient to use UnusedAbstractValue and unnecessary to implement another specific AbstractValue. Example analysis using UnusedAbstractValue is LiveVariable analysis. This is a workaround for issue https://github.com/eisop/checker-framework/issues/200
    • Method Detail

      • leastUpperBound

        public UnusedAbstractValue leastUpperBound​(UnusedAbstractValue other)
        Description copied from interface: AbstractValue
        Compute the least upper bound of two values.

        Important: This method must fulfill the following contract:

        • Does not change this.
        • Does not change other.
        • Returns a fresh object which is not aliased yet.
        • Returns an object of the same (dynamic) type as this, even if the signature is more permissive.
        • Is commutative.
        Specified by:
        leastUpperBound in interface AbstractValue<UnusedAbstractValue>