diff options
Diffstat (limited to 'stdlib/match.tl')
-rw-r--r-- | stdlib/match.tl | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/stdlib/match.tl b/stdlib/match.tl index 47593fb3..cdc1415c 100644 --- a/stdlib/match.tl +++ b/stdlib/match.tl @@ -920,7 +920,7 @@ (match-case args ;; `text` ((@(stringp @txt)) - (list ^@(require @nil (match-str ,str ,txt ,pos)))) + (list ^@(require @nil (eql (len ,str) (match-str ,str ,txt ,pos))))) ;; `txt@...` ((@(stringp @txt) . @rest) (with-gensyms (npos) @@ -940,8 +940,9 @@ (quasi-match vlist rest vars str npos)))) ;; `@var` (existing binding) (((@(eq 'sys:var) @(bound-p vlist vars @sym) . @nil)) - (list ^@(require @nil (match-str ,str (sys:quasi ,(car args)) - ,pos)))) + (list ^@(require @nil (eql (len ,str) + (match-str ,str (sys:quasi ,(car args)) + ,pos))))) ;; `@var@...` (existing binding) ((@(as avar (@(eq 'sys:var) @(bound-p vlist vars @sym) . @nil)) . @rest) |