16 |
(if (not (typep fn 'generic-function)) |
(if (not (typep fn 'generic-function)) |
17 |
(handler-case |
(handler-case |
18 |
(progn (eval `(defgeneric ,name ())) :bad) |
(progn (eval `(defgeneric ,name ())) :bad) |
19 |
(error () :good)) |
(program-error () :good)) |
20 |
:good)) |
:good)) |
21 |
:good) |
:good) |
22 |
|
|
27 |
(let* ((name 'defgeneric-testmacro-02)) |
(let* ((name 'defgeneric-testmacro-02)) |
28 |
(handler-case |
(handler-case |
29 |
(progn (eval `(defgeneric ,name ())) :bad) |
(progn (eval `(defgeneric ,name ())) :bad) |
30 |
(error () :good))) |
(program-error () :good))) |
31 |
:good) |
:good) |
32 |
|
|
33 |
|
(deftest defgeneric.error.3 |
34 |
|
;; Cannot make special operators generic |
35 |
|
(loop for name in *cl-special-operator-symbols* |
36 |
|
for result = |
37 |
|
(handler-case |
38 |
|
(progn (eval `(defgeneric ,name ())) t) |
39 |
|
(program-error () nil)) |
40 |
|
when result collect name) |
41 |
|
nil) |
42 |
|
|
43 |
|
(deftest defgeneric.error.4 |
44 |
|
(classify-error (defgeneric defgeneric-error-fn.4 (x x))) |
45 |
|
program-error) |
46 |
|
|
47 |
|
(deftest defgeneric.error.5 |
48 |
|
(classify-error (defgeneric defgeneric-error-fn.5 (x) |
49 |
|
(:documentation "some documentation") |
50 |
|
(:documentation "illegally repeated documentation"))) |
51 |
|
program-error) |
52 |
|
|
53 |
|
(deftest defgeneric.error.6 |
54 |
|
(classify-error (defgeneric defgeneric-error-fn.6 (x) |
55 |
|
(unknown-option nil))) |
56 |
|
program-error) |
57 |
|
|
58 |
|
(deftest defgeneric.error.7 |
59 |
|
(handler-case |
60 |
|
(progn |
61 |
|
(eval '(defgeneric defgeneric-error-fn.7 (x y) |
62 |
|
(:method ((x t)) x))) |
63 |
|
:bad) |
64 |
|
(error () :good)) |
65 |
|
:good) |
66 |
|
|
67 |
|
|