diff options
author | cparsons <cparsons@google.com> | 2018-07-13 11:47:17 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-13 11:48:44 -0700 |
commit | 23aab171d93d7a6a0945b64fecf3e2094626e1fc (patch) | |
tree | 71225019cc278c8faed35dd86d8b4b959b294b55 /src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java | |
parent | 32e9fee4e2192a340d0b1823538bf8e9fdf92b65 (diff) |
Remove SkylarkCallable.mandatoryPositionals
RELNOTES: None.
PiperOrigin-RevId: 204505003
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 | 40 |
1 files changed, 1 insertions, 39 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 877b087ea6..6bd4c9e2e8 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 @@ -614,48 +614,10 @@ public final class FuncallExpression extends Expression { ImmutableMap.Builder<String, Object> extraKwargsBuilder = ImmutableMap.builder(); boolean acceptsExtraArgs = !callable.extraPositionals().name().isEmpty(); boolean acceptsExtraKwargs = !callable.extraKeywords().name().isEmpty(); - Class<?>[] javaMethodSignatureParams = method.getMethod().getParameterTypes(); - int numExtraInterpreterParams = 0; - numExtraInterpreterParams += acceptsExtraArgs ? 1 : 0; - numExtraInterpreterParams += acceptsExtraKwargs ? 1 : 0; - numExtraInterpreterParams += callable.useLocation() ? 1 : 0; - numExtraInterpreterParams += callable.useAst() ? 1 : 0; - numExtraInterpreterParams += callable.useEnvironment() ? 1 : 0; - numExtraInterpreterParams += callable.useSkylarkSemantics() ? 1 : 0; - - int mandatoryPositionals = callable.mandatoryPositionals(); - if (mandatoryPositionals < 0) { - if (callable.parameters().length > 0) { - mandatoryPositionals = 0; - } else { - mandatoryPositionals = javaMethodSignatureParams.length - numExtraInterpreterParams; - } - } - if (mandatoryPositionals > args.size()) { - return ArgumentListConversionResult.fromError("too few arguments"); - } - // First process the legacy positional parameters. int argIndex = 0; - if (mandatoryPositionals > 0) { - for (Class<?> param : javaMethodSignatureParams) { - Object value = args.get(argIndex); - if (!param.isAssignableFrom(value.getClass())) { - return ArgumentListConversionResult.fromError( - String.format( - "Cannot convert parameter at position %d from type %s to type %s", - argIndex, EvalUtils.getDataTypeName(value), param.toString())); - } - builder.add(value); - argIndex++; - if (argIndex >= mandatoryPositionals) { - // Stops for specified parameters instead. - break; - } - } - } - // Then process parameters specified in callable.parameters() + // Process parameters specified in callable.parameters() Set<String> keys = new LinkedHashSet<>(kwargs.keySet()); // Positional parameters are always enumerated before non-positional parameters, // And default-valued positional parameters are always enumerated after other positional |