m2ym / optima

Optimized Pattern Matching Library for Common Lisp
271 stars 19 forks source link

Bug in macroexpansion #105

Closed ruricolist closed 10 years ago

ruricolist commented 10 years ago

The following signals an unbound-function error:

(lambda (form)
  (optima:match form
    ((list* (or 'x 'y) _))))

The bug is in checking the cdr. With the cdr bound to #:G1138:

(LET ((#:IT1136 (#:G1138)))
  (IF (AND (AND (TYPEP #:IT1136 'LIST)))
       NIL
       (FAIL)))

You see the cdr is being mis-treated as a function.

quicklisp commented 10 years ago

This is causing some trouble with my attempts to prepare a Quicklisp dist update for November.

m2ym commented 10 years ago

Fixed.