summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/struct.tl7
1 files changed, 7 insertions, 0 deletions
diff --git a/share/txr/stdlib/struct.tl b/share/txr/stdlib/struct.tl
index 7213d9eb..34e9bb07 100644
--- a/share/txr/stdlib/struct.tl
+++ b/share/txr/stdlib/struct.tl
@@ -193,3 +193,10 @@
(defmacro umeth (slot)
^(umethod ',slot))
+
+(defmacro defmeth (type-sym name arglist . body)
+ ^(progn
+ (static-slot-ensure (find-struct-type ',type-sym) ',name
+ (lambda ,arglist
+ (block ,name ,*body)))
+ ',name))