Changeset 8534


Ignore:
Timestamp:
Feb 21, 2008, 9:30:38 AM (12 years ago)
Author:
gb
Message:

DCODE-FOR-UNIVERSALLAY-APPLICABLE-SINGLETON: only call method-function
directly if standard method combination.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/level-1/l1-clos.lisp

    r8130 r8534  
    22782278
    22792279(defun dcode-for-universally-applicable-singleton (gf)
    2280   (let* ((methods (generic-function-methods gf))
    2281          (method (car methods)))
    2282     (when (and method
    2283                (null (cdr methods))
    2284                (null (method-qualifiers method))
    2285                (dolist (spec (method-specializers method) t)
    2286                  (unless (eq spec *t-class*)
    2287                    (return nil))))
    2288       (method-function method))))
     2280  (when (eq (generic-function-method-combination gf)
     2281            *standard-method-combination*)
     2282    (let* ((methods (generic-function-methods gf))
     2283           (method (car methods)))
     2284      (when (and method
     2285                 (null (cdr methods))
     2286                 (null (method-qualifiers method))
     2287                 (dolist (spec (method-specializers method) t)
     2288                   (unless (eq spec *t-class*)
     2289                     (return nil))))
     2290        (method-function method)))))
    22892291
    22902292(register-non-dt-dcode-function #'dcode-for-universally-applicable-singleton)
Note: See TracChangeset for help on using the changeset viewer.