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

Re: pushnew has weird macroexpansion

At  4:58 PM 12/7/93 -0500, Thomas A. Russ wrote:
>It seems to me that the macroexpansion of pushnew with complicated
>arguments is a little bit weird.  Consider the lines marked with
>";; ????" in the example below:
>(macroexpand '(pushnew (calculate-value 'foo) (the-slot bar)))
>  (LET* ((#:G8671 (CALCULATE-VALUE 'FOO))
>         (#:G8673 BAR)
>         (#:G8672 (ADJOIN #:G8671 (THE-SLOT #:G8673))))
>    #:G8673          ;; ????
>    #:G8672          ;; ????
>    (FUNCALL #'(SETF THE-SLOT) #:G8672 #:G8673))
>I assume that there is some reason for this?

I'm not the author of this code, but my guess is that it is to prevent spurious
unused-variable compiler warnings in cases where the setter is a macro and
doesn't actually use all the arguments provided it.

>Thomas A. Russ,  USC/Information Sciences Institute          tar@isi.edu    
>4676 Admiralty Way, Marina del Rey, CA 90292          (310) 822-1511x775