aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-07-13 11:47:17 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-13 11:48:44 -0700
commit23aab171d93d7a6a0945b64fecf3e2094626e1fc (patch)
tree71225019cc278c8faed35dd86d8b4b959b294b55 /src/main/java/com/google/devtools/build/lib/syntax
parent32e9fee4e2192a340d0b1823538bf8e9fdf92b65 (diff)
Remove SkylarkCallable.mandatoryPositionals
RELNOTES: None. PiperOrigin-RevId: 204505003
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java40
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java16
2 files changed, 1 insertions, 55 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
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java
index f5311328f4..6cdb889105 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.syntax;
import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
import com.google.common.primitives.Booleans;
import com.google.devtools.build.lib.skylarkinterface.Param;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
@@ -57,22 +56,10 @@ public class SkylarkSignatureProcessor {
if (annotation.doc().isEmpty() && documented) {
throw new RuntimeException(String.format("function %s is undocumented", name));
}
- ImmutableList.Builder<Parameter<Object, SkylarkType>> parameters = ImmutableList.builder();
-
- Class<?>[] javaMethodSignatureParams = descriptor.getMethod().getParameterTypes();
-
- for (int paramIndex = 0; paramIndex < annotation.mandatoryPositionals(); paramIndex++) {
- Parameter<Object, SkylarkType> parameter =
- new Parameter.Mandatory<Object, SkylarkType>(
- Identifier.of("arg" + paramIndex),
- SkylarkType.of(javaMethodSignatureParams[paramIndex]));
- parameters.add(parameter);
- }
return getSignatureForCallable(
name,
documented,
- parameters.build(),
annotation.parameters(),
annotation.extraPositionals(),
annotation.extraKeywords(),
@@ -107,7 +94,6 @@ public class SkylarkSignatureProcessor {
throw new RuntimeException(String.format("function %s is undocumented", name));
}
return getSignatureForCallable(name, documented,
- /*mandatoryPositionals=*/ImmutableList.<Parameter<Object, SkylarkType>>of(),
annotation.parameters(),
annotation.extraPositionals(),
annotation.extraKeywords(), defaultValues, paramDoc, enforcedTypesList);
@@ -119,13 +105,11 @@ public class SkylarkSignatureProcessor {
private static FunctionSignature.WithValues<Object, SkylarkType> getSignatureForCallable(
String name, boolean documented,
- ImmutableList<Parameter<Object, SkylarkType>> mandatoryPositionals,
Param[] parameters,
@Nullable Param extraPositionals, @Nullable Param extraKeywords,
@Nullable Iterable<Object> defaultValues,
@Nullable List<String> paramDoc, @Nullable List<SkylarkType> enforcedTypesList) {
ArrayList<Parameter<Object, SkylarkType>> paramList = new ArrayList<>();
- paramList.addAll(mandatoryPositionals);
HashMap<String, SkylarkType> enforcedTypes =
enforcedTypesList == null ? null : new HashMap<>();