Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta
#784 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
55/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Ambito
tooling

Direzione di ricerca

Inizia individuando le implementazioni esistenti delle regole di refactoring e la relativa suite di test; l’issue fornisce un caso di test positivo in Racket e indica renderer.rkt nel repository webracket come punto di osservazione. Il lavoro è completo quando la forma if/case mostrata viene trasformata nella forma case, mentre il codice non correlato rimane invariato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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

Lingua principale
Racket
Stelle
70
Fork
11
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di jackfirth/resyntax

Tutte le issue di jackfirth/resyntax

Issue simili

Altre issue su DevTools

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.