diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-08-19 06:57:20 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-08-19 06:57:20 -0700 |
commit | fb444e43852b08ff6d1fb74339f7bce780931c4f (patch) | |
tree | 53f8033f79abfd4b21a5c5ff20065b96595976ff /tests | |
parent | b2a8b3be8e11cff3fcdf9c2336b26c828b0627fb (diff) | |
download | txr-fb444e43852b08ff6d1fb74339f7bce780931c4f.tar.gz txr-fb444e43852b08ff6d1fb74339f7bce780931c4f.tar.bz2 txr-fb444e43852b08ff6d1fb74339f7bce780931c4f.zip |
Quasiquote regression from 110.
The problem is that one-argument function calls like @(whatever arg) in
a quasiliteral being turned into sys:var items.
* parser.y (quasi_meta_helper): Remove bogus check on length.
The default case is now var, so the var_s check actually matters.
The integerp check for the argument of a var form didn't do
anything because the entire if statment conditionally selected a
useless goto. Removing it for consistent treatment of var items.
* tests/012/quasi.tl: Some new test cases involving @rest.
These new tests pass whether or not we have that integerp(second(obj))
test in the quasi_meta_helper function. Either way @rest and @@rest
produce the same thing.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/012/quasi.tl | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/012/quasi.tl b/tests/012/quasi.tl index 4c017b62..7511d4bd 100644 --- a/tests/012/quasi.tl +++ b/tests/012/quasi.tl @@ -13,3 +13,11 @@ (let ((a "abc") (b 123)) [(ret `@1-@2-@@1-@@2-@{@1 -4}-@{@2 -4}`) a b]) "abc-123-abc-123- abc- 123") + +(test + [(ret `@1-@rest`) 1 2 3 4] + "1-2 3 4") + +(test + [(ret `@1-@@rest`) 1 2 3 4] + "1-2 3 4") |