redhat-developer / redhat-developer/vscode-java

Recognize contractual non-nullness of standard library functions

Aperta
#2,731 1 commento 10 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

code analysis
Lingua principale
TypeScript
Stelle
2.3k
Fork
546
Merge medio
20h 1m
PR unite (30g)
11

Descrizione

The nullness analyzer does not recognize that certain standard library functions will, contractually, never return null. A common example would be Integer::toString.

These methods will generate unchecked cast warnings if assigned to a @Nonnull field.

As I understand, the plugin relies on Eclipse JDT for nullness analysis. I have come across LastNPE, which publishes JDT-compatible external null annotation files for many common libraries.

Would it be possible to include these annotations by default? Alternatively, if this is not desirable, could EAA files be supported by the plugin?

Environment
  • Operating System: Windows 10 Enterprise
  • JDK version: openjdk 11.0.12 2021-07-20
  • Visual Studio Code version: 1.71.2
  • Java extension version: v1.11.0

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Nell’issue non sono indicati file sorgente né test. Inizia esaminando come l’estensione delega l’analisi della nullità a Eclipse JDT e confronta le annotazioni compatibili con JDT di LastNPE con il supporto EAA richiesto; il lavoro è completo quando i metodi della libreria standard come Integer::toString non producono più avvisi di cast non verificato quando vengono assegnati a campi @Nonnull.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java, typescript, vscode
Ambito
tooling
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.