Changeset 14576


Ignore:
Timestamp:
Jan 12, 2011, 9:37:09 PM (9 years ago)
Author:
gb
Message:

Handle SETF function names in AUGMENT-ENVIRONMENT.
Fixes ticket:807.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/nx-basic.lisp

    r14476 r14576  
    393393         (check-all-symbols (symlist argname pairs pairsname)
    394394          (dolist (v symlist)
    395             (unless (symbolp v)
    396               (signal-simple-program-error "Malformed ~S list: ~S is not a symbol in ~S." argname v symlist))
    397             (when (assq v pairs)
    398               (signal-simple-program-error "~S ~S conflicts with ~S ~S" argname v pairsname (assq v pairs))))))
     395            (if (symbolp v)
     396              (when (assq v pairs)
     397                (signal-simple-program-error "~S ~S conflicts with ~S ~S" argname v pairsname (assq v pairs)))
     398              (if (eq argname :function)
     399                (unless (valid-function-name-p v)
     400                  (signal-simple-program-error "Malformed ~S list: ~S is not a function name in ~S." argname v symlist))
     401                (signal-simple-program-error "Malformed ~S list: ~S is not a symbol in ~S." argname v symlist))))))
    399402    (check-all-pairs symbol-macro :symbol-macro)
    400403    (check-all-pairs macro :macro)
     
    511514                                symbol-macro))
    512515         (macros (mapcar #'(lambda (m) (list* (car m) 'macro (cadr m))) macro))
    513          (functions (mapcar #'(lambda (f) (list* f 'function nil)) function))
     516         (functions (mapcar #'(lambda (f) (list* (ensure-valid-function-name f) 'function nil)) function))
    514517         (new-env (new-lexical-environment env)))
    515518    (setf (lexenv.variables new-env) (nconc vars symbol-macros)
Note: See TracChangeset for help on using the changeset viewer.