Changeset 6089


Ignore:
Timestamp:
Mar 28, 2007, 6:36:09 AM (12 years ago)
Author:
gb
Message:

Handle EQL specializers in SOURCE-FILES-LIKE-EM and MAKE-XREF-ENTRY,
as suggested by Takehiko Abe.

Location:
branches/objc-gf/ccl/lib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/objc-gf/ccl/lib/source-files.lisp

    r2639 r6089  
    137137
    138138(defun source-files-like-em (classes qualifiers method)
    139   (when (do ((cls classes (cdr cls))
    140              (xsps (%method-specializers method) (cdr xsps)))
    141             ((null cls) t)
    142           (let ((class (car cls))(xspec (car xsps)))
    143             (unless (if (listp xspec)
    144                       (and (listp class)
    145                            (or (not (constantp (cadr class)))
    146                                ; one is evaluated the other is not
    147                                (eql (cadr class)(cadr xspec))))
    148                       (eq class (class-name xspec)))
    149               (return nil))))
    150       (or (eq qualifiers t)
    151           (equal qualifiers (%method-qualifiers method)))))
     139  (and (equal (canonicalize-specializers classes)
     140              (%method-specializers method))
     141       (or (eq qualifiers t)
     142           (equal qualifiers (%method-qualifiers method)))))
    152143
    153144(defun parse-definition-spec (form)
  • branches/objc-gf/ccl/lib/xref.lisp

    r150 r6089  
    182182     (let ((name (method-name input))
    183183           (qualifiers (method-qualifiers input))
    184            (specializers (mapcar #'class-name (method-specializers input))))
     184           (specializers (canonicalize-specializers (method-specializers input))))
    185185       (%make-xref-entry :name name :type 'method
    186186                         :method-qualifiers (unless (eql qualifiers t) qualifiers)
Note: See TracChangeset for help on using the changeset viewer.