summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--module/language/tree-il/primitives.scm3
-rw-r--r--module/oop/goops.scm4
2 files changed, 6 insertions, 1 deletions
diff --git a/module/language/tree-il/primitives.scm b/module/language/tree-il/primitives.scm
index 531a14a4b..50a002da6 100644
--- a/module/language/tree-il/primitives.scm
+++ b/module/language/tree-il/primitives.scm
@@ -79,7 +79,8 @@
(define (add-interesting-primitive! name)
(hashq-set! *interesting-primitive-vars*
- (module-variable (current-module) name)
+ (or (module-variable (current-module) name)
+ (error "unbound interesting primitive" name))
name))
(define *interesting-primitive-vars* (make-hash-table))
diff --git a/module/oop/goops.scm b/module/oop/goops.scm
index 2e96e0b03..bf13e3830 100644
--- a/module/oop/goops.scm
+++ b/module/oop/goops.scm
@@ -84,6 +84,10 @@
(eval-when (eval load compile)
(use-modules ((language tree-il primitives) :select (add-interesting-primitive!)))
(add-interesting-primitive! 'class-of)
+ (define (@slot-ref o n)
+ (struct-ref o n))
+ (define (@slot-set! o n v)
+ (struct-set! o n v))
(add-interesting-primitive! '@slot-ref)
(add-interesting-primitive! '@slot-set!))