trait Origin extends AnyRef
Provides information about the origin (that is, def-site) of a value iff the underlying domain provides the respective information; that is, this trait only defines the public API it does not provide origin information on its own.
However, a domain that provides origin information has to do so for ALL values of the respective computational type category and the information has to be complete.
Usage
To get origin information this trait needs be implemented by a domain. I.e., just mixing in this trait will not provide origin information about values.
Implementation
This trait should be inherited from by all domains that make information about the origin of a value available (see org.opalj.ai.domain.l1.ReferenceValues as an example); the respective domains have to override providesOriginInformationFor
- Self Type
- Origin with ValuesDomain
- Source
- Origin.scala
- Note
A org.opalj.br.instructions.CHECKCAST must not modify
origin
information; i.e., the origin of the value on the stack before and after the checkast (unless we have an exception) must be the same!
- Alphabetic
- By Inheritance
- Origin
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def foreachOrigin(value: (Origin.this)#DomainValue, f: (ValueOrigin) => Unit): Unit
Iterates over the origin(s) of the given value if the information is available.
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def origins(value: (Origin.this)#DomainValue): ValueOrigins
Returns the origin(s) of the given value if the information is available.
- def originsIterator(value: (Origin.this)#DomainValue): ValueOriginsIterator
Returns the origin(s) of the given value if the information is available.
Returns the origin(s) of the given value if the information is available.
- returns
The source(s) of the given value if the information is available. Whether the information is available depends on the concrete domains. This trait only defines a general contract how to get access to a value's origin (I.e., the origin of the instruction which created the respective value.) By default this method returns an empty
Iterable
.
- def providesOriginInformationFor(ctc: ComputationalType): Boolean
Implementers are expected to "override" this method and to call
super.providesOriginInformationFor
to make it possible to stack several domain implementations which provide origin information. - final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- implicit object SingleOriginValueOrdering extends Ordering[SingleOriginValue]
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated