diff --git a/hy/compiler.py b/hy/compiler.py index 040e924..d80bbf0 100644 --- a/hy/compiler.py +++ b/hy/compiler.py @@ -610,7 +610,7 @@ class HyASTCompiler(object): level) imports.update(f_imports) if splice: - to_add = f_contents + to_add = HyExpression([HySymbol("list"), f_contents]) else: to_add = HyList([f_contents]) diff --git a/tests/native_tests/quote.hy b/tests/native_tests/quote.hy index 45c7648..8900578 100644 --- a/tests/native_tests/quote.hy +++ b/tests/native_tests/quote.hy @@ -82,3 +82,14 @@ (setv opt (quote &optional)) (assert (isinstance opt hy.HyLambdaListKeyword)) (assert (= (str opt) "&optional"))) + +(defmacro doodle [&rest body] + `(do ~@body)) + +(defn test-unquote-splice [] + "NATIVE: test unquote-splice does what's intended" + (assert (= + (doodle + [1 2 3] + [4 5 6]) + [4 5 6])))