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

declaration pervasiveness.



I'm having trouble deciding exactly how pervasive certain declarations
are. For instance:

(defun f (n)
  (flet ((f (m) (* m m)))
    (declare (ftype (function (integer) integer) f))
    (declare (notinline f))
    (+ (f n)
       (flet ((f (m) (bar m m)))
         (f n)))))

By analogy to type it would appear that the ftype declaration applies
to the call to the (* m m) f, but not to the (bar m m) call. There is
specific language in the first paragraph of page 159 that implies
that. However notinline , which has precisely the same language
applied to it at the top of page 160, is earlier singled out has
having nothing to do with bindings and being pervasive on page 155.

So does the notinline apply to the call to the (bar m m) version or
not? If not, then page 155, and the notion of pervasiveness seem
misleading.
-------