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

New lint: unused syntax

Abierto
#361 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
38/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Área
tooling

Línea de trabajo

Comienza con la prueba de refactorización mostrada en el issue y con el análisis de uso de identificadores en el código expandido de Resyntax. Inspecciona cómo se representan las propiedades sintácticas 'disappeared-binding y 'disappeared-use en los objetos de sintaxis expandidos. Se considera terminado cuando se elimina la vinculación local de define-syntax no utilizada que se muestra, sin romper el comportamiento existente de las macros ni del uso de identificadores.

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

Descripción

new lint

Resyntax should be able to remove unused local define-syntax bindings, like it can define bindings:

#lang resyntax/private/refactoring-test

--------------------
#lang racket
(define (foo)
  (define-syntax m (syntax-rules () [(m) (void)]))
  (+ 1 2 3))
--------------------
--------------------
#lang racket
(define (foo)
  (+ 1 2 3))
--------------------

The trouble is that local syntax bindings become uses of let-syntax, which disappear during macro expansion. Resyntax's identifier usage analysis relies on analyzing the expanded code, so it won't see disappearing let-syntax bindings or disappeared uses of macros. This can be fixed by making Resyntax look at the 'disappeared-binding and 'disappeared-use syntax properties on all syntax objects within the expanded code.

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.