Simplify COERCE type deriver.
commit1e40e6c77dc8e32567bfb05b8f573d6ce3235a37
authorStas Boukarev <stassats@gmail.com>
Sun, 31 May 2015 15:08:10 +0000 (31 18:08 +0300)
committerStas Boukarev <stassats@gmail.com>
Sun, 31 May 2015 15:10:22 +0000 (31 18:10 +0300)
tree581d557f9dfad67b24de7c8e3c0e17ad1889d693
parentfffab847c9d9b38dc461854aa6c7b12dea484406
Simplify COERCE type deriver.

It has a lot of code for a case when the type is not constant but is
coming from the derived type, e.g., of ARRAY-ELEMENT-TYPE.
But that code doesn't actually work.
Add a function which converts constant cons types into the values, e.g.
(constant-cons-type
 (specifier-type '(cons (eql signed-byte) (cons (eql 32) null))))
=>
(SIGNED-BYTE 32)
src/compiler/ir1opt.lisp
src/compiler/srctran.lisp
tests/compiler.pure.lisp