aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skylarkinterface
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-06-22 15:12:00 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-22 15:13:51 -0700
commit88d1caeef07533429468515f63b3d4e2cb9a7a80 (patch)
treeae554a10e8f4ba4b88b36216fca01b11bea740ab /src/main/java/com/google/devtools/build/lib/skylarkinterface
parentc8bd74f76c3e02657571432d2fe4d923803410be (diff)
Make @SkylarkCallable.name mandatory.
RELNOTES: None. PiperOrigin-RevId: 201748802
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skylarkinterface')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkinterface/SkylarkCallable.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkinterface/processor/SkylarkCallableProcessor.java15
2 files changed, 11 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkinterface/SkylarkCallable.java b/src/main/java/com/google/devtools/build/lib/skylarkinterface/SkylarkCallable.java
index 9b5720fcf5..ceb65b033f 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkinterface/SkylarkCallable.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkinterface/SkylarkCallable.java
@@ -60,7 +60,7 @@ public @interface SkylarkCallable {
/**
* Name of the method, as exposed to Skylark.
*/
- String name() default "";
+ String name();
/**
* The documentation text in Skylark. It can contain HTML tags for special formatting.
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 2ccc6ccb49..ecfd963529 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
@@ -109,6 +109,7 @@ public final class SkylarkCallableProcessor extends AbstractProcessor {
}
try {
+ verifyNameNotEmpty(methodElement, annotation);
verifyDocumented(methodElement, annotation);
verifyNotStructFieldWithParams(methodElement, annotation);
verifyParamSemantics(methodElement, annotation);
@@ -123,6 +124,15 @@ public final class SkylarkCallableProcessor extends AbstractProcessor {
return true;
}
+ private void verifyNameNotEmpty(ExecutableElement methodElement, SkylarkCallable annotation)
+ throws SkylarkCallableProcessorException {
+ if (annotation.name().isEmpty()) {
+ throw new SkylarkCallableProcessorException(
+ methodElement,
+ "@SkylarkCallable.name must be non-empty.");
+ }
+ }
+
private void verifyIfSelfCall(ExecutableElement methodElement, SkylarkCallable annotation)
throws SkylarkCallableProcessorException {
if (annotation.selfCall()) {
@@ -131,11 +141,6 @@ public final class SkylarkCallableProcessor extends AbstractProcessor {
methodElement,
"@SkylarkCallable-annotated methods with selfCall=true must have structField=false");
}
- if (annotation.name().isEmpty()) {
- throw new SkylarkCallableProcessorException(
- methodElement,
- "@SkylarkCallable-annotated methods with selfCall=true must have a name");
- }
if (!classesWithSelfcall.add(methodElement.getEnclosingElement().asType().toString())) {
throw new SkylarkCallableProcessorException(
methodElement,