Jacqueline Firth

Results 356 issues of Jacqueline Firth

```scheme #lang resyntax/test test: "hash-for-each should be refactored to for" -------------------- #lang racket (define (f h) (hash-for-each h (lambda (key val) (printf "key = ~a, val = ~a\n" key val))))...

new lint

```scheme #lang resyntax/test test: "build-list and explicit lambda should be refactored to for/list" -------------------- #lang racket (define (f n) (build-list n (lambda (i) (+ i (* i 2))))) -------------------- --------------------...

new lint

This rule: ```scheme (define-refactoring-rule redundant-or #:description "This `or` expression does nothing and can be replaced with its subexpression." #:literals (or) (or a1:id a2:id) #:when (free-identifier=? #'a1 #'a2) a1) ``` Fails...

enhancement

Closes #153 and closes #369. I'm keeping this open as a draft for now. It relies on a patch to Racket to emit a `'disappeared-visit` syntax property. I'm not sure...

enhancement
new lint

When using `syntax-parse`, ellipses-bound pattern variables are often converted to lists using `(syntax->list #'(var ...))` but they can be extracted as lists directly using `(attribute var)`. There should be a...

new lint

I recently learned that in `syntax-parse`, literals can be used with colon notation just like syntax classes. There ought to be a refactoring rule for this since I'm sure it's...

new lint

Resyntax relies on the expander to find what forms it should analyze. This means that macros which circumvent the expander, like `for`, `match`, and `syntax-parse`, can hide forms from Resyntax....

enhancement

As brought up [here](https://github.com/racket/drracket/pull/687#discussion_r1798562422), it might be nice to have a rule for turning `and` into `cond` when doing so allows turning `let` into `define`. ```scheme #lang resyntax/test -------------------- #lang...

new lint

Resyntax should be able to remove unused local `define-syntax` bindings, like it can `define` bindings: ```scheme #lang resyntax/private/refactoring-test -------------------- #lang racket (define (foo) (define-syntax m (syntax-rules () [(m) (void)])) (+...

new lint

When libraries deprecate functions, those functions can often still be trivially expressed in terms of the library's other public APIs. Migrating users away from those functions is a trivial refactoring:...

enhancement