Another type error for EQL function types

Bug #1838888 reported by Paul F. Dietz
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Undecided
Unassigned

Bug Description

(defun f381 (p1 q)
  (declare (type (eql #.(symbol-function 'symbolp)) p1))
  ((lambda (f y) (funcall (complement f) y))
   (the (member 1/2 #.(symbol-function 'symbolp))
        (flet ((%f (x) x))
          (if q
              (%f p1)
              (%f #'logtest))))
   (list nil)))

(f381 (symbol-function 'symbolp) t) ==>

The value
  #1=#<FUNCTION SYMBOLP>
is not of type
  (OR (MEMBER #1#) (RATIONAL 1/2 1/2))
   [Condition of type TYPE-ERROR]

Restarts:
 0: [ABORT] Exit debugger, returning to top level.

Backtrace:
  0: (F381 #<FUNCTION SYMBOLP> T)
  1: (SB-INT:SIMPLE-EVAL-IN-LEXENV (F381 (SYMBOL-FUNCTION (QUOTE SYMBOLP)) T) #<NULL-LEXENV>)
  2: (EVAL (F381 (SYMBOL-FUNCTION (QUOTE SYMBOLP)) T))
  3: (SB-EXT:INTERACTIVE-EVAL (F381 (SYMBOL-FUNCTION (QUOTE SYMBOLP)) T) :EVAL NIL)
  4: (SB-IMPL::REPL

Revision history for this message
Stas Boukarev (stassats) wrote :

2a9cf3491ecb80c4a8cb18cf4367a44f9c7b9a1d

Changed in sbcl:
status: New → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.