Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Juan Jose Garcia-Ripoll <juanjose.garciaripoll <at> googlemail.com>
Subject: Wrong test?
Newsgroups: gmane.lisp.ansi-tests
Date: Monday 26th December 2011 15:26:51 UTC (over 5 years ago)
(MACROLET ((%M (Z)
                   Z))
        (CTYPECASE (EXPAND-IN-CURRENT-ENV (%M :FOO))
          (INTEGER :BAD1)
          (KEYWORD :GOOD)
          (SYMBOL :BAD2)))

What is this supposed to check? In ECL this leads to the following code

(CTYPECASE :FOO
          (INTEGER :BAD1)
          (KEYWORD :GOOD)
          (SYMBOL :BAD2)))

This is in my opinion wrong.. CTYPECASE is supposed to contain a form for a
correctable error, including a replacement of the value of the form, in
this case :FOO. This means CTYPECASE expands at some point to (SETF :FOO
...) which is not a valid code, given that :FOO is a constant.

I know that SBCL and probably other implementations do not complain about
this until the assignment is performed, but this does not mean that the
code is valid.

Juanjo

-- 
Instituto de FĂ­sica Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
 
CD: 3ms