File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -10,8 +10,15 @@ class Atom(object.Object):
1010 def type (self ):
1111 return Atom ._type
1212
13- def __init__ (self , boxed_value ):
13+ def with_meta (self , meta ):
14+ return Atom (self ._boxed_value , meta )
15+
16+ def meta (self ):
17+ return self ._meta
18+
19+ def __init__ (self , boxed_value , meta = nil ):
1420 self ._boxed_value = boxed_value
21+ self ._meta = meta
1522
1623
1724@extend (proto ._reset_BANG_ , Atom )
@@ -26,6 +33,15 @@ def _deref(self):
2633 assert isinstance (self , Atom )
2734 return self ._boxed_value
2835
36+ @extend (proto ._meta , Atom )
37+ def _meta (self ):
38+ assert isinstance (self , Atom )
39+ return self .meta ()
40+
41+ @extend (proto ._with_meta , Atom )
42+ def _with_meta (self , meta ):
43+ assert isinstance (self , Atom )
44+ return self .with_meta (meta )
2945
3046@as_var ("atom" )
3147def atom (val = nil ):
Original file line number Diff line number Diff line change 683683 (t/ assert = 5 ((comp inc inc inc inc) 1 ))
684684 (t/ assert = :xyz ((comp) :xyz)))
685685
686- (t/ deftest test- swap - reset
686+ (t/ deftest test- atom
687687 (let [a (atom 0 )]
688688 (t/ assert = 1 (swap! a inc))
689689 (t/ assert = 2 (swap! a inc))
690- (t/ assert = 3 (reset! a 3 ))))
690+ (t/ assert = 3 (reset! a 3 ))
691+ (t/ assert = :bar (- > a (with - meta {:foo :bar}) meta :foo))))
691692
692693(t/ deftest pre- post- conds
693694 (let [f (fn ([a] {:pre [(even? a)] :post [(= % 6 )]} (/ a 2 ))
You can’t perform that action at this time.
0 commit comments