(aver (null (functional-entry-fun fun)))
(with-ir1-environment-from-node (lambda-bind (main-entry fun))
(let ((res (ir1-convert-lambda (make-xep-lambda-expression fun)
- :debug-name (debug-namify
- "XEP for "
- (leaf-debug-name fun)))))
+ :debug-name (debug-name
+ 'xep (leaf-debug-name fun)))))
(setf (functional-kind res) :external
(leaf-ever-used res) t
(functional-entry-fun res) fun
(values nil
(ir1-convert-lambda
(functional-inline-expansion original-functional)
- :debug-name (debug-namify
- "local inline "
- (leaf-debug-name
- original-functional)))))))
+ :debug-name (debug-name 'local-inline
+ (leaf-debug-name
+ original-functional)))))))
(cond (losing-local-object
(if (functional-p losing-local-object)
(let ((*compiler-error-context* call))
`(lambda ,vars
(declare (ignorable ,@ignores))
(%funcall ,entry ,@args))
- :debug-name (debug-namify "hairy function entry "
- (lvar-fun-name
- (basic-combination-fun call)))))))
+ :debug-name (debug-name 'hairy-function-entry
+ (lvar-fun-name
+ (basic-combination-fun call)))))))
(convert-call ref call new-fun)
(dolist (ref (leaf-refs entry))
(convert-call-if-possible ref (lvar-dest (node-lvar ref))))))
(let ((name (lvar-value lvar))
(dummy (first temp))
(val (second temp)))
- ;; FIXME: check whether KEY was supplied earlier
(when (and (eq name :allow-other-keys) (not allow-found))
(let ((val (second key)))
(cond ((constant-lvar-p val)
(setq loser (list name)))))
(let ((info (lambda-var-arg-info var)))
(when (eq (arg-info-key info) name)
- (ignores dummy)
- (supplied (cons var val))
- (return)))))))
+ (ignores dummy)
+ (if (member var (supplied) :key #'car)
+ (ignores val)
+ (supplied (cons var val)))
+ (return)))))))
(when (and loser (not (optional-dispatch-allowp fun)) (not allowp))
(compiler-warn "function called with unknown argument keyword ~S"