Packages

final class InterimELUBP[+E <: fpcf.Entity, +P <: Property] extends InterimEP[E, P]

Encapsulates the intermediate lower- and upper bound related to the computation of the respective property kind for the entity E.

For a detailed discussion of the semantics of lb and ub see EOptionP.ub.

Source
EOptionP.scala
Linear Supertypes
InterimEP[E, P], EPS[E, P], EOptionP[E, P], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. InterimELUBP
  2. InterimEP
  3. EPS
  4. EOptionP
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new InterimELUBP(e: E, lb: P, ub: P)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def asEPK: EPK[E, P]
    Definition Classes
    EPSEOptionP
  5. final def asEPS: EPS[E, P]

    This EOptionP as an EPS object; defined iff at least a preliminary property exists.

    This EOptionP as an EPS object; defined iff at least a preliminary property exists.

    Definition Classes
    EPSEOptionP
  6. def asFinal: FinalEP[E, P]
    Definition Classes
    InterimEPEOptionP
  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def asInterim: InterimEP[E, P]
    Definition Classes
    InterimEPEOptionP
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @IntrinsicCandidate()
  10. val e: E

    The entity.

    The entity. E.g., a class, method or field. In general, it is recommended to use entities that stand for specific elements in the code, but which are not the concrete source code entities themselves. This greatly facilitates associating properties with entities where the respective code is not available. For example, by using an object which acts as a representative for a concrete method it is possible to associate (predetermined) properties with (selected) library methods even if those methods are not part of the analysis.

    Definition Classes
    InterimELUBPEOptionP
    Note

    Entities have to implement equals/hashCode methods which are very efficient, because entity based comparisons happen very frequently!

  11. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. def equals(other: Any): Boolean
    Definition Classes
    InterimELUBP → AnyRef → Any
  13. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  14. def hasLBP: Boolean

    returns

    true if the entity is associated with a (preliminary) property which represents a lower bound. Always true in case of a FinalP.

    Definition Classes
    InterimELUBPEOptionP
  15. final def hasNoLBP: Boolean
    Definition Classes
    EOptionP
  16. final def hasNoUBP: Boolean
    Definition Classes
    EOptionP
  17. def hasUBP: Boolean

    returns

    true if the entity is associated with a (preliminary) property which represents an upper bound. Always true in case of a FinalP.

    Definition Classes
    InterimELUBPEOptionP
  18. lazy val hashCode: Int
    Definition Classes
    InterimELUBP → AnyRef → Any
  19. def is(p: AnyRef): Boolean

    Combines the test if we have a final property and – if we have one – if it is equal (by means of an equality check) to the given one.

    Combines the test if we have a final property and – if we have one – if it is equal (by means of an equality check) to the given one.

    Definition Classes
    EOptionP
  20. final def isEPK: Boolean
    Definition Classes
    EPSEOptionP
  21. final def isEPS: Boolean
    Definition Classes
    EPSEOptionP
  22. def isFinal: Boolean

    Returns true if and only if we have a property and the property was stored in the store using (Multi)Result.

    Returns true if and only if we have a property and the property was stored in the store using (Multi)Result.

    Definition Classes
    InterimEPEOptionP
  23. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  24. final def isRefinable: Boolean
    Definition Classes
    EOptionP
  25. val lb: P

    Returns the lower bound of the property if it is available, otherwise an UnsupportedOperationException is thrown.

    Returns the lower bound of the property if it is available, otherwise an UnsupportedOperationException is thrown. For details regarding the precise semantics see the discussion for ub.

    Definition Classes
    InterimELUBPEOptionP
    Note

    If the property is final, lb (and ub) will return the final property p.

  26. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  27. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  28. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  29. lazy val pk: PropertyKey[P]

    The property key of the optionally available property.

    The property key of the optionally available property.

    Definition Classes
    InterimELUBPEOptionP
  30. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  31. final def toEPK: EPK[E, P]

    This EOptionP as a pair of an entity and a property key.

    This EOptionP as a pair of an entity and a property key.

    Definition Classes
    EPSEOptionP
  32. final def toEPS: Option[EPS[E, P]]
    Definition Classes
    EPSEOptionP
  33. def toFinalELBP: FinalEP[E, P]

    Creates a FinalP object using the current lb if the lb is available.

    Creates a FinalP object using the current lb if the lb is available. If the lb is not available an exception is thrown.

    Definition Classes
    EPSEOptionP
    Note

    No check is done whether the property is actually final.

  34. def toFinalEUBP: FinalEP[E, P]

    Creates a FinalP object using the current ub if the ub is available.

    Creates a FinalP object using the current ub if the ub is available. If the ub is not available an exception is thrown.

    Definition Classes
    EPSEOptionP
    Note

    No check is done whether the property is actually final.

  35. def toString(): String
    Definition Classes
    InterimELUBP → AnyRef → Any
  36. val ub: P

    Returns the upper bound of the property if it is available – hasUBP has to be true – otherwise an UnsupportedOperationException is thrown.

    Returns the upper bound of the property if it is available – hasUBP has to be true – otherwise an UnsupportedOperationException is thrown.

    The upper bound always models the best/most precise result w.r.t. the underlying lattice. Here, "best" means that the set of potentially reachable states/instructions that the analyzed program can ever assume is potentially smaller when compared to a worse property.

    The upper bound models the sound and precise result under the assumption that the properties of all explicitly and implicitly relevant entities is as last queried or implicitly assumed. I.e., unless a dependee is updated the upper bound represents the correct and most precise result.

    The lower bound models the worst case property that a specific entity can have under the assumption that all other relevant properties will get their worst properties. This can – but does not have to be – the underlying lattice's bottom value. The lower bound is generally helpful for client analyses to determine final results quicker. For example, imagine the following code:

    def f(a : AnyRef) : Unit = a match {
      case a : List[_] => if (a.exists( _ == null)) throw  new IllegalArgumentException
      case _ => throw new UnknownError
    }
    def m(){
      try {
        f(List(1,2,3))
      } catch {
        case nfe:  NumberFormatException => ...
      }
    }

    In that case – assuming we do not perform context sensitive analyses – if the lower bound for f for the set of thrown exceptions is determined to be Set(IllegalArgumentException,UnkownError), then the catch of the NumberFormatException can be ruled out and a final result for m can be computed.

    Definition Classes
    InterimELUBPEOptionP
    Note

    If the property is final, lb (and ub) will return the final property p.

  37. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  39. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from InterimEP[E, P]

Inherited from EPS[E, P]

Inherited from EOptionP[E, P]

Inherited from AnyRef

Inherited from Any

Ungrouped