summaryrefslogtreecommitdiffstats
path: root/stdlib
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/doc-syms.tl1
-rw-r--r--stdlib/struct.tl5
2 files changed, 6 insertions, 0 deletions
diff --git a/stdlib/doc-syms.tl b/stdlib/doc-syms.tl
index 2b0edcaf..08dcc8e2 100644
--- a/stdlib/doc-syms.tl
+++ b/stdlib/doc-syms.tl
@@ -1190,6 +1190,7 @@
("macroexpand-match" "N-02CCCB67")
("macroexpand-params" "N-037EB49A")
("macroexpand-place" "N-00684FF9")
+ ("macroexpand-struct-clause" "N-01046265")
("macrolet" "N-00AC12C0")
("madv-dontneed" "N-027D1E84")
("madv-normal" "N-027D1E84")
diff --git a/stdlib/struct.tl b/stdlib/struct.tl
index 10b07710..855ac6e1 100644
--- a/stdlib/struct.tl
+++ b/stdlib/struct.tl
@@ -415,6 +415,11 @@
(mac-param-bind ,form ,params (cdr ,slot) ,*body)))
,keyword)))
+(defun macroexpand-struct-clause (clause : form)
+ (iflet ((xfun (and (consp clause) [*struct-clause-expander* (car clause)])))
+ [xfun clause form]
+ (cons clause nil)))
+
(compile-only
(load-for (struct sys:param-parser-base "param")))