aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skylarkinterface
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-06-28 10:12:05 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-28 10:13:26 -0700
commite661f88e58ab73e1f21f16531e8cc78ff7d2cad9 (patch)
treeddf209e5e2bc9a61277c38e2f8a15fafe49b1dd4 /src/main/java/com/google/devtools/build/lib/skylarkinterface
parent178e6cc5dd31a8b9748f9263eea6bcba5f2c7f31 (diff)
Require @SkylarkCallable parameters to be explicitly specified.
This will be enforced by annotation processor. This will be followed up, along with turndown of mandatoryPositionals, by removing the intepreter code which infers the correct number and type of parameters. RELNOTES: None. PiperOrigin-RevId: 202499089
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skylarkinterface')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/SkylarkCallableProcessor.java20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/SkylarkCallableProcessor.java b/src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/SkylarkCallableProcessor.java
index ecfd963529..a2d43ae528 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/SkylarkCallableProcessor.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/SkylarkCallableProcessor.java
@@ -265,17 +265,15 @@ public final class SkylarkCallableProcessor extends AbstractProcessor {
List<? extends VariableElement> methodSignatureParams = methodElement.getParameters();
int numExtraInterpreterParams = numExpectedExtraInterpreterParams(annotation);
- if (annotation.parameters().length > 0 || annotation.mandatoryPositionals() >= 0) {
- int numDeclaredArgs =
- annotation.parameters().length + Math.max(0, annotation.mandatoryPositionals());
- if (methodSignatureParams.size() != numDeclaredArgs + numExtraInterpreterParams) {
- throw new SkylarkCallableProcessorException(
- methodElement,
- String.format(
- "@SkylarkCallable annotated method has %d parameters, but annotation declared "
- + "%d user-supplied parameters and %d extra interpreter parameters.",
- methodSignatureParams.size(), numDeclaredArgs, numExtraInterpreterParams));
- }
+ int numDeclaredArgs =
+ annotation.parameters().length + Math.max(0, annotation.mandatoryPositionals());
+ if (methodSignatureParams.size() != numDeclaredArgs + numExtraInterpreterParams) {
+ throw new SkylarkCallableProcessorException(
+ methodElement,
+ String.format(
+ "@SkylarkCallable annotated method has %d parameters, but annotation declared "
+ + "%d user-supplied parameters and %d extra interpreter parameters.",
+ methodSignatureParams.size(), numDeclaredArgs, numExtraInterpreterParams));
}
if (annotation.structField()) {
if (methodSignatureParams.size() != numExtraInterpreterParams) {