Changeset 15335
- Timestamp:
- Apr 19, 2012, 5:15:11 AM (13 years ago)
- File:
-
- 1 edited
-
trunk/source/compiler/nx1.lisp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/compiler/nx1.lisp
r15314 r15335 203 203 (setq args (cdr args))))))) 204 204 205 (defun nx1-check-local-function-binding (funcname env) 206 (if (and (symbolp funcname) (special-operator-p funcname)) 207 (nx-error "Can't lexically bind special operator ~s." funcname) 208 (unless (nx-declared-notinline-p funcname env) 209 (or (maybe-warn-about-shadowing-cl-function-name funcname) 210 (when (and (symbolp funcname) 211 (gethash funcname *nx1-alphatizers*)) 212 (nx1-whine :special-fbinding funcname)))))) 213 205 214 ;;; New semantics: expansion functions are defined in current lexical environment 206 215 ;;; vice null environment. May be meaningless ... … … 211 220 (dolist (def defs) 212 221 (destructuring-bind (name arglist &body mbody) def 222 (setq name (nx-need-function-name name)) 213 223 (push name names) 224 (nx1-check-local-function-binding name old-env) 214 225 (push 215 226 (cons … … 1788 1799 t)) 1789 1800 1790 (defun maybe-warn-about-nx1-alphatizer-binding (funcname) 1791 (or (maybe-warn-about-shadowing-cl-function-name funcname) 1792 (when (and (symbolp funcname) 1793 (gethash funcname *nx1-alphatizers*)) 1794 (nx1-whine :special-fbinding funcname)))) 1801 1795 1802 1796 1803 … … 1814 1821 (setq fname (nx-need-function-name funcname)) 1815 1822 (push fname fnames) 1816 ( maybe-warn-about-nx1-alphatizer-binding funcname)1823 (nx1-check-local-function-binding funcname env) 1817 1824 (multiple-value-bind (body decls) 1818 1825 (parse-body flet-function-body env) … … 1900 1907 (dolist (def defs (setq funcs (nreverse funcs) bodies (nreverse bodies))) 1901 1908 (destructuring-bind (funcname lambda-list &body labels-function-body) def 1902 ( maybe-warn-about-nx1-alphatizer-binding funcname)1909 (nx1-check-local-function-binding funcname env) 1903 1910 (push (setq func (make-afunc)) funcs) 1904 1911 (setq blockname funcname)
Note:
See TracChangeset
for help on using the changeset viewer.
