Avoid incorrect use of cadr. (#2848)

Fixes #2847.
This commit is contained in:
Sam Tobin-Hochstadt 2019-10-06 13:02:22 -04:00 committed by John Clements
parent 9bb5bc9352
commit 4fb8e4a38d

View File

@ -779,10 +779,13 @@
(cond
[(and (or (eq? (car expr) 'unquote)
(eq? (car expr) 'unsyntax))
(symbol? (cadr expr)))
;; don't use cadr here since `car` and `cdr` are arguments to
;; this function
(symbol? (car (cdr expr))))
(define v (car (cdr expr)))
(define s (if display?
(symbol->string (cadr expr))
(format "~s" (cadr expr))))
(symbol->string v)
(format "~s" v)))
(when (and (positive? (string-length s))
(eqv? #\@ (string-ref s 0)))
;; Avoid ambiguity by adding a space