New semantic analyzer: allow redefinition of star-imported functions if type is the same
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Consider this test case:
[case testReExportOtherSameType]
from low_level import *
def func(arg: str) -> int:
...
[file low_level.py]
def func(arg: str) -> int:
...
It is currently allowed by old analyzer (likely by accident), but prohibited by the new one. Old analyzer still prohibits this if the function is imported by name instead of star import. Although behavior of the new analyzer is more consistent, it may be sometimes useful to allow the redefinition (for example when star import re-exports hundred functions).
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
Comienza con el caso de prueba testReExportOtherSameType y sus dos archivos, que muestran una importación con asterisco desde low_level.py seguida de una definición con la misma firma. Lee cómo el nuevo analizador semántico gestiona las funciones importadas con asterisco y compáralo con el analizador antiguo. Se considera completado cuando el comportamiento previsto de redefinición del mismo tipo está cubierto por una prueba que pasa, sin cambiar el comportamiento independiente de las importaciones con nombre.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- devtools
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100