Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

New rule: `Shared else-value for if/case`

Abierto
#784 0 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
55/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Estancado
Área
tooling

Línea de trabajo

Comienza localizando las implementaciones existentes de las reglas de refactorización y su suite de pruebas; el issue proporciona un caso de prueba positivo en Racket y señala renderer.rkt en el repositorio webracket como lugar de observación. Se considera completado cuando la forma if/case mostrada se transforma en la forma case, mientras que el código no relacionado permanece sin cambios.

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

Descripción

new lint
Rule summary

From:

      (if (symbol? level)
          (case level
            [(warning)                                'warning]
            [(danger)                                 'danger]
            [(info success warning danger
                   primary secondary light dark)      level]
            [else                                     'info])
          'info)

To:

          (case level
            [(warning)                                'warning]
            [(danger)                                 'danger]
            [(info success warning danger
                   primary secondary light dark)      level]
            [else                                     'info])

The observation is that the value return by the else-arm of the if-expression,
is the same as the expression returned in the else-expression of the case.

Test case
#lang resyntax/test

test: "original code should be refactorable to new code"
--------------------
#lang racket
(define level 'foo)
(if (symbol? level)
    (case level
      [(warning) 'warning]
      [else      'info])
    'info)

====================
#lang racket
(define level 'foo)
(case level
      [(warning) 'warning]
      [else      'info])
--------------------
No-change test case

Additional context

Spotted here:

https://github.com/soegaard/webracket/blob/main/lib/web-easy/renderer.rkt#L892

Lenguaje dominante
Racket
Estrellas
70
Forks
11
Métricas de merge de PR
Sin PR fusionados en 30 d

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 jackfirth/resyntax

Todos los issues de jackfirth/resyntax

Issues similares

Más issues de DevTools

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.