Packages

trait ValueInformation extends AnyRef

Encapsulates the available type information about a DomainValue.

Source
ValueInformation.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
IllegalValue, RETValue, ReferenceValue, ReturnAddressValue, ReturnAddressValues, TypedValue, Value, DefaultArrayValue, DefaultMObjectValue, DefaultSObjectValue, ADoubleValue, AFloatValue, ABooleanValue, AByteValue, ACharValue, AShortValue, AnIntegerValue, ALongValue, ArrayValue, MObjectValue, NullValue, ObjectValue, SObjectValue, DefaultArrayValue, DefaultMObjectValue, InitializedObjectValue, UninitializedObjectValue, DoubleValue, FloatValue, BooleanValue, ByteValue, CharValue, ComputationalTypeIntegerValue, IntegerValue, ShortValue, LongValue, ArrayValue, NullValue, ObjectValue, ReferenceValue, SReferenceValue, InitializedArrayValue, ClassValue, ConcreteArrayValue, DefaultClassValue, AnIntegerValue, IntegerRange, AnIntegerValue, BaseTypesBasedSet, ByteSet, CharSet, IntegerSet, ShortSet, U15BitSet, U7BitSet, AnIntegerValue, TheIntegerValue, ALongValue, LongSet, ALongValue, TheLongValue, DefaultMObjectValue, DefaultSObjectValue, DefaultStringValue, AnIntegerValue, IntegerLikeValue, IntegerRange, AnIntegerValue, BaseTypesBasedSet, ByteSet, CharSet, IntegerLikeValue, IntegerSet, ShortSet, U15BitSet, U7BitSet, AnIntegerValue, IntegerLikeValue, TheIntegerValue, ALongValue, LongSet, LongValue, ALongValue, LongValue, TheLongValue, ArrayValue, MObjectValue, MultipleReferenceValues, NonNullSingleOriginReferenceValue, NonNullSingleOriginSReferenceValue, NullValue, ObjectValue, ReferenceValue, SObjectValue, SingleOriginReferenceValue, StringBuilderValue, StringValue, ConstantDouble, ConstantFieldValue, ConstantFloat, ConstantInteger, ConstantLong, ConstantString, ABooleanValue, AByteValue, ACharValue, ADoubleValue, AFloatValue, ALongValue, AMultipleReferenceValue, AProperMObjectValue, AProperSObjectValue, AReturnAddressValue, ASArrayValue, ASArrayWithLengthValue, ASObjectValue, AShortValue, AnIntegerValue, BooleanValueFalse, BooleanValueTrue, IsBaseReferenceValue, IsBooleanValue, IsByteValue, IsCharValue, IsDoubleValue, IsFloatValue, IsIllegalValue, IsIllegalValue, IsIntegerLikeValue, IsIntegerValue, IsLongValue, IsMObjectValue, IsMultipleReferenceValue, IsNullValue, IsNullValue, IsPrimitiveValue, IsReferenceValue, IsReturnAddressValue, IsSArrayValue, IsSObjectValue, IsSReferenceValue, IsShortValue, KnownTypedValue, KnownValue, TheByteValue, TheCharValue, TheDoubleValue, TheFloatValue, TheIntegerValue, TheLongValue, TheShortValue, TheVoidValue
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ValueInformation
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def computationalType: ComputationalType

    The computational type of the value if this object represents a legal value.

    The computational type of the value if this object represents a legal value.

    The precise computational type is, e.g., needed to calculate the effect of generic stack manipulation instructions (e.g., DUP_... and SWAP) on the stack as well as to calculate the jump targets of RET instructions and to determine which values are actually copied by, e.g., the dup_XX instructions.

    Exceptions thrown

    IllegalStateException if this value is illegal or void.

    Note

    The computational type has to be precise/correct.

  2. abstract def hasCategory2ComputationalType: Boolean

    Returns true if and only if the value has the computational type 2; false in all other cases (including the case where this value is illegal!).

  3. abstract def isArrayValue: Answer

    Returns Yes if the value is _not null_ and the least upper type bound is an ArrayType; the value is Unknown if the least upper type bound is ArrayType but the value may be null; in all other cases No is returned; in particular if the value is known to be null.

    Returns Yes if the value is _not null_ and the least upper type bound is an ArrayType; the value is Unknown if the least upper type bound is ArrayType but the value may be null; in all other cases No is returned; in particular if the value is known to be null. No is also returned if the value's type is Object or Seriablizable or Cloneable.

  4. abstract def isIllegalValue: Boolean

    Returns true iff this value is not a legal value according to the JVM specification.

    Returns true iff this value is not a legal value according to the JVM specification. Such values cannot be used to perform any computations and will generally not occur in static analyses unless the analysis or the bytecode is buggy.

    Note

    An IsIllegalValue can always be distinguished from a void value.

  5. abstract def isPrimitiveValue: Boolean

    Returns true in case of a value with primitive type.

    Returns true in case of a value with primitive type.

    Exceptions thrown

    IllegalStateException if this value is illegal.

  6. abstract def isReferenceValue: Boolean

    Returns true if the value has a reference type.

    Returns true if the value has a reference type.

    Exceptions thrown

    IllegalStateException if this value is illegal.

  7. abstract def isVoid: Boolean

    Returns true if this value represents void.

  8. abstract def toCanonicalForm: ValueInformation

    Returns a ValueInformation object that just captures the basic information as defined by this value framework.

    Returns a ValueInformation object that just captures the basic information as defined by this value framework. The returned value information object will be independent of the underlying representation from which it was derived.

  9. abstract def verificationTypeInfo: VerificationTypeInfo

    The type of this value as used by the org.opalj.br.StackMapTable attribute.

    The type of this value as used by the org.opalj.br.StackMapTable attribute.

    Exceptions thrown

    IllegalStateException if this value represents void or a return address value.

Concrete 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. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def asPrimitiveValue: IsPrimitiveValue[_ <: BaseType]
  6. def asReferenceValue: IsReferenceValue
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @IntrinsicCandidate()
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  16. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  17. def toString(): String
    Definition Classes
    AnyRef → Any
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  20. 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 AnyRef

Inherited from Any

Ungrouped