diff options
-rw-r--r-- | parser.y | 4 | ||||
-rw-r--r-- | tests/012/quasi.tl | 4 |
2 files changed, 6 insertions, 2 deletions
@@ -1372,8 +1372,8 @@ static val quasi_meta_helper(val obj) if (atom(obj)) goto expr; - if (first(obj) == var_s) - goto var; + if (first(obj) == var_s || first(obj) == expr_s) + return obj; expr: return rlcp(cons(expr_s, obj), obj); diff --git a/tests/012/quasi.tl b/tests/012/quasi.tl index 7511d4bd..1c4092e2 100644 --- a/tests/012/quasi.tl +++ b/tests/012/quasi.tl @@ -21,3 +21,7 @@ (test [(ret `@1-@@rest`) 1 2 3 4] "1-2 3 4") + +(test + [(ret [(ret `@1 @rest @@1 @@rest @@@rest @@@1`) 1 10]) 2 20] + "1 10 1 10 20 2") |