1 USING: boxes kernel namespaces refs tools.test ;
6 H{ { "a" 3 } } "a" <value-ref> get-ref
10 4 H{ { "a" 3 } } clone "a" <value-ref>
16 H{ { "a" 3 } } "a" <key-ref> get-ref
20 "b" H{ { "a" 3 } } clone [
26 SYMBOLS: lion giraffe elephant rabbit ;
29 { rabbit } [ rabbit <obj-ref> get-ref ] unit-test
30 { rabbit } [ f <obj-ref> rabbit set-ref* get-ref ] unit-test
31 { rabbit } [ rabbit <obj-ref> take ] unit-test
32 { rabbit f } [ rabbit <obj-ref> [ take ] keep get-ref ] unit-test
33 { lion } [ rabbit <obj-ref> dup [ drop lion ] change-ref get-ref ] unit-test
36 { giraffe } [ [ giraffe rabbit set rabbit <var-ref> get-ref ] with-scope ] unit-test
42 rabbit rabbit set rabbit <var-ref> get-ref
51 rabbit rabbit set get-ref
70 rabbit set-ref* get-ref
86 { lion } [ lion rabbit set-global rabbit <global-var-ref> get-ref ] unit-test
87 { giraffe } [ rabbit <global-var-ref> giraffe set-ref* get-ref ] unit-test
93 : test-tuple ( -- tuple )
96 : test-slot-ref ( -- slot-ref )
97 test-tuple 2 <slot-ref> ; ! hack!
99 { rabbit } [ test-slot-ref get-ref ] unit-test
100 { lion } [ test-slot-ref lion set-ref* get-ref ] unit-test
103 { rabbit } [ <box> rabbit set-ref* get-ref ] unit-test
104 [ <box> rabbit set-ref* lion set-ref* ] must-fail
105 [ <box> get-ref ] must-fail