|
76 | 76 | (define (refactoring-result #:rule-name rule-name |
77 | 77 | #:message message |
78 | 78 | #: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)))) |
94 | 96 |
|
95 | 97 |
|
96 | 98 | (define (warning-result #:rule-name rule-name #:message message #:source source #:original-syntax original-syntax) |
|
257 | 259 | (define span (syntax-span orig-stx)) |
258 | 260 | (define line (or (syntax-line orig-stx) 1)) |
259 | 261 | (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)])])) |
266 | 269 |
|
267 | 270 |
|
268 | 271 | (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