diff options
author | Taras Tsugrii <ttsugrii@fb.com> | 2018-07-31 11:51:21 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-31 11:52:31 -0700 |
commit | 58f80df1378e4f8687ca6690001577f075de2038 (patch) | |
tree | 746ec0359b0019ddee94ffc7014b7e336fb3b1b7 /src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java | |
parent | 4b8d0ae907749440edb8f5f899e570d58e4d963b (diff) |
[Skylark] Cache isParamNamed computation.
When `isLegacyNamed` is `true`, `named` is considered to be `true` as well,
so instead of going through an extra indirection and computation, just use
`named` field to store combined result.
Closes #5701.
PiperOrigin-RevId: 206800781
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.java | 8 |
1 files changed, 2 insertions, 6 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 48c52f5791..e8df5abc0c 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 @@ -514,10 +514,6 @@ public final class FuncallExpression extends Expression { return matchingMethod; } - private static boolean isParamNamed(ParamDescriptor param) { - return param.isNamed() || param.isLegacyNamed(); - } - /** * Returns the extra interpreter arguments for the given {@link SkylarkCallable}, to be added at * the end of the argument list for the callable. @@ -581,13 +577,13 @@ public final class FuncallExpression extends Expression { "expected value of type '%s' for parameter '%s'", type.toString(), param.getName())); } - if (isParamNamed(param) && keys.contains(param.getName())) { + if (param.isNamed() && keys.contains(param.getName())) { return ArgumentListConversionResult.fromError( String.format("got multiple values for keyword argument '%s'", param.getName())); } argIndex++; } else { // No more positional arguments, or no more positional parameters. - if (isParamNamed(param) && keys.remove(param.getName())) { + if (param.isNamed() && keys.remove(param.getName())) { // Param specified by keyword argument. value = kwargs.get(param.getName()); if (!type.contains(value)) { |