diff options
author | cparsons <cparsons@google.com> | 2018-06-22 15:12:00 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-06-22 15:13:51 -0700 |
commit | 88d1caeef07533429468515f63b3d4e2cb9a7a80 (patch) | |
tree | ae554a10e8f4ba4b88b36216fca01b11bea740ab /src/main/java/com/google/devtools/build/lib/skylarkinterface | |
parent | c8bd74f76c3e02657571432d2fe4d923803410be (diff) |
Make @SkylarkCallable.name mandatory.
RELNOTES: None.
PiperOrigin-RevId: 201748802
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skylarkinterface')
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, |