Skip to content

Commit

Permalink
Remove the apply-append-for-loop-to-for-loop lint (#441)
Browse files Browse the repository at this point in the history
See jackfirst/resyntax#435; this lint tends to produce worse output
than the input it started with.
  • Loading branch information
pavpanchekha authored Feb 25, 2025
1 parent 1dcb767 commit d5162c6
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 84 deletions.
59 changes: 0 additions & 59 deletions default-recommendations/for-loop-shortcuts-test.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -643,25 +643,6 @@ test: "for-each and append-map can be replaced by for* with #:when"
------------------------------------------------------------


test: "(apply append ...) with a for loop can be removed"
------------------------------------------------------------
(define formulas
(hash 'water (list 'hydrogen 'oxygen)
'benzene (list 'hydrogen 'carbon)))
(apply append
(for/list ([k (in-hash-keys formulas)])
(hash-ref formulas k)))
------------------------------------------------------------
------------------------------------------------------------
(define formulas
(hash 'water (list 'hydrogen 'oxygen)
'benzene (list 'hydrogen 'carbon)))
(for*/list ([k (in-hash-keys formulas)]
[v (in-list (hash-ref formulas k))])
v)
------------------------------------------------------------


test: "(apply append ...) with a multi-clause for loop can't be removed"
------------------------------------------------------------
(define formulas
Expand All @@ -686,46 +667,6 @@ test: "(apply append ...) with a multi-body for loop can't be removed"
------------------------------------------------------------


test: "(apply append ...) with a for* loop can be removed"
------------------------------------------------------------
(define formulas
(hash 'water (list 'hydrogen 'oxygen)
'benzene (list 'hydrogen 'carbon)))
(apply append
(for*/list ([k (in-hash-keys formulas)])
(hash-ref formulas k)))
------------------------------------------------------------
------------------------------------------------------------
(define formulas
(hash 'water (list 'hydrogen 'oxygen)
'benzene (list 'hydrogen 'carbon)))
(for*/list ([k (in-hash-keys formulas)]
[v (in-list (hash-ref formulas k))])
v)
------------------------------------------------------------


test: "(apply append ...) with a multi-clause for* loop can be removed"
------------------------------------------------------------
(define formulas
(hash 'water (list 'hydrogen 'oxygen)
'benzene (list 'hydrogen 'carbon)))
(apply append
(for*/list ([k (in-hash-keys formulas)]
[i (in-range 0 5)])
(hash-ref formulas k)))
------------------------------------------------------------
------------------------------------------------------------
(define formulas
(hash 'water (list 'hydrogen 'oxygen)
'benzene (list 'hydrogen 'carbon)))
(for*/list ([k (in-hash-keys formulas)]
[i (in-range 0 5)]
[v (in-list (hash-ref formulas k))])
v)
------------------------------------------------------------


test: "(apply append ...) with a multi-body for* loop can't be removed"
------------------------------------------------------------
(define formulas
Expand Down
25 changes: 0 additions & 25 deletions default-recommendations/for-loop-shortcuts.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -424,30 +424,6 @@ return just that result."
(~@ . (~splicing-replacement (last-condition.refactored ...) #:original original-body))))


(define-syntax-class apply-append-refactorable-for-loop
#:attributes (refactored-loop)
#:literals (for/list for*/list)

(pattern (for/list (only-clause) only-body:expr)
#:when (oneline-syntax? #'only-body)
#:with refactored-loop
#'(for*/list (only-clause [v (in-list only-body)])
v))

(pattern ((~and loop-id for*/list) (clause ...) only-body:expr)
#:when (oneline-syntax? #'only-body)
#:with refactored-loop
#'(loop-id (clause ... [v (in-list only-body)]) v)))


(define-refactoring-rule apply-append-for-loop-to-for-loop
#:description "Instead of using `(apply append ...)` to flatten a list of lists, consider using\
`for*/list` to flatten the list."
#:literals (apply append)
(apply append loop:apply-append-refactorable-for-loop)
loop.refactored-loop)


(define-refactoring-rule when-expression-in-for-loop-to-when-keyword
#:description "Use the `#:when` keyword instead of `when` to reduce loop body indentation."
#:literals (when for for*)
Expand All @@ -465,7 +441,6 @@ return just that result."
(define-refactoring-suite for-loop-shortcuts
#:rules (andmap-to-for/and
append-map-for/list-to-for*/list
apply-append-for-loop-to-for-loop
apply-plus-to-for/sum
for/fold-building-hash-to-for/hash
for/fold-result-keyword
Expand Down

0 comments on commit d5162c6

Please sign in to comment.