From 4a962cf6f38943507a7882063ff192b7dcc22a65 Mon Sep 17 00:00:00 2001 From: Yogthos Date: Tue, 2 Jun 2026 16:00:48 -0400 Subject: [PATCH] Fix emit-quote-expr: use raw-form->janet instead of re-analyzing quote expressions were returning AST structs instead of the actual quoted values through compile-ast. Added raw-form->janet converter that passes Jolt reader forms through verbatim to Janet's quote special form. --- src/jolt/compiler.janet | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/jolt/compiler.janet b/src/jolt/compiler.janet index ff440ba..671cf19 100644 --- a/src/jolt/compiler.janet +++ b/src/jolt/compiler.janet @@ -670,8 +670,20 @@ (defn- emit-map-expr [form] form) +(defn- raw-form->janet + "Convert a Jolt reader form to a Janet data structure for quoting." + [form] + (cond + (and (struct? form) (= :symbol (form :jolt/type))) + (symbol (form :name)) + (array? form) + (tuple/slice (tuple ;(map raw-form->janet form))) + (tuple? form) + (tuple/slice (tuple ;(map raw-form->janet form))) + form)) + (defn- emit-quote-expr [expr] - ['quote (analyze-form expr @{})]) + ['quote (raw-form->janet expr)]) (set emit-expr (fn [ast]