Another type error for EQL function types

Bug #1838888 reported by Paul F. Dietz on 2019-08-04
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
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

Stas Boukarev (stassats) wrote :

2a9cf3491ecb80c4a8cb18cf4367a44f9c7b9a1d

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

Other bug subscribers