checkerframework-gradle-plugin
checkerframework-gradle-plugin copied to clipboard
Publishing artifacts without generated CF annotations
When publishing library artifacts (that have been built with CF support ) they include generated CF annotations, sometimes a lot. For example I have a library with a public API method, that has the following generated annotations:
@Pure
public @UnknownKeyFor @NonNull @Initialized @SubstringIndexUnknown @UnknownVal @SearchIndexUnknown @SameLenUnknown @LessThanUnknown @LowerBoundUnknown @UpperBoundUnknown @UnknownThis @CalledMethods({})
Integer getPeriodicity() {
return 1;
}
Even when developing apps that require this library that have CF enabled, this clutters code hinting a lot in IDEs. So my questions:
- Why does this Gradle plugin export code with generated annotations? Is it necessary for proving correctness in applications that depend on such libraries, or is it only to speed up the verification?
- Is it possible to publish artifacts without CF generated annotations? Also, if we do, what are the consequences?