Class SideEffectDetector
- java.lang.Object
-
- com.tonic.analysis.source.visitor.AbstractSourceVisitor<Boolean>
-
- com.tonic.analysis.source.ast.transform.SideEffectDetector
-
- All Implemented Interfaces:
SourceVisitor<Boolean>
public class SideEffectDetector extends AbstractSourceVisitor<Boolean>
Determines whether an expression (or any sub-expression) has side effects.
-
-
Field Summary
Fields Modifier and Type Field Description static SideEffectDetectorINSTANCE
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BooleanvisitArrayAccess(ArrayAccessExpr expr)Visits an array element access.BooleanvisitArrayInit(ArrayInitExpr expr)Visits a braced array initializer.BooleanvisitBinary(BinaryExpr expr)Visits a binary operation.BooleanvisitCast(CastExpr expr)Visits a cast.BooleanvisitClass(ClassExpr expr)Visits a class literal.BooleanvisitFieldAccess(FieldAccessExpr expr)Visits a field access.BooleanvisitInstanceOf(InstanceOfExpr expr)Visits aninstanceoftest.BooleanvisitLambda(LambdaExpr expr)Visits a lambda expression.BooleanvisitLiteral(LiteralExpr expr)Visits a literal.BooleanvisitMethodCall(MethodCallExpr expr)Visits a method call.BooleanvisitMethodRef(MethodRefExpr expr)Visits a method reference.BooleanvisitNew(NewExpr expr)Visits an object allocation.BooleanvisitNewArray(NewArrayExpr expr)Visits an array allocation.BooleanvisitSuper(SuperExpr expr)Visits asuperreference.BooleanvisitTernary(TernaryExpr expr)Visits a ternary conditional.BooleanvisitThis(ThisExpr expr)Visits athisreference.BooleanvisitUnary(UnaryExpr expr)Visits a unary operation.BooleanvisitVarRef(VarRefExpr expr)Visits a variable reference.-
Methods inherited from class com.tonic.analysis.source.visitor.AbstractSourceVisitor
visitArrayType, visitBlock, visitBreak, visitContinue, visitDoWhile, visitDynamicConstant, visitExprStmt, visitFor, visitForEach, visitIf, visitInvokeDynamic, visitIRRegion, visitLabeled, visitPrimitiveType, visitReferenceType, visitReturn, visitSwitch, visitSynchronized, visitThrow, visitTryCatch, visitVarDecl, visitVoidType, visitWhile
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.tonic.analysis.source.visitor.SourceVisitor
visitAnnotationExpr, visitClassDecl, visitCompilationUnit, visitConstructorDecl, visitEnumConstantDecl, visitEnumDecl, visitFieldDecl, visitImportDecl, visitInterfaceDecl, visitMethodDecl, visitParameterDecl, visitSwitchExpr
-
-
-
-
Field Detail
-
INSTANCE
public static final SideEffectDetector INSTANCE
-
-
Method Detail
-
visitLiteral
public Boolean visitLiteral(LiteralExpr expr)
Description copied from interface:SourceVisitorVisits a literal.- Specified by:
visitLiteralin interfaceSourceVisitor<Boolean>- Overrides:
visitLiteralin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitVarRef
public Boolean visitVarRef(VarRefExpr expr)
Description copied from interface:SourceVisitorVisits a variable reference.- Specified by:
visitVarRefin interfaceSourceVisitor<Boolean>- Overrides:
visitVarRefin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitThis
public Boolean visitThis(ThisExpr expr)
Description copied from interface:SourceVisitorVisits athisreference.- Specified by:
visitThisin interfaceSourceVisitor<Boolean>- Overrides:
visitThisin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitSuper
public Boolean visitSuper(SuperExpr expr)
Description copied from interface:SourceVisitorVisits asuperreference.- Specified by:
visitSuperin interfaceSourceVisitor<Boolean>- Overrides:
visitSuperin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitClass
public Boolean visitClass(ClassExpr expr)
Description copied from interface:SourceVisitorVisits a class literal.- Specified by:
visitClassin interfaceSourceVisitor<Boolean>- Overrides:
visitClassin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitLambda
public Boolean visitLambda(LambdaExpr expr)
Description copied from interface:SourceVisitorVisits a lambda expression.- Specified by:
visitLambdain interfaceSourceVisitor<Boolean>- Overrides:
visitLambdain classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitMethodRef
public Boolean visitMethodRef(MethodRefExpr expr)
Description copied from interface:SourceVisitorVisits a method reference.- Specified by:
visitMethodRefin interfaceSourceVisitor<Boolean>- Overrides:
visitMethodRefin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitBinary
public Boolean visitBinary(BinaryExpr expr)
Description copied from interface:SourceVisitorVisits a binary operation.- Specified by:
visitBinaryin interfaceSourceVisitor<Boolean>- Overrides:
visitBinaryin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitUnary
public Boolean visitUnary(UnaryExpr expr)
Description copied from interface:SourceVisitorVisits a unary operation.- Specified by:
visitUnaryin interfaceSourceVisitor<Boolean>- Overrides:
visitUnaryin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitTernary
public Boolean visitTernary(TernaryExpr expr)
Description copied from interface:SourceVisitorVisits a ternary conditional.- Specified by:
visitTernaryin interfaceSourceVisitor<Boolean>- Overrides:
visitTernaryin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitCast
public Boolean visitCast(CastExpr expr)
Description copied from interface:SourceVisitorVisits a cast.- Specified by:
visitCastin interfaceSourceVisitor<Boolean>- Overrides:
visitCastin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitInstanceOf
public Boolean visitInstanceOf(InstanceOfExpr expr)
Description copied from interface:SourceVisitorVisits aninstanceoftest.- Specified by:
visitInstanceOfin interfaceSourceVisitor<Boolean>- Overrides:
visitInstanceOfin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitMethodCall
public Boolean visitMethodCall(MethodCallExpr expr)
Description copied from interface:SourceVisitorVisits a method call.- Specified by:
visitMethodCallin interfaceSourceVisitor<Boolean>- Overrides:
visitMethodCallin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitNew
public Boolean visitNew(NewExpr expr)
Description copied from interface:SourceVisitorVisits an object allocation.- Specified by:
visitNewin interfaceSourceVisitor<Boolean>- Overrides:
visitNewin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitNewArray
public Boolean visitNewArray(NewArrayExpr expr)
Description copied from interface:SourceVisitorVisits an array allocation.- Specified by:
visitNewArrayin interfaceSourceVisitor<Boolean>- Overrides:
visitNewArrayin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitFieldAccess
public Boolean visitFieldAccess(FieldAccessExpr expr)
Description copied from interface:SourceVisitorVisits a field access.- Specified by:
visitFieldAccessin interfaceSourceVisitor<Boolean>- Overrides:
visitFieldAccessin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitArrayAccess
public Boolean visitArrayAccess(ArrayAccessExpr expr)
Description copied from interface:SourceVisitorVisits an array element access.- Specified by:
visitArrayAccessin interfaceSourceVisitor<Boolean>- Overrides:
visitArrayAccessin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
visitArrayInit
public Boolean visitArrayInit(ArrayInitExpr expr)
Description copied from interface:SourceVisitorVisits a braced array initializer.- Specified by:
visitArrayInitin interfaceSourceVisitor<Boolean>- Overrides:
visitArrayInitin classAbstractSourceVisitor<Boolean>- Parameters:
expr- the expression node- Returns:
- the visitor's result
-
-