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
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
index c31cd27..e70a9c5 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
@@ -120,11 +120,15 @@
return "I'm a mock named " + myName;
}
- @SkylarkCallable(name = "value_of", documented = false)
+ @SkylarkCallable(name = "value_of",
+ parameters = { @Param(name = "str", type = String.class) },
+ documented = false)
public static Integer valueOf(String str) {
return Integer.valueOf(str);
}
- @SkylarkCallable(name = "is_empty", documented = false)
+ @SkylarkCallable(name = "is_empty",
+ parameters = { @Param(name = "str", type = String.class) },
+ documented = false)
public Boolean isEmpty(String str) {
return str.isEmpty();
}
@@ -155,7 +159,12 @@
return "a";
}
@SuppressWarnings("unused")
- @SkylarkCallable(name = "nullfunc_failing", documented = false, allowReturnNones = false)
+ @SkylarkCallable(name = "nullfunc_failing",
+ parameters = {
+ @Param(name = "p1", type = String.class),
+ @Param(name = "p2", type = Integer.class),
+ },
+ documented = false, allowReturnNones = false)
public SkylarkValue nullfuncFailing(String p1, Integer p2) {
return null;
}
@@ -482,7 +491,9 @@
@SkylarkModule(name = "MockInterface", doc = "")
static interface MockInterface {
- @SkylarkCallable(name = "is_empty_interface", documented = false)
+ @SkylarkCallable(name = "is_empty_interface",
+ parameters = { @Param(name = "str", type = String.class) },
+ documented = false)
public Boolean isEmptyInterface(String str);
}