2014-03-08 15:39:30 |
James M. Lawrence |
description |
(defun foo ()
99)
(when nil
(defun foo ()
:bar))
(defun foo2 ()
(let ((x (foo)))
x))
(foo2) => error: The value 99 is not of type (MEMBER :BAR).
FOO derived type: (FUNCTION NIL (VALUES (INTEGER 99 99) &OPTIONAL))
FOO2 derived type: (FUNCTION NIL (VALUES (MEMBER :BAR) &OPTIONAL))
Confirmed on latest 1.1.16.32-eca778f and various versions I tried
back to 1.0.50.
Linux xii 3.2.0-24-generic-pae #39-Ubuntu SMP Mon May 21 18:54:21 UTC
2012 i686 i686 i386 GNU/Linux
(:ALIEN-CALLBACKS :ANSI-CL :C-STACK-IS-CONTROL-STACK :COMMON-LISP
:COMPARE-AND-SWAP-VOPS :CYCLE-COUNTER :ELF :GENCGC
:IEEE-FLOATING-POINT :INLINE-CONSTANTS :LARGEFILE :LINKAGE-TABLE
:LINUX :LITTLE-ENDIAN :MEMORY-BARRIER-VOPS :MULTIPLY-HIGH-VOPS
:OS-PROVIDES-BLKSIZE-T :OS-PROVIDES-DLADDR :OS-PROVIDES-DLOPEN
:OS-PROVIDES-GETPROTOBY-R :OS-PROVIDES-POLL :OS-PROVIDES-PUTWC
:OS-PROVIDES-SUSECONDS-T :RAW-INSTANCE-INIT-VOPS :SB-AFTER-XC-CORE
:SB-CORE-COMPRESSION :SB-DOC :SB-EVAL :SB-FUTEX :SB-LDB
:SB-PACKAGE-LOCKS :SB-SOURCE-LOCATIONS :SB-TEST :SB-THREAD :SB-UNICODE
:SB-XREF-FOR-INTERNALS :SBCL :STACK-ALLOCATABLE-CLOSURES
:STACK-ALLOCATABLE-FIXED-OBJECTS :STACK-ALLOCATABLE-LISTS
:STACK-ALLOCATABLE-VECTORS :STACK-GROWS-DOWNWARD-NOT-UPWARD :UNIX
:UNWIND-TO-FRAME-AND-CALL-VOP :X86) |
(defun foo ()
99)
(when nil
(defun foo ()
:bar))
(defun foo2 ()
(let ((x (foo)))
x))
When the above is compiled,
(foo2) ;=> error: The value 99 is not of type (MEMBER :BAR).
FOO derived type: (FUNCTION NIL (VALUES (INTEGER 99 99) &OPTIONAL))
FOO2 derived type: (FUNCTION NIL (VALUES (MEMBER :BAR) &OPTIONAL))
Confirmed on latest 1.1.16.32-eca778f and various versions I tried
back to 1.0.50.
Linux xii 3.2.0-24-generic-pae #39-Ubuntu SMP Mon May 21 18:54:21 UTC
2012 i686 i686 i386 GNU/Linux
(:ALIEN-CALLBACKS :ANSI-CL :C-STACK-IS-CONTROL-STACK :COMMON-LISP
:COMPARE-AND-SWAP-VOPS :CYCLE-COUNTER :ELF :GENCGC
:IEEE-FLOATING-POINT :INLINE-CONSTANTS :LARGEFILE :LINKAGE-TABLE
:LINUX :LITTLE-ENDIAN :MEMORY-BARRIER-VOPS :MULTIPLY-HIGH-VOPS
:OS-PROVIDES-BLKSIZE-T :OS-PROVIDES-DLADDR :OS-PROVIDES-DLOPEN
:OS-PROVIDES-GETPROTOBY-R :OS-PROVIDES-POLL :OS-PROVIDES-PUTWC
:OS-PROVIDES-SUSECONDS-T :RAW-INSTANCE-INIT-VOPS :SB-AFTER-XC-CORE
:SB-CORE-COMPRESSION :SB-DOC :SB-EVAL :SB-FUTEX :SB-LDB
:SB-PACKAGE-LOCKS :SB-SOURCE-LOCATIONS :SB-TEST :SB-THREAD :SB-UNICODE
:SB-XREF-FOR-INTERNALS :SBCL :STACK-ALLOCATABLE-CLOSURES
:STACK-ALLOCATABLE-FIXED-OBJECTS :STACK-ALLOCATABLE-LISTS
:STACK-ALLOCATABLE-VECTORS :STACK-GROWS-DOWNWARD-NOT-UPWARD :UNIX
:UNWIND-TO-FRAME-AND-CALL-VOP :X86) |
|