[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

inline declaration for FLET and LABELS



A few of us just realized that
	(defun foo ()
	  (labels ((bar ...)
		   (baz ...))
	    (declare (inline bar baz))
	    ...))
is realitively easy to implement compare to
	(defun foo ()
	  (flet ((bar ...)
		 (baz ...))
	    (declare (inline bar baz))
	    ...))
The problem is the scoping rules.  Consider
	(defun foo ()
	  (flet ((car (x) (cdr x))
		 (cdr (x) (car x)))
	    (declare (inline car cdr))
	    ...))
While this is quite legal, it may be VERY hard to implement.  Therefore,
when we consider allowing inline declarations for local functions, we
should keep this in mind in the documentation.