- (ir1-convert-lambda-body `((let (,@(default-bindings))
- (%funcall ,fun
- ,@(reverse vals)
- ,@(default-vals))))
- arg-vars
- ;; FIXME: Would be nice to
- ;; share these names instead
- ;; of consing up several
- ;; identical ones. Oh well.
- :debug-name (debug-name
- '&optional-processor
- name)
- :note-lexical-bindings nil))))
+ (let ((bindings (default-bindings))
+ (call `(%funcall ,fun ,@(reverse vals) ,@(default-vals))))
+ (ir1-convert-lambda-body (if bindings
+ `((let (,@bindings) ,call))
+ `(,call))
+ arg-vars
+ ;; FIXME: Would be nice to
+ ;; share these names instead
+ ;; of consing up several
+ ;; identical ones. Oh well.
+ :debug-name (debug-name
+ '&optional-processor
+ name)
+ :note-lexical-bindings nil
+ :system-lambda t)))))