summaryrefslogtreecommitdiffstats
path: root/tests/011/special-1.tl
blob: aa79135494fc4d5ad779c287d590c1e6eebde6a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
(load "../common")

(let ((x (with-out-string-stream (*stdout*)
           [format *stdout* "wo"]
           (format t "rld!"))))
  (format *stdout* "Hello, ")
  (put-line x))

(defvar *spec* :global)

(defvar *fun* (let* ((*spec* :local)
                     (fun (lambda () *spec*))
                     (x *spec*))
                (test (call fun) :local)
                (test x :local)
                (set *spec* :local2)
                fun))

(let ((*spec* *spec*))
  (test *spec* :global)
  (set *spec* :clobber)
  (test (call *fun*) :clobber))

(test *spec* :global)

(test (call *fun*) :global)

(let ((x *spec*)
      (*spec* :local)
      (y *spec*))
  (let ((z *spec*)
        (*spec* nil)
        (w *spec*))
    (test (list *spec* x y z w) (nil :global :global :local :local))))