Skip to content

Conversation

@resyntax-ci
Copy link
Contributor

@resyntax-ci resyntax-ci bot commented Dec 21, 2025

Resyntax fixed 20 issues in 7 files.

  • Fixed 5 occurrences of unless-expression-in-for-loop-to-unless-keyword
  • Fixed 4 occurrences of let-to-define
  • Fixed 3 occurrences of map-to-for
  • Fixed 3 occurrences of when-expression-in-for-loop-to-when-keyword
  • Fixed 1 occurrence of and-let-to-cond
  • Fixed 1 occurrence of named-let-loop-to-for-in-range
  • Fixed 1 occurrence of nested-when-to-compound-when
  • Fixed 1 occurrence of cond-let-to-cond-define
  • Fixed 1 occurrence of instantiate-to-new

(define win-label (and (is-a? window window<%>) (send window get-label)))
(equal? label win-label)]
[else #f])
(list window)]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't seem ideal.

resyntax-ci bot added 8 commits January 16, 2026 08:01
Internal definitions are recommended instead of `let` expressions, to reduce nesting.
This `map` operation can be replaced with a `for/list` loop.
Internal definitions are recommended instead of `let` expressions, to reduce nesting.
Use the `#:when` keyword instead of `when` to reduce loop body indentation.
Nested `when` expressions can be merged into a single compound `when` expression.
The `instantiate` form is for mixing positional and by-name constructor arguments. When no positional arguments are needed, use `new` instead.
This named `let` expression is equivalent to a `for` loop that uses `in-range`.
Use the `#:unless` keyword instead of `unless` to reduce loop body indentation.
@rfindler
Copy link
Member

I removed the (IMO) questionable commit.

@rfindler rfindler merged commit 6bdd3ca into master Jan 16, 2026
3 checks passed
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resyntax analyzed 7 files in this pull request and has added suggestions.

Comment on lines +28 to +35
(let loop ([dy (- (/ quadrant-size 2))])
(when (< dy h)
(send dc set-alpha 1)
(send dc set-brush palaka-color 'solid)
(send dc draw-rectangle dx dy quadrant-size quadrant-size)
(send dc set-brush "white" 'solid)
(draw-one-palaka dc dx dy)
(loop (+ dy quadrant-size)))))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

named-let-loop-to-for-in-range: This named let expression is equivalent to a for loop that uses in-range.

Suggested change
(let loop ([dy (- (/ quadrant-size 2))])
(when (< dy h)
(send dc set-alpha 1)
(send dc set-brush palaka-color 'solid)
(send dc draw-rectangle dx dy quadrant-size quadrant-size)
(send dc set-brush "white" 'solid)
(draw-one-palaka dc dx dy)
(loop (+ dy quadrant-size)))))
(for ([dy (in-range (- (/ quadrant-size 2)) h quadrant-size)])
(send dc set-alpha 1)
(send dc set-brush palaka-color 'solid)
(send dc draw-rectangle dx dy quadrant-size quadrant-size)
(send dc set-brush "white" 'solid)
(draw-one-palaka dc dx dy)))
Debugging details
Textual replacement
(line-replacement
  #:new-lines
    '#("    (for ([dy (in-range (- (/ quadrant-size 2)) h quadrant-size)])"
       "      (send dc set-alpha 1)"
       "      (send dc set-brush palaka-color 'solid)"
       "      (send dc draw-rectangle dx dy quadrant-size quadrant-size)"
       "      (send dc set-brush \"white\" 'solid)"
       "      (draw-one-palaka dc dx dy)))")
  #:original-lines
    '#("    (let loop ([dy (- (/ quadrant-size 2))])"
       "      (when (< dy h)"
       "        (send dc set-alpha 1)"
       "        (send dc set-brush palaka-color 'solid)"
       "        (send dc draw-rectangle dx dy quadrant-size quadrant-size)"
       "        (send dc set-brush \"white\" 'solid)"
       "        (draw-one-palaka dc dx dy)"
       "        (loop (+ dy quadrant-size)))))")
  #:start-line 28)
Syntactic replacement
(syntax-replacement
  #:introduction-scope #<procedure:...and/syntax-local.rkt:148:2>
  #:new-syntax
    #<syntax:/home/runner/.local/share/racket/9.1.0.1/pkgs/resyntax/default-recommendations/loops/named-let-loopification.rkt:40:2 (for ((dy (in-range (- (/ quadrant-size 2)) h quadrant-size))) (send dc set-alpha 1) (send dc set-brush palaka-color (quote solid)) (send dc draw-rectangle dx dy quadrant-size quadrant-size) (send dc set-brush "white" (quote solid)) (draw-one-palaka dc ...>
  #:original-syntax
    #<syntax:drracket-core-lib/drracket/private/palaka.rkt:28:4 (let loop ((dy (- (/ quadrant-size 2)))) (when (< dy h) (send dc set-alpha 1) (send dc set-brush palaka-color (quote solid)) (send dc draw-rectangle dx dy quadrant-size quadrant-size) (send dc set-brush "white" (quote solid)) (draw-one-palaka dc dx dy) ...>
  #:source
    (file-source
     #<path:/home/runner/work/drracket/drracket/drracket-core-lib/drracket/private/palaka.rkt>)
  #:uses-universal-tagged-syntax? #f)

Comment on lines +127 to +133
(if (<= counter 0)
(fail)
(let ([result (pred)])
(or result
(begin
(sleep step)
(loop (- counter step))))))))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if-let-to-cond: cond with internal definitions is preferred over if with let, to reduce nesting

Suggested change
(if (<= counter 0)
(fail)
(let ([result (pred)])
(or result
(begin
(sleep step)
(loop (- counter step))))))))
(cond
[(<= counter 0) (fail)]
[else
(define result (pred))
(or result
(begin
(sleep step)
(loop (- counter step))))])))
Debugging details
Textual replacement
(line-replacement
  #:new-lines
    '#("    (cond"
       "      [(<= counter 0) (fail)]"
       "      [else"
       "       (define result (pred))"
       "       (or result"
       "           (begin"
       "             (sleep step)"
       "             (loop (- counter step))))])))")
  #:original-lines
    '#("    (if (<= counter 0)"
       "        (fail)"
       "        (let ([result (pred)])"
       "          (or result"
       "              (begin"
       "                (sleep step)"
       "                (loop (- counter step))))))))")
  #:start-line 127)
Syntactic replacement
(syntax-replacement
  #:introduction-scope #<procedure:...and/syntax-local.rkt:148:2>
  #:new-syntax
    #<syntax:/home/runner/.local/share/racket/9.1.0.1/pkgs/resyntax/default-recommendations/let-replacement/cond-let-replacement.rkt:47:2 (cond ((<= counter 0) (fail)) (else (define result (pred)) (or result (begin (sleep step) (loop (- counter step))))))>
  #:original-syntax
    #<syntax:drracket-test/tests/drracket/private/no-fw-test-util.rkt:127:4 (if (<= counter 0) (fail) (let ((result (pred))) (or result (begin (sleep step) (loop (- counter step))))))>
  #:source
    (file-source
     #<path:/home/runner/work/drracket/drracket/drracket-test/tests/drracket/private/no-fw-test-util.rkt>)
  #:uses-universal-tagged-syntax? #f)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant