+ ;; Backward compatibility for `no-next-method' and
+ ;; `no-applicable-method', which have slightly different calling
+ ;; convention than their cl-generic counterpart.
+ (pcase name
+ (`cl-no-next-method
+ (setq name 'no-next-method)
+ (setq args (cddr args)))
+ (`cl-no-applicable-method
+ (setq name 'no-applicable-method)
+ (setq args `(,(nth 1 args) ,(nth 0 args)
+ ,(make-symbol "_ignore") . ,(nthcdr 2 args)))))
+ (let ((arg1 (car args)))
+ (when (eq (car-safe (car (cdr-safe arg1))) 'subclass)
+ ;; There's no exact equivalent to `subclass', but :static
+ ;; provides a superset which should work just as well in practice.
+ (push :static qualifiers)
+ (setf (cadr arg1) (cadr (cadr arg1)))))
+