Ignore:
Timestamp:
May 29, 2008, 6:47:03 PM (12 years ago)
Author:
gz
Message:

Warn about declarations referring to unknown variables; then fix a whole bunch of them in ccl, a surprisingly large number of which actually mattered

File:
1 edited

Legend:

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

    r9578 r9620  
    681681           (%cadr acode-expression)))))
    682682
     683(defun nx-check-vdecl-var-ref (decl)
     684  (unless (eq (cadr decl) 'special)
     685    (let* ((sym (car decl))
     686           (info (nx-lex-info sym)))
     687      (when (or (eq info :symbol-macro)
     688                (and (null info) (not (nx-proclaimed-special-p sym))))
     689        (nx1-whine :unknown-declaration-variable (cadr decl) sym)))))
     690
     691
    683692(defun nx-effect-other-decls (pending env)
    684693  (flet ((merge-decls (new old)
     
    691700          (dolist (decl vdecls (setf (lexenv.vdecls env) env-vdecls))
    692701            (unless (memq decl env-vdecls)
     702              (nx-check-vdecl-var-ref decl)
    693703              (when (eq (cadr decl) 'type)
    694704                (let* ((var (car decl))
Note: See TracChangeset for help on using the changeset viewer.