|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--harpoon.IR.Quads.Quad | +--harpoon.IR.Quads.INSTANCEOF
INSTANCEOF
objects represent an 'instanceof' evaluation.
INSTANCEOF
assigns a boolean value to a temporary after
evaluating whether a certain temporary is an instance of a given
class type.
In quad-with-try form ONLY:
The src
Temp
may have the value
null
, in which case INSTANCEOF
evaluates to
false
.
In all other forms the src
Temp
should always contain a provably non-null value at runtime.
(An explicit null-check may need to be added prior to the
INSTANCEOF
if the value cannot be proven non-null.)
Field Summary | |
protected Temp |
dst
The Temp in which to store the result of the test. |
protected HClass |
hclass
The class in which src is tested for membership. |
protected Temp |
src
The Temp to evaluate. |
Fields inherited from class harpoon.IR.Quads.Quad |
arrayFactory |
Constructor Summary | |
INSTANCEOF(QuadFactory qf,
HCodeElement source,
Temp dst,
Temp src,
HClass hclass)
Creates a INSTANCEOF representing a type check. |
Method Summary | |
void |
accept(QuadVisitor v)
Accept a visitor. |
Temp[] |
def()
Returns the Temp s defined by this quad. |
Temp |
dst()
Returns the Temp in which to store the result of the
instanceof test. |
HClass |
hclass()
Returns the class in which src is tested for
membership. |
int |
kind()
Return an integer enumeration of the kind of this Quad . |
Quad |
rename(QuadFactory qqf,
TempMap defMap,
TempMap useMap)
Create a new Quad identical to the receiver, but
with all Temp s renamed according to a mapping. |
Temp |
src()
Returns the Temp to test. |
String |
toString()
Returns a human-readable representation of this Quad. |
Temp[] |
use()
Returns the Temp s used by this quad. |
Methods inherited from class harpoon.IR.Quads.Quad |
addEdge, addEdges, addHandlers, clone, clone, clone, compareTo, defC, edgeC, edges, getFactory, getID, getLineNumber, getSourceFile, handlers, hashCode, map, map, map, next, next, nextEdge, nextEdge, nextLength, pred, predC, prev, prev, prevEdge, prevEdge, prevLength, remove, removeHandlers, rename, replace, succ, succC, transferHandlers, useC |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
protected Temp dst
Temp
in which to store the result of the test.
protected Temp src
Temp
to evaluate.
protected final HClass hclass
src
is tested for membership.
Constructor Detail |
public INSTANCEOF(QuadFactory qf, HCodeElement source, Temp dst, Temp src, HClass hclass)
INSTANCEOF
representing a type check.
dst
- the Temp
in which to store the result of the test.src
- the Temp
to test.hclass
- the class in which src
is tested for membership.Method Detail |
public Temp dst()
Temp
in which to store the result of the
instanceof
test.
public Temp src()
Temp
to test.
public HClass hclass()
src
is tested for
membership.
public Temp[] use()
Temp
s used by this quad.
use
in interface UseDefable
use
in class Quad
public Temp[] def()
Temp
s defined by this quad.
def
in interface UseDefable
def
in class Quad
public int kind()
Quad
Quad
. The enumerated values are defined in
QuadKind
.
kind
in class Quad
public Quad rename(QuadFactory qqf, TempMap defMap, TempMap useMap)
Quad
Quad
identical to the receiver, but
with all Temp
s renamed according to a mapping.
The new Quad
will have no edges.
The new Quad
will come from the specified
QuadFactory
.
rename
in class Quad
public void accept(QuadVisitor v)
Quad
accept
in class Quad
public String toString()
toString
in class Quad
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |