redhat-developer / redhat-developer/vscode-java
Recognize contractual non-nullness of standard library functions
Nadie ha tomado este issue todavía.
- 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
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- 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