From 0abc75c43b3e09636bebbae7759f48b327c5e3f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matheus=20Magalh=C3=A3es=20de=20Alcantara?= Date: Thu, 16 Mar 2017 20:09:10 -0300 Subject: [PATCH] Fix tests in optional patterns --- lib/match.lisp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/match.lisp b/lib/match.lisp index b13d28d..4bbf0ae 100644 --- a/lib/match.lisp +++ b/lib/match.lisp @@ -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)) @@ -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")))))