Skip to content

Commit 6e1533c

Browse files
Apply suggestions from code review
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 932b31d commit 6e1533c

File tree

1 file changed

+40
-34
lines changed

1 file changed

+40
-34
lines changed

private/refactoring-result.rkt

Lines changed: 40 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -76,21 +76,23 @@
7676
(define (refactoring-result #:rule-name rule-name
7777
#:message message
7878
#:syntax-replacement [replacement #false])
79-
(if replacement
80-
(let ([str-replacement (syntax-replacement-render replacement)]
81-
[full-orig-code (source->string (syntax-replacement-source replacement))])
82-
(constructor:refactoring-result
83-
#:rule-name rule-name
84-
#:message (string->immutable-string message)
85-
#:source (syntax-replacement-source replacement)
86-
#:original-syntax (syntax-replacement-original-syntax replacement)
87-
#:syntax-replacement replacement
88-
#:string-replacement str-replacement
89-
#:line-replacement (string-replacement->line-replacement str-replacement full-orig-code)))
90-
(raise-arguments-error 'refactoring-result
91-
"must provide either #:syntax-replacement"
92-
"rule-name" rule-name
93-
"message" message)))
79+
(unless replacement
80+
(raise-arguments-error 'refactoring-result
81+
"must provide either #:syntax-replacement"
82+
"rule-name"
83+
rule-name
84+
"message"
85+
message))
86+
(let ([str-replacement (syntax-replacement-render replacement)]
87+
[full-orig-code (source->string (syntax-replacement-source replacement))])
88+
(constructor:refactoring-result
89+
#:rule-name rule-name
90+
#:message (string->immutable-string message)
91+
#:source (syntax-replacement-source replacement)
92+
#:original-syntax (syntax-replacement-original-syntax replacement)
93+
#:syntax-replacement replacement
94+
#:string-replacement str-replacement
95+
#:line-replacement (string-replacement->line-replacement str-replacement full-orig-code))))
9496

9597

9698
(define (warning-result #:rule-name rule-name #:message message #:source source #:original-syntax original-syntax)
@@ -257,25 +259,29 @@
257259
(define span (syntax-span orig-stx))
258260
(define line (or (syntax-line orig-stx) 1))
259261
(define col (or (syntax-column orig-stx) 0))
260-
(if (and pos span)
261-
(let* ([start (sub1 pos)]
262-
[end (+ start span)]
263-
[raw-text (string->immutable-string (substring full-orig-code start end))])
264-
(code-snippet raw-text col line))
265-
(code-snippet "" col line))]))
262+
(cond
263+
[(and pos span)
264+
(define start (sub1 pos))
265+
(define end (+ start span))
266+
(define raw-text (string->immutable-string (substring full-orig-code start end)))
267+
(code-snippet raw-text col line)]
268+
[else (code-snippet "" col line)])]))
266269

267270

268271
(define (refactoring-result-new-code result)
269-
(and (refactoring-result-has-fix? result)
270-
(let* ([replacement (refactoring-result-string-replacement result)]
271-
[full-orig-code (source->string (syntax-replacement-source
272-
(refactoring-result-syntax-replacement result)))]
273-
[lmap (string-linemap full-orig-code)]
274-
[start (string-replacement-start replacement)]
275-
[original-line (linemap-position-to-line lmap (add1 start))]
276-
[original-column (- (add1 start) (linemap-position-to-start-of-line lmap (add1 start)))]
277-
[refactored-source-code (string-apply-replacement full-orig-code replacement)]
278-
[new-code-string (substring refactored-source-code
279-
(string-replacement-start replacement)
280-
(string-replacement-new-end replacement))])
281-
(code-snippet new-code-string original-column original-line))))
272+
(cond
273+
[(refactoring-result-has-fix? result)
274+
(define replacement (refactoring-result-string-replacement result))
275+
(define full-orig-code
276+
(source->string (syntax-replacement-source (refactoring-result-syntax-replacement result))))
277+
(define lmap (string-linemap full-orig-code))
278+
(define start (string-replacement-start replacement))
279+
(define original-line (linemap-position-to-line lmap (add1 start)))
280+
(define original-column (- (add1 start) (linemap-position-to-start-of-line lmap (add1 start))))
281+
(define refactored-source-code (string-apply-replacement full-orig-code replacement))
282+
(define new-code-string
283+
(substring refactored-source-code
284+
(string-replacement-start replacement)
285+
(string-replacement-new-end replacement)))
286+
(code-snippet new-code-string original-column original-line)]
287+
[else #f]))

0 commit comments

Comments
 (0)