redhat-developer / redhat-developer/vscode-java

Recognize contractual non-nullness of standard library functions

Ouverte
#2,731 1 commentaire 10 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

code analysis
Langage dominant
TypeScript
Étoiles
2.3k
Forks
546
Merge moyen
20 h 1 min
PR mergées (30 j)
11

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Aucun fichier source ni test n’est nommé dans l’issue. Commencez par examiner comment l’extension délègue l’analyse de nullité à Eclipse JDT et comparez les annotations compatibles avec JDT de LastNPE avec la prise en charge d’EAA demandée ; le travail est terminé lorsque les méthodes de la bibliothèque standard telles que Integer::toString ne produisent plus d’avertissements de cast non vérifié lorsqu’elles sont affectées à des champs @Nonnull.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java, typescript, vscode
Domaine
tooling
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.