Re: Support for static analysis annotations
Uwe Schindler <[email protected]> Fri, 3 Jan 2025 11:18:42 +0100
| Newsgroups | gmane.comp.jakarta.lucene.user |
|---|---|
| Message-ID | <[email protected]> |
Hi, we have not yet discussed about that. At moment Lucene uses one custom annotation "@SuppressForbidden") which is detected by the forbiddenapis plugin based on pure class name (not package). Forbiddenapis (https://github.com/policeman-tools/forbidden-apis) is a static analysis tool used extensively in Lucene and related projects. In general, I have no problems with adding those annotations, but it should only be done on public APIs. Maybe open an issue for discussion and a small mockup PR showing it for some classes like IndexSearcher or IndexWriter. Uwe Am 06.12.2024 um 02:21 schrieb Evan Darke: > I'm wondering if the Lucene community would be supportive of adopting > common annotations, such a @Nullable, to enable better static analysis for > downstream projects and within Lucene as well. Lucene makes extensive use > of nulls for performance reasons, but using this code can be prone to user > error. > > Since most tools nowadays (e.g. Errorprone, NullAway, Intellij) will > recognize annotations based on their simple name, rather than the fully > qualified class name, it's possible to support this analysis without > introducing any third party dependencies. I would like to propose > annotating Lucene methods with "org.apache.lucene.annotations.Nullable" > where applicable, and perhaps similar for @MustBeClosed. > -- Uwe Schindler Achterdiek 19, D-28357 Bremen https://www.thetaphi.de eMail: [email protected]