We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 7c7c213 commit 4e9214aCopy full SHA for 4e9214a
pkg/lang/var.go
@@ -100,7 +100,8 @@ func NewVar(ns *Namespace, sym *Symbol) *Var {
100
watches: emptyMap,
101
}
102
v.root.Store(Box{val: &UnboundVar{v: v}})
103
- v.meta.Store(NewBox(emptyMap))
+ v.meta.Store(NewBox(emptyMap)) // Initialize for SetMeta to work
104
+ v.SetMeta(emptyMap) // This will add :name and :ns metadata
105
return v
106
107
@@ -167,6 +168,8 @@ func (v *Var) Meta() IPersistentMap {
167
168
169
func (v *Var) SetMeta(meta IPersistentMap) {
170
// TODO: ResetMeta
171
+ // Ensure these basis keys (matching Clojure's Var.java)
172
+ meta = Assoc(meta, KWName, v.sym).(IPersistentMap)
173
meta = Assoc(meta, KWNS, v.ns).(IPersistentMap)
174
v.meta.Store(NewBox(meta))
175
0 commit comments