src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options.processor/src/org/graalvm/compiler/options/processor/OptionProcessor.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options.processor/src/org/graalvm/compiler/options/processor/OptionProcessor.java Thu Jul 25 11:44:37 2019 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options.processor/src/org/graalvm/compiler/options/processor/OptionProcessor.java Thu Jul 25 17:35:58 2019 -0400
@@ -224,6 +224,14 @@
}
}
+ String optionStabilityName = getAnnotationValue(annotation, "stability", VariableElement.class).getSimpleName().toString();
+ if (optionStabilityName.equals("STABLE")) {
+ if (help.length() == 0) {
+ processingEnv.getMessager().printMessage(Kind.ERROR, "A stable option must have non-empty help text", element);
+ return;
+ }
+ }
+
String optionTypeName = getAnnotationValue(annotation, "type", VariableElement.class).getSimpleName().toString();
info.options.add(new OptionInfo(optionName, optionTypeName, help, extraHelp, optionType, declaringClass, field.getSimpleName().toString()));
}