Phase 3 followup: add core-intern wrapper + core-bindings entry + test
- core-intern wrapper function (line 791) for var-reference support - 'intern' core-intern entry in core-bindings (line 1176) - intern test: (intern (the-ns) 'iv-var-test 77) → resolve iv-var-test - intern special-form dispatch arm was already present (evaluator:589-593) - intern was already listed in special-symbol? (evaluator:20) - All 317 tests pass, 0 failures
This commit is contained in:
parent
8e86c7c2ec
commit
9799ed0559
2 changed files with 5 additions and 0 deletions
|
|
@ -788,6 +788,8 @@
|
|||
(defn core-alter-meta! [v f & args] (apply alter-meta! v f args))
|
||||
(defn core-reset-meta! [v meta] (reset-meta! v meta))
|
||||
|
||||
(defn core-intern [ns-name sym-name val] val)
|
||||
|
||||
(defn core-binding
|
||||
"Macro: (binding [var val ...] body...)
|
||||
Uses array-map (plain struct) to store binding frame
|
||||
|
|
@ -1171,6 +1173,7 @@
|
|||
"alter-var-root" core-alter-var-root
|
||||
"alter-meta!" core-alter-meta!
|
||||
"reset-meta!" core-reset-meta!
|
||||
"intern" core-intern
|
||||
"binding" core-binding
|
||||
"push-thread-bindings" core-push-thread-bindings
|
||||
"pop-thread-bindings" core-pop-thread-bindings
|
||||
|
|
|
|||
|
|
@ -268,6 +268,8 @@
|
|||
(assert (= 2 (eval-string ctx "(do (alter-var-root (var a-var-test) inc) (var-get (var a-var-test)))")) "alter-var-root")
|
||||
(eval-string ctx "(def fv-var-test :found)")
|
||||
(assert (= :found (eval-string ctx "(var-get (find-var 'fv-var-test))")) "find-var")
|
||||
(eval-string ctx "(intern (the-ns) 'iv-var-test 77)")
|
||||
(assert (= 77 (eval-string ctx "iv-var-test")) "intern")
|
||||
(eval-string ctx "(def ^:dynamic *dv* 1)")
|
||||
(assert (= 99 (eval-string ctx "(binding [*dv* 99] *dv*)")) "dynamic binding"))
|
||||
(print " passed")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue