16 |
;;; Non-error tests |
;;; Non-error tests |
17 |
|
|
18 |
(deftest macroexpand.1 |
(deftest macroexpand.1 |
19 |
(let (vals) |
(check-predicate |
20 |
(loop for x in *universe* |
#'(lambda (x) |
21 |
unless (or (symbolp x) |
(or (symbolp x) (consp x) |
22 |
(consp x) |
(let ((vals (multiple-value-list (macroexpand x)))) |
23 |
(progn |
(and (= (length vals) 2) |
24 |
(setq vals (multiple-value-list (macroexpand x))) |
(eql (car vals) x) |
25 |
(and (= (length vals) 2) |
(null (cadr vals))))))) |
|
(eql (car vals) x) |
|
|
(null (cadr vals))))) |
|
|
collect (cons x vals))) |
|
26 |
nil) |
nil) |
27 |
|
|
28 |
(deftest macroexpand.2 |
(deftest macroexpand.2 |
29 |
(let (vals) |
(check-predicate |
30 |
(loop for x in *universe* |
#'(lambda (x) |
31 |
unless (or (symbolp x) |
(or (symbolp x) (consp x) |
32 |
(consp x) |
(let ((vals (multiple-value-list (macroexpand x nil)))) |
33 |
(progn |
(and (= (length vals) 2) |
34 |
(setq vals (multiple-value-list (macroexpand x nil))) |
(eql (car vals) x) |
35 |
(and (= (length vals) 2) |
(null (cadr vals))))))) |
|
(eql (car vals) x) |
|
|
(null (cadr vals))))) |
|
|
collect (cons x vals))) |
|
36 |
nil) |
nil) |
37 |
|
|
38 |
(deftest macroexpand.3 |
(deftest macroexpand.3 |
39 |
(macrolet |
(macrolet |
40 |
((%m (&environment env) |
((%m (&environment env) |
41 |
`(quote |
`(quote |
42 |
,(let (vals) |
,(check-predicate |
43 |
(loop for x in *universe* |
#'(lambda (x) (or (symbolp x) (consp x) |
44 |
unless (or (symbolp x) |
(let ((vals (multiple-value-list (macroexpand x env)))) |
|
(consp x) |
|
|
(progn |
|
|
(setq vals (multiple-value-list (macroexpand x env))) |
|
45 |
(and (= (length vals) 2) |
(and (= (length vals) 2) |
46 |
(eql (car vals) x) |
(eql (car vals) x) |
47 |
(null (cadr vals))))) |
(null (cadr vals)))))))))) |
|
collect (cons x vals)))))) |
|
48 |
(%m)) |
(%m)) |
49 |
nil) |
nil) |
50 |
|
|
|
|
|
51 |
(deftest macroexpand.4 |
(deftest macroexpand.4 |
52 |
(macrolet ((%m () ''foo)) |
(macrolet ((%m () ''foo)) |
53 |
(macrolet ((%m2 (&environment env) |
(macrolet ((%m2 (&environment env) |