diff options
author | Stas Boukarev <stassats@gmail.com> | 2024-04-26 05:45:27 +0300 |
---|---|---|
committer | Stas Boukarev <stassats@gmail.com> | 2024-04-26 05:45:27 +0300 |
commit | d1eb39dc647cfa001e2476c10167de7d9140e78c (patch) | |
tree | 83c8115a46c25251ae5e0f251c09b417a333c0ea | |
parent | 714ee6c550b2cf7d6345bf806c9c6fb00c622b1f (diff) |
Silence an unused variable warning.
-rw-r--r-- | api.lisp | 33 |
1 files changed, 17 insertions, 16 deletions
@@ -339,22 +339,23 @@ substrings may share structure with TARGET-STRING." (with-rebinding (target-string) (with-unique-names (match-start match-end reg-starts reg-ends start-index substr-fn) - (let ((var-bindings - (loop for (function var) in (normalize-var-list var-list) - for counter from 0 - when var - collect `(,var (let ((,start-index - (aref ,reg-starts ,counter))) - (if ,start-index - ,(if (equal function '#'parse-integer) - `(parse-integer ,target-string :start ,start-index - :end (aref ,reg-ends ,counter)) - `(funcall ,function - (funcall ,substr-fn + (let* (substr-needed + (var-bindings + (loop for (function var) in (normalize-var-list var-list) + for counter from 0 + when var + collect `(,var (let ((,start-index + (aref ,reg-starts ,counter))) + (if ,start-index + ,(if (equal function '#'parse-integer) + `(parse-integer ,target-string :start ,start-index + :end (aref ,reg-ends ,counter)) + `(funcall ,function + (funcall ,(setf substr-needed substr-fn) ,target-string ,start-index (aref ,reg-ends ,counter)))) - nil)))))) + nil)))))) `(multiple-value-bind (,match-start ,match-end ,reg-starts ,reg-ends) (scan ,regex ,target-string :start (or ,start 0) :end (or ,end (length ,target-string))) @@ -363,9 +364,9 @@ substrings may share structure with TARGET-STRING." `((declare (ignore ,reg-starts ,reg-ends)))) (when ,match-start ,@(if var-bindings - `((let* ,(list* - `(,substr-fn (if ,sharedp #'nsubseq #'subseq)) - var-bindings) + `((let* (,@(and substr-needed + `((,substr-fn (if ,sharedp #'nsubseq #'subseq)))) + ,@var-bindings) ,@body)) body))))))) |