Only apply #:when and #:unless refactoring to multi-body loops #779
+54
−12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
when-expression-in-for-loop-to-when-keywordandunless-expression-in-for-loop-to-unless-keywordrules were refactoring single-statement loops, which doesn't meaningfully reduce indentation or improve readability.Changes
#:when (>= (length (attribute body)) 2)guard to both refactoring rules to require at least 2 body formsno-change-testcases to verify single-body loops are not refactoredExample
This will not be refactored anymore:
(for ([v (in-list vs)]) (unless (good? v) (raise-arguments-error ...)))This will still be refactored:
(for ([v (in-list vs)]) (unless (good? v) (displayln "checking") (raise-arguments-error ...))) ;; → (for ([v (in-list vs)] #:unless (good? v)) (displayln "checking") (raise-arguments-error ...))Original prompt
#:whenand#:unlesswith multi-body loops #765💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.