Replace `ir::BlockIdx::NULL` with `Option<ir::BlockIdx>`

Abierto
#7,221 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
rust
Área
compilers

Línea de trabajo

Comienza en crates/codegen/src/ir.rs, alrededor de las líneas 49–50, y luego rastrea los usos de ir::BlockIdx::NULL y las comparaciones condicionales descritas en el issue. Sustituye la representación centinela por Optionir::BlockIdx en todo el código afectado y verifica que todos los casos Some/None se gestionen correctamente.

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

Descripción

Summary

We are using a hack for representing a null block index by doing:
https://github.com/RustPython/RustPython/blob/9f250a0f6e51a19b6a4c512728ffd3929a33ebec/crates/codegen/src/ir.rs#L49-L50

I think it would be better to remove this hack and using a proper Option<BlockIdx> for representing Some(BlockIdx) or a None it would ensure a proper care for a None/Some cases instead of using an if condition (which is more error prone) like:

if target == BlockIdx::NULL {
  ...
} else {
  ...
}
Lenguaje dominante
Rust
Estrellas
22.4k
Forks
1.5k
Merge medio
15 h 18 min
PR fusionados (30 d)
172

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.

Más de RustPython/RustPython

Todos los issues de RustPython/RustPython

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.