Bad special case with *derive-function-types* t
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Here's a small testcase that is broken currently.
Basically, returning (values) should be compatible with (member t nil), as "no value" is as good as "NIL".
ogamita on #lisp acknowledged that it looks like a bug.
Here's the test:
(declaim (ftype (function () (values (member t nil) &optional)) values-
(test-util:
(let* ((*evaluator-mode* :compile)
(eval `(progn
)))
(assert (string= "" compiler-result))))
(values) returns zero values, while the declaration declares a single value, so they're not compatible.