diff options
author | 2018-06-28 10:12:05 -0700 | |
---|---|---|
committer | 2018-06-28 10:13:26 -0700 | |
commit | e661f88e58ab73e1f21f16531e8cc78ff7d2cad9 (patch) | |
tree | ddf209e5e2bc9a61277c38e2f8a15fafe49b1dd4 /src/main/java/com/google/devtools/build/lib/skylarkinterface | |
parent | 178e6cc5dd31a8b9748f9263eea6bcba5f2c7f31 (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.java | 20 |
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) { |