This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git
The following commit(s) were added to refs/heads/master by this push:
new e76e0ca Raise embedded if into parent if.
e76e0ca is described below
commit e76e0ca09e495b9ae707ae29e9e43bde83f547c8
Author: Gary Gregory <[email protected]>
AuthorDate: Sun Feb 28 12:43:17 2021 -0500
Raise embedded if into parent if.
---
.../apache/commons/jexl3/internal/Interpreter.java | 12 ++++-----
.../commons/jexl3/internal/InterpreterBase.java | 30 ++++++++++------------
.../commons/jexl3/internal/TemplateScript.java | 26 +++++++++----------
.../jexl3/internal/introspection/MethodKey.java | 8 +++---
4 files changed, 33 insertions(+), 43 deletions(-)
diff --git a/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java
b/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java
index f8e9410..40060f3 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java
@@ -517,13 +517,11 @@ public class Interpreter extends InterpreterBase {
}
Object number = arithmetic.negate(val);
// attempt to recoerce to literal class
- if ((number instanceof Number)) {
- // cache if number literal and negate is idempotent
- if (valNode instanceof ASTNumberLiteral) {
- number = arithmetic.narrowNumber((Number) number,
((ASTNumberLiteral) valNode).getLiteralClass());
- if (arithmetic.isNegateStable()) {
- node.jjtSetValue(number);
- }
+ // cache if number literal and negate is idempotent
+ if (number instanceof Number && valNode instanceof
ASTNumberLiteral) {
+ number = arithmetic.narrowNumber((Number) number,
((ASTNumberLiteral) valNode).getLiteralClass());
+ if (arithmetic.isNegateStable()) {
+ node.jjtSetValue(number);
}
}
return number;
diff --git
a/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java
b/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java
index 85f3145..71efbf8 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java
@@ -223,17 +223,15 @@ public abstract class InterpreterBase extends
ParserVisitor {
}
}
// try again; use a class, namespace of static methods
- if (functor == null) {
- // try to find a class with that name
- if (namespace instanceof String) {
- try {
- namespace =
uberspect.getClassLoader().loadClass((String) namespace);
- } catch (final ClassNotFoundException xignore)
{
- // not a class
- namespace = null;
- }
- } // we know its a class
- }
+ // try to find a class with that name
+ if (functor == null && namespace instanceof String) {
+ try {
+ namespace =
uberspect.getClassLoader().loadClass((String) namespace);
+ } catch (final ClassNotFoundException xignore) {
+ // not a class
+ namespace = null;
+ }
+ } // we know its a class
}
}
}
@@ -305,12 +303,10 @@ public abstract class InterpreterBase extends
ParserVisitor {
if (options.isLexicalShade() && identifier.isShaded()) {
return undefinedVariable(identifier, identifier.getName());
}
- if (symbol >= 0) {
- if (frame.has(symbol)) {
- final Object value = frame.get(symbol);
- if (value != Scope.UNDEFINED) {
- return value;
- }
+ if ((symbol >= 0) && frame.has(symbol)) {
+ final Object value = frame.get(symbol);
+ if (value != Scope.UNDEFINED) {
+ return value;
}
}
final String name = identifier.getName();
diff --git
a/src/main/java/org/apache/commons/jexl3/internal/TemplateScript.java
b/src/main/java/org/apache/commons/jexl3/internal/TemplateScript.java
index 0f0a2a4..337f7de 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/TemplateScript.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/TemplateScript.java
@@ -197,20 +197,18 @@ public final class TemplateScript implements
JxltEngine.Template {
*/
private static void collectPrintScope(final JexlNode node, final
Map<Integer, JexlNode.Info> minfo) {
final int nc = node.jjtGetNumChildren();
- if (node instanceof ASTFunctionNode) {
- if (nc == 2) {
- // 0 must be the prefix jexl:
- final ASTIdentifier nameNode = (ASTIdentifier)
node.jjtGetChild(0);
- if ("print".equals(nameNode.getName()) &&
"jexl".equals(nameNode.getNamespace())) {
- final ASTArguments argNode = (ASTArguments)
node.jjtGetChild(1);
- if (argNode.jjtGetNumChildren() == 1) {
- // seek the epression number
- final JexlNode arg0 = argNode.jjtGetChild(0);
- if (arg0 instanceof ASTNumberLiteral) {
- final int exprNumber = ((ASTNumberLiteral)
arg0).getLiteral().intValue();
- minfo.put(exprNumber, new JexlNode.Info(nameNode));
- return;
- }
+ if (node instanceof ASTFunctionNode && nc == 2) {
+ // 0 must be the prefix jexl:
+ final ASTIdentifier nameNode = (ASTIdentifier) node.jjtGetChild(0);
+ if ("print".equals(nameNode.getName()) &&
"jexl".equals(nameNode.getNamespace())) {
+ final ASTArguments argNode = (ASTArguments)
node.jjtGetChild(1);
+ if (argNode.jjtGetNumChildren() == 1) {
+ // seek the epression number
+ final JexlNode arg0 = argNode.jjtGetChild(0);
+ if (arg0 instanceof ASTNumberLiteral) {
+ final int exprNumber = ((ASTNumberLiteral)
arg0).getLiteral().intValue();
+ minfo.put(exprNumber, new JexlNode.Info(nameNode));
+ return;
}
}
}
diff --git
a/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodKey.java
b/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodKey.java
index fe8aca4..709d97a 100644
---
a/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodKey.java
+++
b/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodKey.java
@@ -575,11 +575,9 @@ public final class MethodKey {
for (final T app : applicables) {
final Class<?>[] parmClasses = getParameterTypes(app);
final Class<?> parmClass = parmClasses[c];
- if (Object.class.equals(parmClass)) {
- if (objectParmCount++ == 2) {
- severe = true;
- break;
- }
+ if (Object.class.equals(parmClass) &&
(objectParmCount++ == 2)) {
+ severe = true;
+ break;
}
}
} else {