aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
diff options
context:
space:
mode:
authorGravatar brandjon <brandjon@google.com>2017-07-11 19:56:45 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-07-12 08:49:19 +0200
commit990622b2d6d2a72947ccf6ad18de7aabac49ebe8 (patch)
treeea8386f4b3f1fc598a5b0b07c69daab1ac982fff /src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
parent8cbf0f16869f92f567f50be6508bf46dbd501d0a (diff)
Misc cleanups of AST node API
- changed field names and a couple accessors to consistently use full words ("statement" instead of "stmt") - applied several local analyzers (from IntelliJ) to remove redundant modifiers, unnecessary explicit types (yay Java 8), etc. RELNOTES: None PiperOrigin-RevId: 161551096
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java83
1 files changed, 41 insertions, 42 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
index 3ab4e4d71a..ab68d65b9e 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
@@ -186,24 +186,24 @@ public final class FuncallExpression extends Expression {
}
}
- @Nullable private final Expression obj;
+ @Nullable private final Expression object;
- private final Identifier func;
+ private final Identifier function;
- private final List<Argument.Passed> args;
+ private final List<Argument.Passed> arguments;
private final int numPositionalArgs;
- public FuncallExpression(@Nullable Expression obj, Identifier func,
- List<Argument.Passed> args) {
- this.obj = obj;
- this.func = func;
- this.args = args; // we assume the parser validated it with Argument#validateFuncallArguments()
+ public FuncallExpression(@Nullable Expression object, Identifier function,
+ List<Argument.Passed> arguments) {
+ this.object = object;
+ this.function = function;
+ this.arguments = arguments;
this.numPositionalArgs = countPositionalArguments();
}
- public FuncallExpression(Identifier func, List<Argument.Passed> args) {
- this(null, func, args);
+ public FuncallExpression(Identifier function, List<Argument.Passed> arguments) {
+ this(null, function, arguments);
}
/**
@@ -211,7 +211,7 @@ public final class FuncallExpression extends Expression {
*/
private int countPositionalArguments() {
int num = 0;
- for (Argument.Passed arg : args) {
+ for (Argument.Passed arg : arguments) {
if (arg.isPositional()) {
num++;
}
@@ -223,15 +223,16 @@ public final class FuncallExpression extends Expression {
* Returns the function expression.
*/
public Identifier getFunction() {
- return func;
+ return function;
}
/**
* Returns the object the function called on.
* It's null if the function is not called on an object.
*/
+ @Nullable
public Expression getObject() {
- return obj;
+ return object;
}
/**
@@ -240,7 +241,7 @@ public final class FuncallExpression extends Expression {
* getNumPositionalArguments().
*/
public List<Argument.Passed> getArguments() {
- return Collections.unmodifiableList(args);
+ return Collections.unmodifiableList(arguments);
}
/**
@@ -253,14 +254,14 @@ public final class FuncallExpression extends Expression {
@Override
public void prettyPrint(Appendable buffer) throws IOException {
- if (obj != null) {
- obj.prettyPrint(buffer);
+ if (object != null) {
+ object.prettyPrint(buffer);
buffer.append('.');
}
- func.prettyPrint(buffer);
+ function.prettyPrint(buffer);
buffer.append('(');
String sep = "";
- for (Argument.Passed arg : args) {
+ for (Argument.Passed arg : arguments) {
buffer.append(sep);
arg.prettyPrint(buffer);
sep = ", ";
@@ -271,11 +272,11 @@ public final class FuncallExpression extends Expression {
@Override
public String toString() {
Printer.LengthLimitedPrinter printer = new Printer.LengthLimitedPrinter();
- if (obj != null) {
- printer.append(obj.toString()).append(".");
+ if (object != null) {
+ printer.append(object.toString()).append(".");
}
- printer.append(func.toString());
- printer.printAbbreviatedList(args, "(", ", ", ")", null,
+ printer.append(function.toString());
+ printer.printAbbreviatedList(arguments, "(", ", ", ")", null,
Printer.SUGGESTED_CRITICAL_LIST_ELEMENTS_COUNT,
Printer.SUGGESTED_CRITICAL_LIST_ELEMENTS_STRING_LENGTH);
return printer.toString();
@@ -374,9 +375,7 @@ public final class FuncallExpression extends Expression {
argumentListConversionResult = convertArgumentList(args, kwargs, method);
if (argumentListConversionResult.getArguments() != null) {
if (matchingMethod == null) {
- matchingMethod =
- new Pair<MethodDescriptor, List<Object>>(
- method, argumentListConversionResult.getArguments());
+ matchingMethod = new Pair<>(method, argumentListConversionResult.getArguments());
} else {
throw new EvalException(
getLocation(),
@@ -516,7 +515,7 @@ public final class FuncallExpression extends Expression {
private String formatMethod(List<Object> args, Map<String, Object> kwargs) {
StringBuilder sb = new StringBuilder();
- sb.append(func.getName()).append("(");
+ sb.append(function.getName()).append("(");
boolean first = true;
for (Object obj : args) {
if (!first) {
@@ -643,7 +642,7 @@ public final class FuncallExpression extends Expression {
positionalArgs = positionals;
}
return function.call(
- positionalArgs, ImmutableMap.<String, Object>copyOf(keyWordArgs), call, env);
+ positionalArgs, ImmutableMap.copyOf(keyWordArgs), call, env);
} else if (fieldValue != null) {
if (!(fieldValue instanceof BaseFunction)) {
throw new EvalException(
@@ -651,10 +650,10 @@ public final class FuncallExpression extends Expression {
}
function = (BaseFunction) fieldValue;
return function.call(
- positionalArgs, ImmutableMap.<String, Object>copyOf(keyWordArgs), call, env);
+ positionalArgs, ImmutableMap.copyOf(keyWordArgs), call, env);
} else {
// When calling a Java method, the name is not in the Environment,
- // so evaluating 'func' would fail.
+ // so evaluating 'function' would fail.
Class<?> objClass;
Object obj;
if (value instanceof Class<?>) {
@@ -697,7 +696,7 @@ public final class FuncallExpression extends Expression {
// or star arguments, because the argument list was already validated by
// Argument#validateFuncallArguments, as called by the Parser,
// which should be the only place that build FuncallExpression-s.
- for (Argument.Passed arg : args) {
+ for (Argument.Passed arg : arguments) {
Object value = arg.getValue().eval(env);
if (arg.isPositional()) {
posargs.add(value);
@@ -714,7 +713,7 @@ public final class FuncallExpression extends Expression {
addKeywordArg(kwargs, arg.getName(), value, duplicates);
}
}
- checkDuplicates(duplicates, func.getName(), getLocation());
+ checkDuplicates(duplicates, function.getName(), getLocation());
}
@VisibleForTesting
@@ -725,14 +724,14 @@ public final class FuncallExpression extends Expression {
@Override
Object doEval(Environment env) throws EvalException, InterruptedException {
- return (obj != null) ? invokeObjectMethod(env) : invokeGlobalFunction(env);
+ return (object != null) ? invokeObjectMethod(env) : invokeGlobalFunction(env);
}
/**
- * Invokes obj.func() and returns the result.
+ * Invokes object.function() and returns the result.
*/
private Object invokeObjectMethod(Environment env) throws EvalException, InterruptedException {
- Object objValue = obj.eval(env);
+ Object objValue = object.eval(env);
ImmutableList.Builder<Object> posargs = new ImmutableList.Builder<>();
posargs.add(objValue);
// We copy this into an ImmutableMap in the end, but we can't use an ImmutableMap.Builder, or
@@ -740,14 +739,14 @@ public final class FuncallExpression extends Expression {
Map<String, Object> kwargs = new LinkedHashMap<>();
evalArguments(posargs, kwargs, env);
return invokeObjectMethod(
- func.getName(), posargs.build(), ImmutableMap.<String, Object>copyOf(kwargs), this, env);
+ function.getName(), posargs.build(), ImmutableMap.copyOf(kwargs), this, env);
}
/**
- * Invokes func() and returns the result.
+ * Invokes function() and returns the result.
*/
private Object invokeGlobalFunction(Environment env) throws EvalException, InterruptedException {
- Object funcValue = func.eval(env);
+ Object funcValue = function.eval(env);
return callFunction(funcValue, env);
}
@@ -771,7 +770,7 @@ public final class FuncallExpression extends Expression {
*/
@Nullable
public String getNameArg() {
- for (Argument.Passed arg : args) {
+ for (Argument.Passed arg : arguments) {
if (arg != null) {
String name = arg.getName();
if (name != null && name.equals("name")) {
@@ -790,12 +789,12 @@ public final class FuncallExpression extends Expression {
@Override
void validate(ValidationEnvironment env) throws EvalException {
- if (obj != null) {
- obj.validate(env);
+ if (object != null) {
+ object.validate(env);
} else {
- func.validate(env);
+ function.validate(env);
}
- for (Argument.Passed arg : args) {
+ for (Argument.Passed arg : arguments) {
arg.getValue().validate(env);
}
}