redhat-developer / redhat-developer/vscode-java

Recognize contractual non-nullness of standard library functions

Abierto
#2,731 1 comentario 10 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

code analysis
Lenguaje dominante
TypeScript
Estrellas
2.3k
Forks
546
Merge medio
20 h 1 min
PR fusionados (30 d)
11

Descripción

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

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

En el issue no se nombra ningún archivo fuente ni ninguna prueba. Empieza examinando cómo la extensión delega el análisis de nulabilidad en Eclipse JDT y compara las anotaciones compatibles con JDT de LastNPE con la compatibilidad con EAA solicitada; se considera terminado cuando los métodos de la biblioteca estándar, como Integer::toString, ya no producen advertencias de cast no comprobado al asignarse a campos @Nonnull.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java, typescript, vscode
Área
tooling
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.