public class OptimizeVisitor extends Visitor
The optimizations are essential, not mere tweaks. Without
optimization, expressions such as false == null will be left in,
which are invalid to Janino (because it does not automatically box
primitives).
| Modifier and Type | Field and Description |
|---|---|
private static Method |
BOOLEAN_VALUEOF_BOOL |
static MemberExpression |
BOXED_FALSE_EXPR |
static MemberExpression |
BOXED_TRUE_EXPR |
static Statement |
EMPTY_STATEMENT |
static ConstantExpression |
FALSE_EXPR |
private static Set<Method> |
KNOWN_NON_NULL_METHODS |
private static Map<ExpressionType,ExpressionType> |
NOT_BINARY_COMPLEMENT |
static ConstantExpression |
TRUE_EXPR |
| Constructor and Description |
|---|
OptimizeVisitor() |
| Modifier and Type | Method and Description |
|---|---|
private static void |
addComplement(ExpressionType eq,
ExpressionType ne) |
private static Boolean |
always(Expression x)
Returns whether an expression always evaluates to true or false.
|
private static boolean |
eq(Expression a,
Expression b)
Treats two expressions equal even if they represent different null types
|
private boolean |
isConstantNull(Expression expression) |
protected boolean |
isKnownNotNull(Expression expression)
Returns whether an expression always returns a non-null result.
|
Expression |
visit(BinaryExpression binary,
Expression expression0,
Expression expression1) |
Statement |
visit(ConditionalStatement conditionalStatement,
List<Node> list) |
Expression |
visit(MethodCallExpression methodCallExpression,
Expression targetExpression,
List<Expression> expressions) |
Expression |
visit(TernaryExpression ternary,
Expression expression0,
Expression expression1,
Expression expression2) |
Expression |
visit(UnaryExpression unaryExpression,
Expression expression) |
private Expression |
visit0(BinaryExpression binary,
Expression expression0,
Expression expression1) |
preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitpublic static final ConstantExpression FALSE_EXPR
public static final ConstantExpression TRUE_EXPR
public static final MemberExpression BOXED_FALSE_EXPR
public static final MemberExpression BOXED_TRUE_EXPR
public static final Statement EMPTY_STATEMENT
private static final Map<ExpressionType,ExpressionType> NOT_BINARY_COMPLEMENT
private static final Method BOOLEAN_VALUEOF_BOOL
private static void addComplement(ExpressionType eq, ExpressionType ne)
public Expression visit(TernaryExpression ternary, Expression expression0, Expression expression1, Expression expression2)
public Expression visit(BinaryExpression binary, Expression expression0, Expression expression1)
private Expression visit0(BinaryExpression binary, Expression expression0, Expression expression1)
public Expression visit(UnaryExpression unaryExpression, Expression expression)
public Statement visit(ConditionalStatement conditionalStatement, List<Node> list)
public Expression visit(MethodCallExpression methodCallExpression, Expression targetExpression, List<Expression> expressions)
private boolean isConstantNull(Expression expression)
private static Boolean always(Expression x)
protected boolean isKnownNotNull(Expression expression)
expression - expression to testprivate static boolean eq(Expression a, Expression b)
Copyright © 2012–2016 The Apache Software Foundation. All rights reserved.