Reduced to
(defun all-caps-no-vowels-fix (S) (and (some #'upper-case-p S) (every #'(lambda (char) (upper-case-p char)) S)))
The weirdness is that it works when replacing AND with OR.
The bug itself is that UPPER-CASE-P entry is not dumped:
(maphash #'(lambda (k v) (print k) (print v)) (sb-fasl::fasl-output-patch-table (sb-debug:arg 0)))
#S(SB-C::ENTRY-INFO :CLOSURE-TN NIL :OFFSET NIL :NAME UPPER-CASE-P :ARGUMENTS NIL :TYPE FUNCTION :INFO NIL)
NIL((44 . 6))
Does anybody have an idea why AND -> OR replacement hides the bug?
Reduced to
(defun all-caps- no-vowels- fix (S)
S)))
(and (some #'upper-case-p S)
(every #'(lambda (char) (upper-case-p char))
The weirdness is that it works when replacing AND with OR.
The bug itself is that UPPER-CASE-P entry is not dumped:
(maphash #'(lambda (k v) (print k) (print v)) (sb-fasl: :fasl-output- patch-table (sb-debug:arg 0)))
#S(SB-C::ENTRY-INFO
:CLOSURE-TN NIL
:OFFSET NIL
:NAME UPPER-CASE-P
:ARGUMENTS NIL
:TYPE FUNCTION
:INFO NIL)
NIL((44 . 6))
Does anybody have an idea why AND -> OR replacement hides the bug?