Changeset 8985


Ignore:
Timestamp:
Apr 1, 2008, 10:16:44 PM (11 years ago)
Author:
gz
Message:

Give inner functions a name of the form (:internal name-of-containing-function ...)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0711/ccl/compiler/nx0.lisp

    r8966 r8985  
    12831283  (if q
    12841284     (setf (afunc-parent p) q))
    1285   (setf (afunc-name p) name)
     1285
     1286  ;; In the case of a method function, the name will get reset at load time to the
     1287  ;; method object.  However, during compilation, we want any inner functions to use
     1288  ;; the fully qualified method name, so store that.
     1289  (when (method-lambda-p lambda-form)
     1290    (setq name (or *nx-method-warning-name* name)))
     1291
     1292  (setf (afunc-name p)
     1293        (let ((parent-name (and (afunc-parent p) (afunc-name (afunc-parent p)))))
     1294          (if parent-name
     1295            (if (and (consp parent-name) (eq (%car parent-name) :internal))
     1296              (if name
     1297                `(:internal ,name ,@(cdr parent-name))
     1298                parent-name)
     1299              (if name
     1300                `(:internal ,name ,parent-name)
     1301                `(:internal ,parent-name)))
     1302            name)))
     1303
    12861304  (when *definition-source-note*
    12871305    (setf (afunc-lfun-info p)
     
    13111329         (*nx-next-method-var* (if q *nx-next-method-var*))
    13121330         (*nx-call-next-method-function* (if q *nx-call-next-method-function*))
    1313          (*nx-cur-func-name* (or (and (method-lambda-p lambda-form) *nx-method-warning-name*)
    1314                                 name)))
     1331         (*nx-cur-func-name* name))
    13151332    (if (%non-empty-environment-p *nx-lexical-environment*)
    13161333      (setf (afunc-bits p) (logior (ash 1 $fbitnonnullenv) (the fixnum (afunc-bits p)))))
Note: See TracChangeset for help on using the changeset viewer.