public class SideEffectChecker extends TreeVisitor
SideEffectChecker is a TreeVisitor. The way it works is that after a SideEffectChecker is reset, an expression tree Node is visited to determine whether or not it has side effects. Neat.
| Modifier and Type | Field and Description |
|---|---|
static int |
ALIAS |
static int |
ALLOC |
static int |
CALL |
static int |
RC |
static int |
STACK |
static int |
STORE |
static int |
SYNC |
static int |
THROW |
static int |
UC |
static int |
VOLATILE |
FORWARD, REVERSE| Constructor and Description |
|---|
SideEffectChecker(EditorContext context)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
hasSideEffects() |
void |
reset() |
int |
sideEffects() |
void |
visitArithExpr(ArithExpr expr) |
void |
visitArrayLengthExpr(ArrayLengthExpr expr) |
void |
visitArrayRefExpr(ArrayRefExpr expr) |
void |
visitCallMethodExpr(CallMethodExpr expr) |
void |
visitCallStaticExpr(CallStaticExpr expr) |
void |
visitCastExpr(CastExpr expr) |
void |
visitCatchExpr(CatchExpr expr) |
void |
visitFieldExpr(FieldExpr expr) |
void |
visitLocalExpr(LocalExpr expr) |
void |
visitMonitorStmt(MonitorStmt stmt) |
void |
visitNewArrayExpr(NewArrayExpr expr) |
void |
visitNewExpr(NewExpr expr) |
void |
visitNewMultiArrayExpr(NewMultiArrayExpr expr) |
void |
visitRCExpr(RCExpr expr) |
void |
visitStackExpr(StackExpr expr) |
void |
visitStackManipStmt(StackManipStmt stmt) |
void |
visitStaticFieldExpr(StaticFieldExpr expr) |
void |
visitStoreExpr(StoreExpr expr) |
void |
visitUCExpr(UCExpr expr) |
void |
visitZeroCheckExpr(ZeroCheckExpr expr) |
direction, forward, prune, reverse, setPrune, visitAddressStoreStmt, visitBlock, visitCallExpr, visitCheckExpr, visitConstantExpr, visitDefExpr, visitExpr, visitExprStmt, visitFlowGraph, visitGotoStmt, visitIfCmpStmt, visitIfStmt, visitIfZeroStmt, visitInitStmt, visitInstanceOfExpr, visitJsrStmt, visitLabelStmt, visitMemExpr, visitMemRefExpr, visitNegExpr, visitNode, visitPhiCatchStmt, visitPhiJoinStmt, visitPhiStmt, visitRetStmt, visitReturnAddressExpr, visitReturnExprStmt, visitReturnStmt, visitSCStmt, visitShiftExpr, visitSRStmt, visitStmt, visitSwitchStmt, visitThrowStmt, visitTree, visitVarExprpublic static final int STACK
public static final int THROW
public static final int CALL
public static final int SYNC
public static final int ALLOC
public static final int RC
public static final int UC
public static final int STORE
public static final int ALIAS
public static final int VOLATILE
public SideEffectChecker(EditorContext context)
public int sideEffects()
public boolean hasSideEffects()
public void reset()
public void visitStoreExpr(StoreExpr expr)
visitStoreExpr in class TreeVisitorpublic void visitLocalExpr(LocalExpr expr)
visitLocalExpr in class TreeVisitorpublic void visitZeroCheckExpr(ZeroCheckExpr expr)
visitZeroCheckExpr in class TreeVisitorpublic void visitRCExpr(RCExpr expr)
visitRCExpr in class TreeVisitorpublic void visitUCExpr(UCExpr expr)
visitUCExpr in class TreeVisitorpublic void visitNewMultiArrayExpr(NewMultiArrayExpr expr)
visitNewMultiArrayExpr in class TreeVisitorpublic void visitNewArrayExpr(NewArrayExpr expr)
visitNewArrayExpr in class TreeVisitorpublic void visitCatchExpr(CatchExpr expr)
visitCatchExpr in class TreeVisitorpublic void visitNewExpr(NewExpr expr)
visitNewExpr in class TreeVisitorpublic void visitStackExpr(StackExpr expr)
visitStackExpr in class TreeVisitorpublic void visitCastExpr(CastExpr expr)
visitCastExpr in class TreeVisitorpublic void visitArithExpr(ArithExpr expr)
visitArithExpr in class TreeVisitorpublic void visitArrayLengthExpr(ArrayLengthExpr expr)
visitArrayLengthExpr in class TreeVisitorpublic void visitArrayRefExpr(ArrayRefExpr expr)
visitArrayRefExpr in class TreeVisitorpublic void visitFieldExpr(FieldExpr expr)
visitFieldExpr in class TreeVisitorpublic void visitStaticFieldExpr(StaticFieldExpr expr)
visitStaticFieldExpr in class TreeVisitorpublic void visitCallStaticExpr(CallStaticExpr expr)
visitCallStaticExpr in class TreeVisitorpublic void visitCallMethodExpr(CallMethodExpr expr)
visitCallMethodExpr in class TreeVisitorpublic void visitMonitorStmt(MonitorStmt stmt)
visitMonitorStmt in class TreeVisitorpublic void visitStackManipStmt(StackManipStmt stmt)
visitStackManipStmt in class TreeVisitor