Explicitly inhibit in BREAK.
(defun break (&optional (datum "break") &rest arguments)
#!+sb-doc
"Print a message and invoke the debugger without allowing any possibility
- of condition handling occurring."
+of condition handling occurring."
+ (declare (optimize (sb!c::rest-conversion 0)))
(let ((*debugger-hook* nil)) ; as specifically required by ANSI
(apply #'%break 'break datum arguments)))
("off" "maybe" "on" "on")
"Control inline-substitution of used-once local functions.")
+(define-optimization-quality rest-conversion
+ (if (= debug 3) 0 3)
+ ("off" "maybe" "on" "on")
+ "Control conversion of &REST argments to &MORE arguments when
+only used as the final argument to APPLY.")
+
(define-optimization-quality verify-arg-count
(if (zerop safety) 0 3)
("no" "maybe" "yes" "yes"))
(consp (arg-info-default info))
(not (lambda-var-specvar var))
(not (lambda-var-sets var))
- (every #'ref-good-for-more-context-p (lambda-var-refs var)))))
+ (every #'ref-good-for-more-context-p (lambda-var-refs var))
+ (policy node (= 3 rest-conversion)))))
(cond (context-ok
(destructuring-bind (context count &optional used) (arg-info-default info)
(declare (ignore used))