Changeset 11514 for trunk/source/level-1


Ignore:
Timestamp:
Dec 12, 2008, 6:15:09 PM (11 years ago)
Author:
gz
Message:

propagate r11502 to trunk

Location:
trunk/source/level-1
Files:
2 edited

Legend:

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

    r11040 r11514  
    495495        (if already
    496496          (setf (%cdr already) (combine-function-infos name (%cdr already) info))
    497           (let ((new (cons name info)))
    498             (if (listp defs)
    499               (setf (defenv.defined definition-env) (cons new defs))
    500               (setf (gethash name defs) new))))
     497          (let ((outer (loop for defer = (cdr (defenv.type definition-env))
     498                               then (deferred-warnings.parent defer)
     499                             while (typep defer 'deferred-warnings)
     500                             thereis (gethash name (deferred-warnings.defs defer)))))
     501            (when outer
     502              (setq info (combine-function-infos name (%cdr outer) info)))
     503            (let ((new (cons name info)))
     504              (if (listp defs)
     505                (setf (defenv.defined definition-env) (cons new defs))
     506                (setf (gethash name defs) new)))))
    501507        info))))
    502508
  • trunk/source/level-1/sysutils.lisp

    r10942 r11514  
    537537            (unless override parent)
    538538            nil
    539             (if (or override (not parent))
    540               (make-hash-table :test #'eq)
    541               (deferred-warnings.defs parent))
     539            (make-hash-table :test #'eq)
    542540            flags))
    543541
     
    546544         (parent (deferred-warnings.parent current))
    547545         (warnings (deferred-warnings.warnings current))
     546         (defs (deferred-warnings.defs current))
    548547         (any nil)
    549548         (harsh nil))
    550549    (if parent
    551       (setf (deferred-warnings.warnings parent) (append warnings (deferred-warnings.warnings parent))
    552             parent t)
     550      (let ((parent-defs (deferred-warnings.defs parent))
     551            (parent-warnings (deferred-warnings.warnings parent)))
     552        (maphash (lambda (key val) (setf (gethash key parent-defs) val)) defs)
     553        (setf (deferred-warnings.warnings parent) (append warnings parent-warnings)
     554              parent t))
    553555      (let* ((file nil)
    554              (defs (deferred-warnings.defs current))
    555556             (init t))
    556557        (flet ((signal-warning (w)
Note: See TracChangeset for help on using the changeset viewer.