Skip to content
This repository has been archived by the owner on Jul 7, 2024. It is now read-only.

Commit

Permalink
Fix tests in optional patterns
Browse files Browse the repository at this point in the history
  • Loading branch information
Matheus Magalhães de Alcantara committed Mar 16, 2017
1 parent 7e4dbcc commit 0abc75c
Showing 1 changed file with 2 additions and 3 deletions.
5 changes: 2 additions & 3 deletions lib/match.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
[(eq? (car pattern) '->)
(compile-pattern-test (caddr pattern) `(,(cadr pattern) ,symb))]
[(eq? (car pattern) 'optional)
`(if ,symb ,(compile-pattern-test (cadr pattern)) true)]
`(if ,symb ,(compile-pattern-test (cadr pattern) symb) true)]
[(cons-pattern? pattern)
(let* [(pattern-sym (gensym))
(lhs (cons-pat-left-side pattern))
Expand Down Expand Up @@ -175,8 +175,7 @@
,(compile-pattern pattern val-sym body))))

(defun generate-case-error (arms val) :hidden
(let* [(patterns (map (lambda (x) (pretty (car x))) arms))
]
(let* [(patterns (map (lambda (x) (pretty (car x))) arms))]
`(error (.. "Pattern matching failure!\nTried to match the following patterns against " (pretty ,val) ", but none matched.\n"
,(concat (map (lambda (x) (.. " Tried: `" x "`")) patterns) "\n")))))

Expand Down

0 comments on commit 0abc75c

Please sign in to comment.